1

我正在尝试制作自上而下游戏的基础知识。

我目前有一个播放器精灵,它应用了一个 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 的新手,所以任何其他可能有用的信息随时告诉我,我会更新我的问题。

谢谢!

4

1 回答 1

0

取消选中 IsKinematic组件中的属性RigidBody2D。那是因为将 isKinematic 设置为true会使您gameObject 不受任何物理重力的影响。

并查看您的是否未标记为IsTrigger!检查你的墙的 Collider 组件。

于 2017-01-28T14:12:34.273 回答