2016-03-29 205 views
1

所以我做了一个简单的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; 
     } 
    } 
} 

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

回答

0

我几乎肯定这是因为你的精灵有这个空的边框。要解决这个问题,请确保'player'sprite完全充满白色像素或/和'wall'精灵。基本双重检查图像。

此外,为了解决这个问题,你可以简单地使碰撞器略微小一点以适应图像边界。

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

+0

我再次检查,我找不到任何空的空间。这是我的文件:https://onedrive.live.com/redir?resid=451ADC2A2ED2D0E7!108&authkey=!AAimm1ss1vE_ZfA&v=3&ithint=photo%2cpng,https://onedrive.live.com/redir?resid=451ADC2A2ED2D0E7!109&authkey= !AAxqJwKjBiS2n8A&v = 3&ithint = photo%2cpng – Gewoo

+0

我明白了,那我错了。但你仍然可以玩对撞机。但让我知道,如果这不是你的选择。我没有unity2d伟大的体验,但我认为解决方案是在物理2D下的项目设置。与此说,尝试玩穿刺罚分和其他设置。 –

+0

对不起人,但改变碰撞者不是我的选择:/ – Gewoo