C# Unity - 防止玩家站在某个地形纹理上

C# Unity - Preventing The Player From Standing on a Certain Terrain Texture

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

我会这样做:

首先,创建全局变量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;
}

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