0
現在、私はいくつかのプレーヤーの動きに取り組んでいます。私のプレーヤーの主なアイデアは、斜めではなく、水平と垂直だけに移動します。私はこの問題のための合理的な解決策を見つけることができませんでした。私は本当に剛体やキャラクターを使用したくありません。私が達成したいもう一つのことは、複数の方向キーを押したときに、プレイヤーが最後に押された方向に直接移動したいということです。ここに私のコードです:対角線移動なしに最後に押された方向に移動
using UnityEngine;
using System.Collections;
public class controller : MonoBehaviour {
public int movementspeed;
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
if (Input.GetKey (KeyCode.A)) {
//ratation
transform.localEulerAngles = new Vector3(0,270,0);
//move
transform.Translate (transform.right * movementspeed * Time.deltaTime);
}
else if(Input.GetKey (KeyCode.D)) {
//ratation
transform.localEulerAngles = new Vector3(0,90,0);
//move
transform.Translate (transform.right *(-1)* movementspeed * Time.deltaTime);
}
else if(Input.GetKey (KeyCode.S)) {
//ratation
transform.localEulerAngles = new Vector3(0,180,0);
//move
transform.Translate (transform.forward * (-1) * movementspeed * Time.deltaTime);
}
else if (Input.GetKey (KeyCode.W)) {
//ratation
transform.localEulerAngles = new Vector3(0,0,0);
//move
transform.Translate (transform.forward * movementspeed * Time.deltaTime);
}
else if (Input.GetKey (KeyCode.A)) {
//ratation
transform.localEulerAngles = new Vector3(0,270,0);
//move
transform.Translate (transform.right * movementspeed * Time.deltaTime);
}
}
}
あなたの答えをありがとう、いくつかの仕事の後で私はそれが運動スクリプトを作るための良い方法ではないことに気づいた。私は自分の仕事に切り替えました、私は今キャラクターコントローラーを使っています。 – umuur
問題ありません。ある時点であなた自身のキャラクターコントローラーを作ることをお勧めします。それは練習には良いことですが、あなたが望むようにそれを手に入れることができます。 – Martin