タグの付け忘れに注意 Unity
void Update () { Ray rayBegan = Camera.main.ScreenPointToRay(Input.GetTouch(0).position); if (Physics.Raycast(rayBegan, out hit, 100)) { // over player if (hit.collider.gameObject.tag == "Player") { } } }
こういうときはcolliderのあるオブジェクトへタグ
子オブジェクトや親オブジェクトではむり
C# 配列に値をれるのは無理
- N/A
string[] strAry = { "foo", "bar", "hoge" }; foreach (string str in strAry) { str = "hoge"; }
→こんなエラーでる
error CS1656: Cannot assign to `str' because it is a `foreach iteration variable'
strはイテレーション値だから?
動的にColliderを子としてつける Unity
http://forum.unity3d.com/threads/111494-How-to-dynamically-create-EmptyObject-as-child-via-Scriptvoid Start () { GameObject child = new GameObject(); // 空のオブジェクト child.AddComponent("BoxCollider"); // BoxのColliderを貼り付ける child.transform.parent = transform; //新しく作成した空のオブジェクトに自分をはっつける }
5分で回答がきた。素晴らしい。
☓↓こうではない
親 GameObjectの子になる部分 ← 子 GameObject
◯↓こうする!
子 GameObjectの親となる部分 ← 親 GameObject
transformにchildというのがない。
this.gameObject.transform.parentなんてのがないのがミソ。
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
一応このようにプリミティブは作れるが、空のはない。