炮弹发射的轨迹)"/>
Unity 3d让物体成弧线运动(可以制作炮弹发射的轨迹)
|
还有一种方法也可以实现,代码如下
using UnityEngine;
using System.Collections;public class ProjectileTest : MonoBehaviour
{public GameObject target; //要到达的目标public float speed = 10; //速度private float distanceToTarget; //两者之间的距离private bool move = true; void Start(){//计算两者之间的距离distanceToTarget = Vector3.Distance(this.transform.position, target.transform.position); StartCoroutine(StartShoot());}IEnumerator StartShoot(){while (move){Vector3 targetPos = target.transform.position;//让始终它朝着目标this.transform.LookAt(targetPos);//计算弧线中的夹角float angle = 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);float currentDist = 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));yield return null;}}}
更多推荐
Unity 3d让物体成弧线运动(可以制作炮弹发射的轨迹)
发布评论