現在、unity5、C#でキャラクターの移動スクリプトを書いており、
「矢印キーの上で奥へ移動し、左右で方向転換、キャラクターの背後に常にカメラがいる」という状態にしています。ななめ移動が可能な形です。
操作性を改善させ、
「矢印キーの上で奥へ移動し、左右で方向転換、キャラクターの背後に常にカメラがいるが、矢印キーの下を押した(後方180度の範囲へ移動したい)ときはカメラは背後に行かずキャラクターがカメラ方向に向かって進む」という状態にしたいと考えています。
現在のスクリプトをどう改造すべきか(もしくは書きなおすべきか)、ご教授いただきたいです。
現在のスクリプトは以下の通りです。
C#
1float dirH, dirV; 2 3dirH = Input.GetAxis ("Horizontal") ; 4dirV = Input.GetAxis ("Vertical"); 5 6 7if (dirH < -0.01f || dirH > 0.01f || dirV < -0.01f || dirV > 0.01f) 8{ 9 if (dirV < 0) //矢印キーの下を押したときは移動しない 10 { 11 dirV = 0; 12 } 13 else 14 { 15 dirRot += dirH; 16 vec = new Vector3 (Mathf.Sin (dirRot * Mathf.PI / 180.0f), 0.0f, Mathf.Cos (dirRot * Mathf.PI / 180.0f)); 17 transform.position = new Vector3 (transform.position.x + vec.x * dirV * 0.1, 18 transform.position.y, 19 transform.position.z + vec.z * dirV * 0.1); 20 transform.eulerAngles = new Vector3 (0.0f, dirRot, 0.0f); 21 22 }
カメラの追従は、キャラクターの子にすることによって実装し、キャラクターの回転への追従もなめらかになっています。
if (dirV < 0)内のコマンドを変える形で少し考えたのですが、いい案がなかなか思いつきませんでした。
ご回答、よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/16 12:24
2017/11/16 19:24
2017/11/16 19:24
2017/11/22 07:53