画像認識で、もともと入ってるPlayerってオブジェクトを表示させるようにします。
で、その形に沿って衝突を発生させるには、
Mesh Colliderを設定すれば、Meshに沿って衝突するようになります。
こんな感じで新しくPhysic Materialも設定すれば、
跳ね返りがどれくらいか、等も設定できるようになります。
//CreatePrimitiveで動的にGameObjectであるCubeを生成する GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube); //Cubeに適用するランダムな色を生成する Material material = new Material(Shader.Find("Diffuse")) { // color = new Color(Random.value, Random.value, Random.value) color = new Color(0, 0, 200) }; //ランダムに変化する色をCubeに適用する cube.GetComponent<Renderer>().material = material; //端末をタップして、ランダムな色のCubeを認識した平面上に投げ出すように追加していく //Cubeの大きさも0.2fとして指定している cube.transform.position = cam.transform.TransformPoint(0, 0, 0.5f); cube.transform.localScale = new Vector3(0.2f, 0.2f, 0.2f); //CubeにはRigidbodyを持たせて重力を与えておかないと、床の上には配置されないので注意が必要。Rigidbodyで重力を持たせないとCubeは宙に浮いた状態になる cube.AddComponent<Rigidbody>(); //これでタップしたときに斜め上にキューブ飛んでいく?そして衝突計算 cube.GetComponent<Rigidbody>().AddForce(cam.transform.TransformDirection(0,1f,2f),ForceMode.Impulse);
Cubeはコードで生み出してて、RigidBodyが設定されているので、
これでタップしたら生み出させるキューブと、PlayerがAR空間で衝突します。
いや、たぶん元々衝突はするのかな…でもMesh ColliderじゃなくてBox Colliderなんですよ、たぶん。たしかそこにちょっと違和感あったんです。
夏休み、突入。なにしようかな。