【发布时间】:2016-11-19 08:10:48
【问题描述】:
我想知道如何防止玩家在 Unity 地形上的某个纹理上行走。我制作了检测玩家站在哪个纹理上的脚本。对于运动,我使用刚体速度,所以我对碰撞器没有问题。在此先感谢:)
【问题讨论】:
我想知道如何防止玩家在 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;
}
本质上,这会将玩家置于无效纹理上时的有效位置。
【讨论】: