Unity3d 我如何以给定的速度到达目标
我在游戏中添加了寻的导弹,但在更新中,我在如何到达目标方面遇到了一些问题。我已经计算了距离,并从中减去了速度。。但我能把它加到位置上吗Unity3d 我如何以给定的速度到达目标,unity3d,Unity3d,我在游戏中添加了寻的导弹,但在更新中,我在如何到达目标方面遇到了一些问题。我已经计算了距离,并从中减去了速度。。但我能把它加到位置上吗 using UnityEngine; using System.Collections; public class MissileScript : MonoBehaviour { public GameObject Target; // Use this for initialization void Start () {
using UnityEngine;
using System.Collections;
public class MissileScript : MonoBehaviour {
public GameObject Target;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
float distance = Vector3.Distance(Target.transform.position, transform.position);
distance -= .1 * Time.deltaTime;
???
}
}
你不需要知道距离。此外,您应该为游戏对象设置
速度值。然后您可以执行以下操作:
计算方向向量
归一化方向向量
使用Speed
和Time.deltaTime
值创建移动因子
使用Transform.Translate
功能移动游戏对象
大概是这样的:
public GameObject Target;
public float Speed;
void Update()
{
Vector3 direction = Target.transform.position - this.transform.position;
direction.Normalize();
float factor = Time.deltaTime * Speed;
this.transform.Translate(direction.x * factor, direction.y * factor, direction.z * factor, Space.World);
}
您应该了解转向行为,尤其是寻求行为。
它的实现非常容易,而且比简单地在直线上使用翻译更现实
检查此链接:更改速度
值,直到获得正确的导弹速度