您的位置:首页 > 移动开发 > Unity3D

Unity 3d让物体成弧线运动(可以制作炮弹发射的轨迹)

2014-12-16 10:02 1021 查看


还有一种方法也可以实现,代码如下


usingUnityEngine;
usingSystem.Collections;

publicclassProjectileTest:MonoBehaviour
{
publicGameObjecttarget;//要到达的目标
publicfloatspeed=10;//速度
privatefloatdistanceToTarget;//两者之间的距离
privateboolmove=true;

voidStart()
{
//计算两者之间的距离
distanceToTarget=Vector3.Distance(this.transform.position,target.transform.position);
StartCoroutine(StartShoot());
}

IEnumeratorStartShoot()
{

while(move)
{
Vector3targetPos=target.transform.position;

//让始终它朝着目标
this.transform.LookAt(targetPos);

//计算弧线中的夹角
floatangle=Mathf.Min(1,Vector3.Distance(this.transform.position,targetPos)/distanceToTarget)*45;
this.transform.rotation=this.transform.rotation*Quaternion.Euler(Mathf.Clamp(-angle,-42,42),0,0);
floatcurrentDist=Vector3.Distance(this.transform.position,target.transform.position);
if(currentDist<0.5f)
move=false;
this.transform.Translate(Vector3.forward*Mathf.Min(speed*Time.deltaTime,currentDist));
yieldreturnnull;
}
}

}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: