Programming Serendipity

気まぐれに大まかに生きるブログ

Unity5 メモ31

  • TextのBest Fitが利かない
    Horizontal/Vertical OverflowがそれぞれWrap/Truncateになっている必要がある

  • uGUIのTextのタッチ/クリック判定
    直接はできないので同じサイズ(または子要素にしてanchorがstretch/stretch)のButtonなどで対応する

  • RectTransformをスクリプトから変更する

    Text t;  
    t.rectTransform.sizeDelta = new Vector2(100, 150);  
  • Input系の関数が正常に動かない
    Inputクラスの関数はUpdate()内で呼ばれたときのみ正常に動くことが保障されている

  • プレハブ接続を切る
    プレハブにしようと思ったがやっぱりやめたとなり、作ったプレハブを削除するとヒエラルキー上のオブジェクトが赤色になる。
    実害はないがこれが気になる場合、GameObject -> Break Prefab Instanceを選択するとプレハブ接続を切ることができる。

  • GetComponentsInChildrenでアクティブでないコンポーネントを含める
    GetComponentsInChildren<GameObject>(true);

  • RectTransformのposition
    positionに代入するとワールド座標空間上の座標になる。
    RectTransoformの値として代入したい場合はanchoredPositionを使用する

  • 画面にランダムに一定時間で消えるオブジェクトを置きたいが、場所をかぶらせたくない場合
    今までに置いたオブジェクトの位置との距離を計算して近すぎたらもう一度別の位置を(乱数などで)取得する、としてもいいが、
    密集する場合リトライの回数が増えることによるパフォーマンス低下が気になる。
    そこで、設置最大数が12だとすると、あらかじめ画面を12分割し、その分割された区画の中にオブジェクトを入れていく方法が簡単で良い。