【发布时间】:2016-11-13 06:12:25
【问题描述】:
我想将一个对象从他的原始位置缓慢移动到更高一点的位置,但是即使我使用像 0.0001f 这样的非常慢的速度,这段代码也会立即将对象移动到最高位置。我只在另一个代码中调用 LiftObj() 1 次,我告诉它运行直到它到达 liftOffset。这段代码有什么问题?
void LiftObj(GameObject Obj) {
float origianlPos = Obj.transform.position.y;
while (Obj.transform.position.y < origianlPos + liftOffset) {
Obj.transform.position += Vector3.up * 0.0001f;
float newPos = Obj.transform.position.y;
newPos = Mathf.Clamp (newPos, newPos, newPos + liftOffset);
Obj.transform.position += Vector3.up * 0.0001f;
}
【问题讨论】:
-
显然寻求帮助意味着我不是 C# 或 Unity 方面的专家。与其指出我是菜鸟,你建议的代码比我的更好。