参考のような3Dオートスクロールのスクリプトを書きたいのですがうまくいきません。
タッチした座標からの移動距離でキャラクターを移動させたいのですが、
コチラの書き方だと後ろに下がれなくなってしまいます。
こういった場合、どのような処理でかけばよいかわからなくて困っております。
移動制限なども将来的につけたいのですが、何かアドバイス頂けないでしょうか。
[参考 ColorBump]
(https://www.youtube.com/watch?v=ikA__GlrExU)
C#
1// タッチした座標 2Vector2 mousePos = Vector2.zero; 3Vector2 diffMousePos = Vector2.zero; 4 5// Update is called once per frame 6void Update() { 7 8 // タッチ開始時に初期化 9 if (Input.GetMouseButtonDown(0)) { 10 //offset = Vector2.zero; 11 diffMousePos = Vector2.zero; 12 mousePos = Input.mousePosition; 13 } 14 15 if (Input.GetMouseButton(0)) { 16 Vector2 pos = Input.mousePosition; 17 //offset = pos - mousePos; 18 diffMousePos = pos - mousePos; 19 mousePos = Input.mousePosition; 20 } 21 22 if (Input.GetMouseButtonUp(0)) { 23 mousePos = Vector2.zero; 24 diffMousePos = Vector2.zero; 25 //offset = Vector2.zero; 26 } 27 28 Vector3 vec = Vector3.zero; 29 vec.x = diffMousePos.x * 200.0f; 30 vec.z = diffMousePos.y * 200.0f; 31 rigid.AddForce(vec.x, 0, vec.z); 32 33 Vector3 velocity = rigid.velocity; 34 35 if(velocity.z < speed){ 36 velocity.z = speed; 37 } 38 39 rigid.velocity = velocity; 40 41 // Vector3 min = Camera.main.ViewportToWorldPoint(new Vector3(0, 0, distance)); 42 // Vector3 max = Camera.main.ViewportToWorldPoint(new Vector3(1, 1, distance)); 43}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。