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

时间:2016-11-15 21:48:23

标签: c# unity3d terrain

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

1 个答案:

答案 0 :(得分:0)

我会做这样的事情:

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

基本上,这会在无效纹理上将玩家置于有效位置。