Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 变换游戏对象_Unity3d_Transform_Unityscript_Gameobject - Fatal编程技术网

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);