Unity3d 变换游戏对象
我试图使一个对象移动到一个存储在数组中的立方体 阵列中充满了带有标签的游戏对象 我可以让物体立即移动到立方体上,但不像它那样缓慢地移动到立方体上 这是我的剧本:Unity3d 变换游戏对象,unity3d,transform,unityscript,gameobject,Unity3d,Transform,Unityscript,Gameobject,我试图使一个对象移动到一个存储在数组中的立方体 阵列中充满了带有标签的游戏对象 我可以让物体立即移动到立方体上,但不像它那样缓慢地移动到立方体上 这是我的剧本: var moveTo:GameObject; 函数更新(){ 打印(FindClosestEnemy().name); } 函数FindClosestEnemy():GameObject{ 游戏点:游戏对象[]; chasePoints=GameObject.FindGameObjectsWithTag(“chasePoint”); 变
var moveTo:GameObject;
函数更新(){
打印(FindClosestEnemy().name);
}
函数FindClosestEnemy():GameObject{
游戏点:游戏对象[];
chasePoints=GameObject.FindGameObjectsWithTag(“chasePoint”);
变量:游戏对象;
var距离=数学无穷大;
var位置=变换位置;
for(var go:chasePoints中的游戏对象){
var diff=(go.transform.position);
var curDistance=不同的sqrMagnitude;
if(电流距离<距离){
最近的=去;
moveTo=最近的;
transform.position-=moveTo.transform.position;
距离=距离;
}
}
返回最近的位置;
}
我也尝试了Time.deltaTime
的东西,但是它会传送到远离立方体的地方
而仅仅将其转换为变换数组也行不通:(有什么想法可以让它工作吗
非常感谢您的帮助:)提前谢谢 看起来您正在一帧内完成整个变换。您需要拾取速度并将其应用于每帧的对象。你知道从哪里到哪里。选择需要多长时间并以增量方式更新。请记住,您无法确定每秒将有60帧,因此请将其考虑在内 看起来您正在一帧内完成整个变换。您需要拾取速度并将其应用于每帧的对象。你知道从哪里到哪里。选择需要多长时间并以增量方式更新。请记住,您无法确定每秒将有60帧,因此请将其考虑在内 您可以使用 对于maxDistanceDelta,您可以选择一个速度并将其与时间相乘。deltaTime与帧长无关:
Vector3.MoveTowards(transform.position, moveTo.transform.position, speed * Time.deltaTime);
你可以用
对于maxDistanceDelta,您可以选择一个速度并将其与时间相乘。deltaTime与帧长无关:
Vector3.MoveTowards(transform.position, moveTo.transform.position, speed * Time.deltaTime);