私はトップダウンゲームの基礎を作ろうとしています。2D Playerが壁を移動するのを防ぐ
私は現在、ボックスコライダー2DでKinematic RigidBody2Dが適用されたプレーヤースプライトを持っています。このスプライトのスケールは(1,1)です。
壁スプライトには、スケールが(20,1)のボックスコライダーがあります。
プレーヤーを制御するには、次のコードを使用しています。代わりに壁に当たらないプレーヤー下の壁にヒットしようとするが、とき、それがなかったかのように、私はプレーヤーを制御し、それらを上下に移動することができ、上記のコードで
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour {
public Rigidbody2D rb2D;
void Start() {
rb2D = GetComponent<Rigidbody2D>();
}
void FixedUpdate() {
if (Input.GetKey (KeyCode.UpArrow)) {
Vector2 move = new Vector2(0,1);
rb2D.MovePosition(rb2D.position + move);
}
if (Input.GetKey (KeyCode.DownArrow)) {
Vector2 move = new Vector2(0,-1);
rb2D.MovePosition(rb2D.position + move);
}
}
}
は、それを通過します。
私はUnityにとって初めてですので、他に有用な情報があれば教えてください。私の質問を更新します。
ありがとうございます!
壁にコライダーが付いていますか? –