< ↓ コード ↓ >
スクリプトその1
//自機の移動
public class Player : MonoBehaviour {
public float speed;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
var vec = Vector3.zero;
if (Input.GetKey(KeyCode.W)) vec.z += 1.0f;
if (Input.GetKey(KeyCode.S)) vec.z -= 1.0f;
if (Input.GetKey(KeyCode.A)) vec.x -= 1.0f;
if (Input.GetKey(KeyCode.D)) vec.x += 1.0f;
vec = vec.normalized;
transform.position += vec * Time.deltaTime * speed;
if(vec.magnitude > 0.0f)
{
transform.rotation = Quaternion.LookRotation(vec);
}
}
}
< ↓ コード ↓ >
スクリプトその2
public class Player : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
//視点の変更
if (Input.GetKey(KeyCode.UpArrow)) transform.Rotate(1.0f, 0, 0);
if (Input.GetKey(KeyCode.DownArrow)) transform.Rotate(-1.0f, 0, 0);
if (Input.GetKey(KeyCode.LeftArrow)) transform.Rotate(0, -1.0f, 0);
if (Input.GetKey(KeyCode.RightArrow)) transform.Rotate(0, 1.0f, 0);
}
1// 移動方向をCameraのtransformのright(ローカルX+)とforward(ローカルZ+)を基準にするよう変更2using UnityEngine;34public class PlayerAndCameraController : MonoBehaviour
5{6 public float Speed;7 private Transform cameraTransform;8 private Transform playerTransform;910 private voidStart()11{12// Start内でPlayerに加えCameraのtransformを探しておく13 this.playerTransform = this.transform.Find("Player");14 this.cameraTransform = this.transform.Find("Camera");15}1617 private voidUpdate()18{19 var u =0.0f;20 var v =0.0f;21if(Input.GetKey(KeyCode.W))22{23 v +=1.0f;24}25if(Input.GetKey(KeyCode.S))26{27 v -=1.0f;28}29if(Input.GetKey(KeyCode.A))30{31 u -=1.0f;32}33if(Input.GetKey(KeyCode.D))34{35 u +=1.0f;36}37// カメラローカル軸を基準に方向を決め、Y軸を潰して正規化しXZ平面上の方角にして、これをvecとする38 var dir =(this.cameraTransform.right * u)+(this.cameraTransform.forward * v);39 var vec = new Vector3(dir.x,0.0f, dir.z).normalized;40 this.transform.position += vec * Time.deltaTime * this.Speed;41if(vec.magnitude >0.0f)42{43 this.playerTransform.rotation = Quaternion.LookRotation(vec);44}45}46}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/06 12:53
2017/07/06 15:36