デバッグなどで雑にpublicな配列を作ってしまうケース
hoge.cs
public int[] hogehogeArr = new int[] {15,20,30,40,42,80,120,200,800,1200,2000,8000,24000,843201,1143201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
こういうのをほったらかして、色々配列を操作していると、
hogehogeArr[i]とかで参照する際、あるはずの値がとなれくて、エラーになる。
public で配列にしていると、インスペクタ上で値が保存されて、
配列数までおかしくなるので注意(泣)。
ちゃんと private int[]にしよ。。
あと、インスペクタに表示しないように下記も入れて置くといいです。汗
hoge.cs
[HideInInspecter]
public int[] hogehogeArr = //〜省略
※@Rwf-9DH3 さんご指摘ありがとうございます!m( _ _ )m
今日だけで2回ハマった汗
Findで子を削除する場合
hoge.cs
if (obj.transform.Find("ScissorsObj")) //対象があるか存在確認
{
GameObject hasamiMarkObj = obj.transform.Find("ScissorsObj").gameObject;
if (hasamiMarkObj)
{
Destroy(hasamiMarkObj);
}
}
ポイントはif (obj.transform.Find("ScissorsObj"))
でチェックする必要がある。
あと、Instantiateとかで生成したオブジェクトは、デフォルトで名前の後ろに(Clone)と付いているので、
生成後リネームするの忘れないように。。
マテリアルの色をスクリプトで変更してもどせなくなってしまう。。
hoge.cs
if(instanceLeaf.GetComponent<Renderer>().sharedMaterial.HasProperty("_Color")){
// 注意、エディタ上の色情報も変換されるのでもとに戻せない
instanceLeaf.GetComponent<Renderer>().sharedMaterial.color = new Color(1f,1f,1f);
}
事前に元の色をとっておく。。
hoge.cs
originalColor = GetComponent<Renderer>().sharedMaterial.color;