Unityあれこれ

ローカルのUnityプロジェクトが最新にならない

チーム開発等でUnityのプロジェクトを最新にしても、ローカルのAssetが古くて挙動がおかしいことがあった。
以下の手順で解決。

  1. Unityを終了
  2. プロジェクト直下のLibraryディレクトリを丸ごと削除
  3. Unityを起動

Canvas以下に置いたTestTextというコンポーネントを探して、テキストを変える

int number = 0;
var canvas = GameObject.Find ("/Canvas");
foreach (Transform child in canvas.transform) {
    if (child.name == "TestText") {
        Text target = child.gameObject.GetComponent<Text> ();
        target.text = "hoge" + number.ToString ();
    }
    number++;
}

GameObjectの表示/非表示切り替え

  • SetActive() を使う
  • 非アクティブ化されたGameObjectを取得できるFindDeep() を使う
    • 第二引数にtrueを渡すと非アクティブなGameObjectも検索対象になる
bool isActive = false;

gameObject.FindDeep ("MyChunoText", isActive).SetActive (isActive);