删除对象之间的空间

时间:2016-03-29 14:00:13

标签: c# unity3d collision-detection collision

所以我做了一个简单的2D设置,你可以移动一个块。 但我无法完全捕捉到另一个精灵(墙)。

截图: enter image description here

检查员设置墙:

enter image description here

检查员设置播放器:

enter image description here

PlayerMovement脚本:

using UnityEngine;
using System.Collections;

public class PlayerMovement : MonoBehaviour {

    public KeyCode moveUp;
    public KeyCode moveDown;
    public KeyCode moveLeft;
    public KeyCode moveRight;

    public float speed = 10f;

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void FixedUpdate () {

        Vector2 v = rigidbody2D.velocity;

        if (Input.GetKey (moveUp)) {
            v.y = speed;
            v.x = 0;
            rigidbody2D.velocity = v;
        } else if (Input.GetKey (moveDown)) {
            v.y = speed * -1;
            v.x = 0;
            rigidbody2D.velocity = v;
        } else if (Input.GetKey (moveRight)) {
            v.x = speed;
            v.y = 0;
            rigidbody2D.velocity = v;
        } else if (Input.GetKey (moveLeft)) {
            v.x = speed * -1;
            v.y = 0;
            rigidbody2D.velocity = v;
        } 
        else 
        {
            v.x = 0;
            v.y = 0;
            rigidbody2D.velocity = v;
        }
    }
}

我不知道是什么可以创造这个空间,因为这是我的第一次团结游戏。

1 个答案:

答案 0 :(得分:0)

我几乎可以肯定这是因为你的精灵有这个空边框。要解决此问题,请确保'播放器'精灵完全填充白色像素或/和“墙”精灵。基本上仔细检查图像。

另外,为了解决这个问题,你可以简单地使对撞机略小一些,以适应图像边界。

最后确保对撞机与您认为是身体的像素对应。