【发布时间】:2015-07-08 19:32:19
【问题描述】:
我目前正在做一个简单的棒球比赛。我想要做的是让玩家能够向后挥动球棒以“充电”力量,可以这么说,然后当释放按钮时,他将以等于数量的速度向前挥动球棒蓄电。
这一切都很好,但我的问题是,当球棒到达 y 轴上的某个点时,我需要停止球棒的运动,我有点不确定如何去做,因为我不能只是告诉它在设定的时间后停止旋转,因为由于每次挥杆可能具有的速度差异,球棒不会每次都同时到达前点。
我想要做的基本上是if(reached 266 on the y-axis stop rotating),但我不确定如何做到这一点。
这里是我目前写的代码:
public int rotateSpeed = 50;
public float AmountOfPowerChargedUp = 0;
void Update()
{
if (Input.GetMouseButton(0))
{
AmountOfPowerChargedUp += 5f;
transform.Rotate(Vector3.up * rotateSpeed * Time.deltaTime);
Debug.Log(AmountOfPowerChargedUp);
}
if (!Input.GetMouseButton (0))
{
transform.Rotate(Vector3.down * AmountOfPowerChargedUp * Time.deltaTime);
}
}
private void OnGUI()
{
GUI.Label (new Rect (50, 15, 250, 25), "AmountOfPowerChargedUp: " + AmountOfPowerChargedUp);
}
【问题讨论】:
-
我不太了解统一性,但是是否有一个名为“move”之类的事件可以订阅,然后在方法主体中测试新位置是否可以接受,例如 if (object .positoon.Y){>>}
标签: c# unity3d rotation gameobject