2016-03-29 147 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