首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换GameObject

转换GameObject
EN

Stack Overflow用户
提问于 2011-04-03 05:51:50
回答 2查看 1K关注 0票数 1

我正在尝试让一个对象移动到一个存储在数组中的立方体中。

数组中填充了带有标记的gameObjects。

我可以让物体立即移动到立方体,但不是像它走到它那里那样缓慢。

这是我的脚本:

代码语言:javascript
复制
var moveTo : GameObject;

function Update(){
    print(FindClosestEnemy().name);
}

function FindClosestEnemy():GameObject{

    var chasePoints : GameObject[];
    chasePoints = GameObject.FindGameObjectsWithTag("chasePoint");
    var closest : GameObject;
    var distance = Mathf.Infinity;
    var position = transform.position;

    for(var go: GameObject in chasePoints){
        var diff = (go.transform.position-position);
        var curDistance = diff.sqrMagnitude;
        if(curDistance < distance){
            closest = go;
            moveTo = closest;
            transform.position -= moveTo.transform.position;
            distance = curDistance;
        }
    }
    return closest; 
}

我也试过Time.deltaTime的东西,但它传送到离立方体很远的地方。

仅仅将它转换为Transform Array也是行不通的:(有什么想法可以让它工作吗?

非常感谢您的帮助:)提前谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-03 06:07:32

看起来你在一帧中完成了整个转换。您需要拾取一个速度,并将其应用于每个帧的对象。你知道from和to。选择您希望它花费的时间,并增量地更新它。记住,你不能确定每秒会有60帧,所以要考虑到这一点。

票数 1
EN

Stack Overflow用户

发布于 2011-05-28 04:30:47

您可以使用Vector3.MoveTowards

对于maxDistanceDelta,您可以选择一个速度,并将其与Time.deltaTime相乘,使其与帧长度无关:

代码语言:javascript
复制
Vector3.MoveTowards(transform.position, moveTo.transform.position, speed * Time.deltaTime);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5526141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档