1
私は3x3 gameBoardを持っています。キャラクターは真ん中から始まります。私が右を押すと何も起こりません。左を押すと何も起こりませんが、押し上げるとコード内の位置に移動します。更新画面は一度しか動作せず、その後動作を停止します。 UNITY
void Start()
{
transform.position = new Vector2(0.28f, -0.27f);
print(transform.position.x);
}
void Update()
{
if (ChrP == new Vector2(0.28f, -0.27f))
{
if (Mathf.Abs(Input.GetAxisRaw("Right")) > 0.0f)
{
transform.position = new Vector2(1.95f, -0.27f);
}
if (Mathf.Abs(Input.GetAxisRaw("Left")) > 0.0f)
{
transform.position = new Vector2(-1.36f, -0.27f);
}
if (Mathf.Abs(Input.GetAxisRaw("Down")) > 0.0f)
{
transform.position = new Vector3(0.28f, -1.923f);
}
if (Mathf.Abs(Input.GetAxisRaw("Up")) > 0.0f)
{
transform.position = new Vector3(0.28f, 1.401f);
}
else
{
}
}
}
ので、新しい「アップ」位置のために私は、コードの同じ種類を持っていると私はすべてをチェックしているが、それはだけではなく、移動のフリーズ。 私はボタンを押した場合、すべてのフレームをチェックする予定です。たぶん私は何かを見逃している。 また、if文の前後の両方に、私は同じタイプのコードを持っていますが、他の座標はあります!
私はあなたがコードをデバッグする方法をお勧めします、これは簡単に発見されるものですか?しかし、 'ChrP'値が非常に特定の位置にある場合、あなたの' Update'メソッドは何も実行しません。 – DavidG
@MichelAtwood DavidGは正になぜ最初のif文を持っていますか? –
最初のif文がオブジェクトのある場所でチェックされています –