Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 2D在保持稳定的情况下双向通过平台_Unity3d_2d - Fatal编程技术网

Unity3d 2D在保持稳定的情况下双向通过平台

Unity3d 2D在保持稳定的情况下双向通过平台,unity3d,2d,Unity3d,2d,在C#中,有人能帮我为2D platformer游戏创建一个平台,让我可以从平台上跳起来,从平台上摔下来,然后作为稳定的陆地站在平台上吗?我环顾四周,似乎找不到任何有助于解决问题的方法。如果你的游戏非常简单(比如你的平台是平的),当玩家在平台下方时,你可以很容易地禁用对撞机 如果需要其他对象保持站在平台上,可以使用以下两种方法控制碰撞矩阵:和 将此部件连接到每个平台: [RequireComponent(typeof(Collider))] public class ColliderActiva

在C#中,有人能帮我为2D platformer游戏创建一个平台,让我可以从平台上跳起来,从平台上摔下来,然后作为稳定的陆地站在平台上吗?我环顾四周,似乎找不到任何有助于解决问题的方法。

如果你的游戏非常简单(比如你的平台是平的),当玩家在平台下方时,你可以很容易地禁用对撞机

如果需要其他对象保持站在平台上,可以使用以下两种方法控制碰撞矩阵:和

将此部件连接到每个平台:

[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);
        }
    }
}
[RequireComponent(typeof(Collider))]
公共类碰撞操纵器:单行为
{
公共游戏对象玩家;
新型对撞机;
对撞机;
无效唤醒()
{
collider=GetComponent();
playerCollider=player.GetComponent();
}
bool wasPlayerAbove=假;
无效更新()
{
bool isPlayerAbove=player.transform.position.y-transform.position.y>=0;
//此检查仅用于减少对物理系统的调用
如果(wasPlayerAbove!=isPlayerAbove){
wasPlayerAbove=isPlayerAbove;
物理.忽略碰撞(对撞机,playerCollider,!isplayerBove);
}
}
}

你能告诉我你到目前为止做了些什么吗?我希望稳定性一直保持在那里。如果我禁用了对撞机,平台顶部的任何东西都会从中掉落吗?我编辑了我的答案:IgnoreClimition只禁用两个特定对撞机之间的碰撞。