Graphics.DrawMeshとfor文を使って大量のBoxMeshを描画した後、それぞれのBoxの位置とカメラの位置を使って波動のモーションにしたかったのですが上手くいきません。。
C#
1 public Mesh mesh; 2 public Material material; 3 Vector3 nami1=new Vector3 (0,0,80f); 4 5 Vector3 pos; 6 public float tim; 7 8 Vector3 vec=new Vector3(0,0,0); 9 void Update(){ 10 int a = 0; 11 int z = 0; 12//ここでBoxをFor文で設置しています 13 for (int i=0; i<10000;i++){ 14 vec=new Vector3(a*20-500,-300f,3100-z*2f);//この数はゲームシステムによるものなので、あまり気にしないでください。 15 16 if (Input.GetMouseButtonDown (0)) { 17 tim=Time.time; 18 pos=Camera.main.transform.position; 19 20 } 21 //↓ここが問題です。。 22 if(nami1.sqrMagnitude<(vec-pos).sqrMagnitude){ 23 vec.y-=(tim-Time.time)*(vec-pos).sqrMagnitude*0.0009f; 24 if(vec.y<-300f){ 25 vec.y=-300; 26 } 27 } 28 //↓ここは単にBoxの数を決めているだけですので、あまり関係ありません 29 a+=1; 30 if(a==50){ 31 a=0;z+=10; 32 } 33 Graphics.DrawMesh(mesh,vec,Quaternion.identity, material,0); 34 } 35 36 37 }
追記:うまくいかないとは具体的にどのような事なのか記載してほしいとの意見をいただきました
やはり一番に気になるのは、モーションです。均等な間隔で、均等な動きでは、波のような少しずつ波が穏やかになる動きとはかけはなれてしまいます。
次に気になるのは、一度マウスクリック後に、またマウスクリックした場合リセットされることです
このコードの処理が上手くいかないとのことですが、どのように上手くいっていないのでしょうか。
波動のように見えない、波動が繰り返さないなど問題点の情報の追加をお願い致します。