unity3D如何公转一定角度停下来
voidUpdate(){transform.RotateAround(newVector3(0f,0.7472f,0f),newVector3(0,0.7472f,0)...
void Update () {
transform.RotateAround(new Vector3 (0f,0.7472f, 0f), new Vector3 (0, 0.7472f, 0), 0.1f);
//物体围绕世界坐标的“(0f,0.7472f, 0f)”这个点,以“(0, 0.7472f, 0)”为轴向,也就是Z抽进行旋转,旋转角速度是“0.1f”。
}
我这个停不下来,谁知道怎么写个if语句让它停下来吗? 展开
transform.RotateAround(new Vector3 (0f,0.7472f, 0f), new Vector3 (0, 0.7472f, 0), 0.1f);
//物体围绕世界坐标的“(0f,0.7472f, 0f)”这个点,以“(0, 0.7472f, 0)”为轴向,也就是Z抽进行旋转,旋转角速度是“0.1f”。
}
我这个停不下来,谁知道怎么写个if语句让它停下来吗? 展开
1个回答
展开全部
#pragma strict
public var capsule:GameObject;
private var i:float = 0;
public var speed:float;
public var allTime:float;
function Start () {
}
function Update () {
i+=Time.deltaTime;
if(i<allTime){
capsule.transform.Rotate(Vector3.up*Time.deltaTime*speed);
}
}
解释一下,capsule这个不用说就是你的圆柱体了,inspector面板中赋值一下就好了。i是一个计时用的,不用管。speed,就是旋转的速度了,speed假如等于60,就是每秒旋转60度,allTime就是旋转的总共的时间。例如,你想这个圆柱以每秒60度旋转120度就停止,这是speed =60,allTime = 2,就好了。不过这样的弊端就是它旋转的不是恰好120,可能119.8度这样的,有误差
public var capsule:GameObject;
private var i:float = 0;
public var speed:float;
public var allTime:float;
function Start () {
}
function Update () {
i+=Time.deltaTime;
if(i<allTime){
capsule.transform.Rotate(Vector3.up*Time.deltaTime*speed);
}
}
解释一下,capsule这个不用说就是你的圆柱体了,inspector面板中赋值一下就好了。i是一个计时用的,不用管。speed,就是旋转的速度了,speed假如等于60,就是每秒旋转60度,allTime就是旋转的总共的时间。例如,你想这个圆柱以每秒60度旋转120度就停止,这是speed =60,allTime = 2,就好了。不过这样的弊端就是它旋转的不是恰好120,可能119.8度这样的,有误差
追问
首先谢谢您的回答,问题是:我用的是C#语言,transform.rotate()是自转旋转函数,我需要的是公转transform.rotatearound()这个函数里面有三个参数,绕点饶轴公转,它的第三个参数是角速度,可不可以让角速度设为变量,用if给它设置条件,让它速度减为0达到公转90度后停止,那么这个if 怎么写呢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询