aopeter
aopeter
采纳率0%
2018-11-19 08:36

请教在Unity中如何控制物体按既定位置坐标进行移动?

请教各位大神,已知一组坐标数据(每0.2秒一个坐标,保存在Excel表格中)的前提下,
如何在unity中控制物体按照表格中的坐标进行运动?

现在已经在Start中将Excel里的坐标读取到一个二维数组中,
接下来我想的是采用fixedupdate,设定固定时长为0.2秒,
每次更新的时候采用transform.position将物体移动到新的坐标位置,
但是不知道该怎么刷新坐标位置,
我用for循环一样的i++来更新读取二维数组的坐标,
结果好像读不了,估计是我理解的问题,update是不是不能这样循环读取数组?
麻烦大家指点,新人诚心求教,谢谢~

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • vainfanfan Daemon在路上 1年前
    private void WalkShorestPath(){
            if(pathArray.Count == 0){
                Debug.LogWarning("最优路径未获得!");
                return;
            }else{
                Debug.LogWarning("人物开始沿路径行走!");
            }
    
            //人物朝向下一个点
            Vector3 nextPos = (Vector3)pathArray[count];
            transform.LookAt(nextPos);
            distance = Vector3.Distance(transform.position, nextPos);
            //移动到目标点的位置
            transform.position = Vector3.MoveTowards(transform.position, nextPos, 0.2f);
    
            if(FloatTools.LessThan(distance,0.1f) && count< pathArray.Count-1){
                count++;
            }
            if(count >= pathArray.Count-1){
                arriveGoal = true;
            }
    
        }
    
    点赞 2 评论 复制链接分享
  • qq_35719501 qq_35719501 2年前

    最好写个携程方法
    在这里面判断是否该位移,该位移到哪,

    点赞 1 评论 复制链接分享
  • weixin_40359651 weixin_40359651 3年前

    先定义一个int值 比如index=0;
    在fixedupdate中执行赋值操作
    if(index<数组.length){
    transform.position=数组【index】;

    }else{
    index=0;
    }
    index++;

    点赞 评论 复制链接分享
  • adgagd nbvfafghjagf 2月前

    楼主解决了吗,能提供点思路吗

    点赞 评论 复制链接分享

相关推荐