Я пытаюсь сделать основы игры сверху вниз.Предотвращение перемещения 2D-плеера через стену
В настоящее время у меня есть спрайт для игрока, на который нанесен Kinematic RigidBody2D с помощью коллайдера 2D. Масштаб этого спрайта равен (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, поэтому любая другая информация, которая может быть полезной, не стесняйтесь сообщить мне, и я обновлю свой вопрос.
Спасибо!
У вас есть коллайдеры, прикрепленные к вашим стенам? –