【问题标题】:C# Unity - Preventing The Player From Standing on a Certain Terrain TextureC# Unity - 防止玩家站在某个地形纹理上
【发布时间】:2016-11-19 08:10:48
【问题描述】:

我想知道如何防止玩家在 Unity 地形上的某个纹理上行走。我制作了检测玩家站在哪个纹理上的脚本。对于运动,我使用刚体速度,所以我对碰撞器没有问题。在此先感谢:)

【问题讨论】:

    标签: c# unity3d terrain


    【解决方案1】:

    我会这样做:

    首先,创建全局变量lastPos:

    Vector3 lastPos;
    

    然后将其设置为开始时玩家当前的位置:

    void Start() {
      lastPos = player.gameObject.transform.position;
    }
    

    然后在 Update 中,将 lastPos 变量设置为玩家当前位置。接下来,使用 if 语句检查玩家是否在无效纹理上。如果玩家在无效纹理上,将其位置设置回 lastPos:

    void Update() {
      if (playerOnInvalidTexture) {
        player.gameObject.transform.position = lastPos;
      }
      lastPos = player.gameObject.transform.position;
    }
    

    本质上,这会将玩家置于无效纹理上时的有效位置。

    【讨论】:

    • 不起作用...它只是有点小故障。等等,我不应该先检查然后设置 lastPost 吗?
    • 是的,完成了这项工作,必须在检查后设置 lastPos,谢谢 :D
    • 啊,是的,你是对的,正在更新答案以反映这一点*。不客气,祝你好运!!
    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多