万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

タグの付け忘れに注意 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-Script

void 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);

一応このようにプリミティブは作れるが、空のはない。