【Unity】WindowsPCのスクリーンをキャプチャして再生する
以下のほうが高機能で高速です。
tips.hecomi.com
しかし...GTX10XX系を搭載したゲーミングPCでは動かないそうで...??
実際、GTX1070を積んだノートで動作しなかった...
なので動作としては遅いが何となくPC画面をUnity内に描画したくてやってみました。
他に解決策があればぜひ教えていただきたいです。
ソースはこちら、サンプルをいくつか用意したのでどうぞ
github.com
実際に動かしてみるとこんな感じです。
exeでもWindowsであればもちろん動きます。
・Windows10
・Unity2017.3.1
WinデスクトップのUnityでのキャプチャ pic.twitter.com/IDOrPtB7kk
— コンソールスープ (@consolesoup) 2018年2月20日
Rendererに対してDesktopの描画 pic.twitter.com/yP1Hned9At
— コンソールスープ (@consolesoup) 2018年2月22日
Unityで背景透過のアプリケーション
— コンソールスープ (@consolesoup) 2018年2月23日
ウィジェット的な感じ pic.twitter.com/7yEk7TQkWn
【Unity】Xcodeから実機ビルド時に「App Installation Failed」
はじめに
Unityから書き出したプロジェクトをXcodeで開きiPhoneへインストールしようとした時、以下のエラーが起きた。
`[App Installation Failed] Could not write to the device.`
`[App Installation Failed] This application does not support this device’s CPU type.`
XcodeでRun時にメッセージウィンドウとして表示されます。
頻度としては4回実行して上のエラーが3回に対して、下のエラーは1回くらいです。
動作環境
iPhone7(iOS11 beta)
XCode 9.0 Beta 3
MacBook Pro(macOS Sierra10.12.5)
UnityPro(5.6.2f1)
そうなった経緯
- 朝、問題になっているプロジェクトにて実機インストールができる状態であったことを確認。
- デバッグのためUnityのBuild SettingsにてDevelopment BuildとAutoconnect Profilerにチェックを入れる。
- その後、以下の記事を参考にIl2cppだったプロジェクトをMono2xに変更する。
すると、エラーが出てインストールができなくなりました。
解決のためにやったこと
Mono2xからIl2cppに戻す
効果なし...
Unity Development Buildを解除
UnityのBuild SettingsにてDevelopment BuildとAutoconnect Profilerにチェックが入っていたので外したが効果なし。
以下は普通にエラー文で検索してみていろいろやってみました
正しいArchitecturesの設定かどうか
teratail.com
Targetの「Build Settings > Architectures > Valid Architectures」にiPhone7のarm64が追加されているか確認したが追加されていた...
容量
gootara.org
iPhoneの容量が足りず入れられない時にエラーが出るとあり、
iPhoneの容量が足りているか確認したが121.6GBも残っていた...
stackoverflow.com
Macの容量が足りないとインストールできずにエラーが出る的なことが英語で書いてあったのでMacの容量が足りているか確認したが67.09GB残っていた...
CocoaPods
neighborhood.bluz.io
CocoaPodsを使用している場合は.xcodeprojファイルではなく、.xcworkspaceファイルから起動しなくてはいけない。
forums.developer.apple.com
CocoaPodsを更新することで解決すると書かれている。
しかし、このプロジェクトはUnityでCocoaPodsは未使用です...
記事がなくなってきたので汎用的な祈りの儀式を始めます
Gitから復元
GitからUnityのプロジェクトを復元しました。
そしてバックアップしていたその後の編集内容を手動でマージ....
動いた!
まとめ
- いろいろやってみて解決しなかったらGitから復元しよう
- 慣れないことをする前にはバックアップを取ろう
おそらく原因は「Il2cpp⇆Mono2x」だとは思いますが戻しても動かなくなるのは厄介ですね...
【Unity】XcodeのプロジェクトからTARGETSを消してはならない!
発生した問題
UnityでiOS向けにBuildしてXcodeのプロジェクトに変換したときに以下のエラーが出てビルドできない。
Exception: Deletion of either of the "Unity-iPhone" or "Unity-iPhone Tests" targets is not supported
解決策
UnityでFileからBuild Settingsを選び、BuildかBuild And Runでファイルを選択するときに出てくるWindowで「Replace」を選択する。
Append(追記)じゃなくReplace(置換)することでTARGETSを作成してくれる。
しかし、Xcode側から設定した内容が消えているので注意です。
【Unity】パズドラ風パズル作ってみた
はじめに
最近いろんなゲームをやりつつ、戦略系などが好きなんだなーと実感しました。
その中でも単純なんだけど考えるようなものは暇つぶしには最適で、それがパズルでした。
パズルと言ったらパズドラということもあり(1週間くらいしかやったことないが...)
作ってみることにしました。
完成した動作が以下です。
レイアウト等はまだまだですが一応パズルできる...という感じです。
これにコンボやスコアを設定すれば完璧、作り上簡単にカスタマイズできるはずです。
今日朝から作りはじめてここまでできた pic.twitter.com/RAbkk3kZkn
— ナノカさんのアカウント (@nanokanato) 2017年5月31日
実装内容
実装後に違うパズルに改造してしている途中なので確かこうだったなぁという復元になってますが、動かない場合はコメント等にておしらせください。
Line3Block
パズルのピースを用意します。
80x80のPrefabです。
階層構造はBlock(CreateEmpty:空のGameObject)に
BackGround(UI.Image)とIcon(UI.Image)を用意します。
Blockには以下のScriptを追加します。
主にピースの移動後の座標と種類を管理しています。
InspectorからBlockの色(BlockColors)とキャラアイコン(BlockCharas)を設定します。
BackGroundとIconにはBlockの下層に作った同じ名前のUI.Imageを設定します。
設定したBlockの色とキャラアイコンの数だけピースの種類が増えます。
Line3Puzzle
BlockのPrefabを生成したり、ピースが揃っているか確認する部分です。
階層構造はCanvas以下にBoard(CreateEmpty:空のGameObject)を配置しているだけです。
Canvasは640x1136で、Boardは560x760です。
Camera等の設定は省きます。
Canvasには以下のScriptを追加します。
Blockの生成と破棄、タップ操作の管理、ピースが揃ったかどうかの確認、アニメーションなどを行なっています。
InspectorのBoardにはCanvas下層のBoardを、BlockPrefabにはBlockを設定してください。
ビルド
あとはビルドすることでCanvas > BoardにBlockが生成され、操作待ちになります。
処理の手順は以下になります。
- ピースの生成 → 2
- 揃っているか確認
揃っていた場合 → 3
揃っていない場合 → 6 - 揃っていたピースを消す → 4
- ピースを下に詰める
空いている場所には上から新たなピースを落とす → 5 - 移動後に再確認 → 2
- 移動するピースの選択待ち → 7
- ピースを移動して入れ替える
指が離されたら移動を確定 → 2
まとめ
パズルって単純なゲームなのに内部では色々なロジックが動いており面白いです。
結構出尽くしている感もありますがぜひオリジナルのパズルを作ってみてください。
UnityのAssetBundleを簡単にしてみた
はじめに
AssetBundleを使用するときにAssetBundleを読み込んでローカルに保存、Spriteの取得というのが毎回実装していると手間なので以下のように呼び出せるようにしました。
AssetBundleMan
キャッシュ→StreamingAssets→ローカルの保存場所→サーバーの順にAssetBundleを探しに行きます。
一度取得したAssetBundleはキャッシュされます。
サーバーとローカルへの通信はWWWクラスを使用したWWWManを使っています。
madgenius.hateblo.jp
使用方法
Spriteを取得する場合
AssetBundleMan.GetAssetBundleSprite("AssetBundle名", "ファイル名.png", (Sprite sprite) => { image.sprite = sprite; });
取得失敗の可能性もあるのでnullチェックしておくとベストです。
AssetBundleとSpriteの取得後に呼ばれて画像が反映されます。
GameObject,Prefabを取得する場合
AssetBundleMan.GetAssetBundleGameObject("AssetBundle名", "ファイル名.prefab", (GameObject prefab) => { GameObject gameObject = Instantiate (prefab, this.transform); });
取得失敗の可能性もあるのでnullチェックしておくとベストです。
AssetBundleとGameObjectの取得後に呼ばれてPrefabから生成されます。
UnityのWWW通信をCallBackで受けとるクラス
簡単にメモ程度ですが、WWWでの通信を簡単に行うために作成しました。
以下の画像の通り、Coroutineを使わずにCallBackでProgress(進捗度)と通信結果を受け取ることができます。
staticのクラスなのでどこからでも呼び出すことができます。
MonoBehaviourを通信開始時に取得してCoroutineの処理をしているのでその部分のみ指定のMonoBehaviourに差し替えて使用することもできます。
現状、タイムアウトの処理がないので今後実装するかもしれません。
UnityのuGUIで縦書きテキスト表示
移動しました。
scrapbox.io
UnityAdsを実装してみた
移動しました。
scrapbox.io
Unity for MacでVisualStudioを使用する
UnityをWindowsでやっていた人が、Macでやり始めると思うこと?にMonoDevelopってなんだ?ってのがあるかと思い調べてみた。
MacだとVisualStudioではなくMonoDevelopなので使い勝手がいいほうのエディターに変えたいという人もいるだろう。
Visual Studioをインストール
まず、MacにはVisualStudioはない....(完)
だが、VisualStudioCodeというEditorがあるのでそちらを使うことにする。
サイトのトップよりダウンロードができるのでインストールする。
単品で使った場合、WindowsのVisualStadioとはレイアウトなどが違うが、使い勝手や機能は大体同じのようだ。
Unityと連携させるために...
Unityで普通にEditorを変更させようとしたがVisualStudioCodeが起動してそこからMonoDevelopが起動してしまう。
調べているとこんなものが…
VisualStadioCodeをUnityに追加するためのScriptらしい。
VSCode - Unity Visual Studio Code Integration
これをAssets以下に追加する
Editorを変更
UnityのツールバーからUnity > Preferencesを選択。
PreferencesのWindowが開く
VSCode.csを追加したのでVSCodeという欄が増えている
External Toolsを選択してEditor AttachingをCodeに変更
もしくはBrowse...からVisualStudioCodeを選択する。
これで連携が完了です。EditorがVisualStudioCodeになりました。
インテリセンス(自動補完)を利用する
VisualStudioCodeをEditorに設定し無事Scriptを編集できたのですが、MonoDevelopにはあるインテリセンスがなかったので設定する。
使い心地
Editorとしては最高だと思います。
- 拡張機能でインストールすることで多言語対応
- Windows,Mac,LinaxなどのOSで利用でき、OS間の操作感の違いを吸収
- Microsoftや利用者の更新頻度が高く、機能拡張が増えている。
- Methodやif,forなどで折りたたむことができる
- 左右でエディターの分割ができる。(コピペや他プロジェクトとの比較が楽)
- 上書き保存していないScriptに応じて左上にバッジ表示(自動保存もあり)
- インテリセンスは機能拡張から追加できるので独自のものも可能?
など...
しかし、Unityで使うには以下の点よりまだ早いようです。
- Projectに常にVSCode.csを追加しないといけない
- Debug時にBuild構成ファイルやタスクランナーの構成が必要
- ブレークポイントの設定がし辛い?
- Unityでの利用者が少ないので何か起こると困るしかない
それでも多くのOSと多言語に対応しているMicrosoftのフリーエディタですのでどこかのすごい人が解決していそうです。
解決策があればぜひ教えていただきたいです。
KudanARのUnity用SDKのサンプルを検証
移動しました。
scrapbox.io
SmartARのUnity用SDKのサンプルを検証
移動しました。
scrapbox.io