2D双向通过平台,同时保持稳定

时间:2017-03-22 19:20:25

标签: unity3d 2d

任何人都可以在C#中为我提供帮助,为2D平台游戏创建一个平台,我可以跳过平台,从平台跌落,站在平台上作为稳定的土地?我环顾四周,似乎找不到任何有用的东西。

1 个答案:

答案 0 :(得分:0)

如果您的游戏非常简单(例如,如果您的平台是平坦的),那么当玩家位于平台下方时,您可以非常轻松地禁用Collider。

如果您需要其他物体站在平台上,您可以使用以下两种方法控制碰撞矩阵:IgnoreCollisionIgnoreLayerCollision

将此组件附加到每个平台:

[RequireComponent(typeof(Collider))]
public class ColliderActivator : MonoBehaviour
{
    public GameObject player;

    new Collider collider;
    Collider playerCollider;
    void Awake()
    {
        collider = GetComponent<Collider>();
        playerCollider = player.GetComponent<Collider>();
    }

    bool wasPlayerAbove = false;
    void Update()
    {
        bool isPlayerAbove = player.transform.position.y - transform.position.y >= 0;
        // This check is only to reduce calls to the physics system
        if(wasPlayerAbove != isPlayerAbove){
          wasPlayerAbove = isPlayerAbove;
          Physics.IgnoreCollision(collider, playerCollider, !isPlayerAbove);
        }
    }
}