新アプリ「ルーレット&ダーツ」をリリースしました。
カテゴリー: Unity
【Unityスクリプト】Destroy覚書
GameObject.Destroy()がうまく動かない
まず引数にGameObjectが入っているか確認する。thisとか入れるとコンポーネント(スクリプト)が削除されてしまう。
思い通りに動いたり動かなかったりするときはタイミングの問題かもしれない。
Destroyは現在のフレーム終了後、次のフレーム開始前に実行される。
そのためDestroy直後に親オブジェクトから子オブジェクトを数える処理なんかを入れてもDestroy前の結果が返ってくる。これを回避するためにコルーチンを使う。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
//Actionに必要 using System; ... //親ノードから子ノードを数える private void CountNode(){ ... } //子ノードを消す public void Delete(){ Destroy(some game object); StartCoroutine(Delay(1,CountNode));//1フレーム後に実行 } //fフレーム後に関数実行 IEnumerator Delay(int f,Action act){ for(var i=0;i<f;i++)yield return null; act(); } |
これはDestroy後の処理を1F遅らせているけど、Destroy自体を遅らせるときは第2引数に秒数を入れる。遅らせたDestroyのさらに後に処理を入れるならオブジェクトに OnDestroy() を定義してタイミングをはかる必要がある。
1 |
Destroy(Object obj, float t = 0.0F); |
Unity5.5 で Scroll View を使う
Unity C# スクリプトで円弧と筒を作成する
メッシュをスクリプトで変更できるようなので円弧と筒を作るスクリプトを作成した。
色はRGBAで指定してるけどアルファ値は反映されない。
シェーダを変えてもうまくいかないので SpriteRender とかの設定をしてないと意味がないのかもしれない。
完全な透明にしたければ MeshRenderer を削除すれば同じことだと思う。
Unityで地面を動かしたときの挙動
動く床を作ったけど上に載ったボールが微動だにしない。
そもそも物理演算周りもよくわかってないので色々試して解決したので覚書きします。
ググっても情報ないのは調べ方が悪いのか、需要がないのか、当たり前の話だからなのか。
Unityスクリプト実装メモ
寝れない夜はUnityで遊ぼう6
これまで
今回やったこと
Unity5.5での秋葉原マップ(Japanese Otaku City)の使い方の覚書。
寝れない夜はUnityで遊ぼう4
これまで
今回やったこと
ゲームっぽい感じにしてAndroidアプリ化までしてみた。
寝れない夜はUnityで遊ぼう3
これまで
今回やったこと
引き続きチュートリアル演習
これでゲームのベース部分はできるようになった。
寝れない夜はUnityで遊ぼう2
これまで
今回やったこと
Unity初心者用のサイトはあんまりない。
検索すると山のように出てくるけど対象バージョンが古いか、中級者以上向けのハウツー情報が多い。
今回は以下を参考に進めた。