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

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

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

qq_44753967
qq_44753967 可以告诉我你怎么获取的excel中数据吗,谢谢
6 个月之前 回复

2个回答

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
DirectX中如何控制物体的移动位置
float x,y是设置初始位置(0.0f,0.0f)rn我刚接触DirectX不久,我也不太清楚用什么方法来控制物体的移动,我想从屏幕的中间移动到右上,再到右下,最后回到中心的位置并且停止旋转。但目前我让物体从 (0.0f,0.0f) 移动到 (1.0f,1.0f) 运行时物体直接到(1.0f,1.0f)了,看不到这个移动的过程(红色代码部分)。希望大家帮一下!小弟在此先谢谢了!rnVOID SetupMatrices(float x,float y)rnrn //控制循环次数rn float nx=0.0f,ny=0.0f;rn //绕(1,1,1)向量旋转rn D3DMXMATRIX matWorld, matWorldX, matWorldY, matWorldZ;rn D3DMXMATRIX matTrans;rnrn // 每1000ms旋转一周rn UINT iTime = GetTickCount() % 1000;rn int ttime=iTime;rn float fAngle = iTime * 6.28f;rn //旋转rn D3DMXMatrixRotationX( &matWorldX, fAngle );rn D3DMXMatrixRotationY( &matWorldY, fAngle );rn D3DMXMatrixRotationZ( &matWorldZ, fAngle );rn //平移rn[color=#FF0000] if(x==0.0f && y==0.0f)rn rn while(x<=1.0f)rn rn x=x+0.02f;rn y=y+0.02f;rn D3DMXMatrixTranslation(&matTrans,x,y,0.0f);rn rn [/color]rn D3DMXMatrixMultiply(&matWorld,&matWorldX,&matWorldY);rn D3DMXMatrixMultiply(&matWorld,&matWorld,&matWorldZ);rn D3DMXMatrixMultiply(&matWorld,&matWorld,&matTrans);rnrn g_pd3dDevice->SetTransform( D3DMTS_WORLD, (D3DMMATRIX*)&matWorld,D3DMFMT_D3DMVALUE_FLOAT );rnrn //设置视野矩阵,指定摄象机(眼睛)所在点,观看的点,以及哪个方向是眼睛的上方以固定摄象机rn D3DMXVECTOR3 vEyePt( 0.0f, 5.0f, -5.0f );rn D3DMXVECTOR3 vLookatPt( 0.0f, 0.0f, 0.0f );rn D3DMXVECTOR3 vUpVec( 0.0f, 1.0f, 0.0f );rn D3DMXMATRIX matView;rn D3DMXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );rn g_pd3dDevice->SetTransform( D3DMTS_VIEW, (D3DMMATRIX*)&matView, D3DMFMT_D3DMVALUE_FLOAT );rnrn //给需要显示的模型矩阵设置透视变换。通常用pi/4的视界rn D3DMXMATRIX matProj;rn D3DMXMatrixPerspectiveFovLH( &matProj, D3DMX_PI/4.0f, 1.0f, 1.0f, 100.0f );rn g_pd3dDevice->SetTransform( D3DMTS_PROJECTION, (D3DMMATRIX*)&matProj, D3DMFMT_D3DMVALUE_FLOAT );rnrnVOID Render()rnrn......rn SetupMatrices(0.0f,0.0f);rnrn
Unity物体按角度移动
Unity 中的物体按角度移动
Unity移动物体到鼠标点击位置
记录:           1.目的:   移动物体到鼠标点击处屏幕所对应的空间位置,并使物体正对着点击的对象,不能倾斜。             首先,需要获取点击屏幕所对应的空间位置,这可以通过先获取屏幕坐标,然后转成空间坐标;也可以通过射线直接获取到空间位置。             其次 ,移动物体到目的地,可直接通过差值进行移动,使物体看向目标点,不能直接使用LookAt(),因为
Unity中物体的移动方式
    关于Unity中控制物体移动的方式,大致可以分为两类:一类是利用Transform来实现移动,一类是利用Rigidbody来实现移动。    1、Transform控制物体移动的实现方式:        Transform.Transla(Dir*Time.Deltatime*speed):                     Dir是要移动的方向,比如:Vector3.forward...
Unity 陀螺仪姿态识别、 控制物体旋转移动
陀螺仪在Unity中最常用的应用就是控制摄像机的旋转using UnityEngine; using UnityEngine.UI; public class NewTest : MonoBehaviour { public Text debug; Quaternion quatMap; Quaternion quatMult = new Quaternion(0, 0, ...
unity 物体拖拽移动
3D物体拖拽移动 1 获取鼠标的屏幕坐标 2 将鼠标坐标与相机y轴方向的值,转换为3d坐标,并将改制赋给跟随鼠标移动对象void Update () { // Vector3 vp = Camera.main.ScreenToViewportPoint(Input.mousePosition + new Vector3(0, 0, Camera.main.farClipPlane
控制物体按指定线路移动
控制物体按指定线路移动 原理:物体在点与点之间移动 public class Patrol : MonoBehaviour { public Transform[] patrolPoints; public float moveSpeed; private int currentPoint; void Start () { transform.posi...
Unity之设置物体的位置
obj.transform.position = new vector3(0,0,0); 给物体设置位置0,0,0 在unity上运行没有问题,打包之后出现位置不对的情况。 更正:obj.transform.localPosition = new vector3(0,0,0); 适应情况:物体在Canvas下面,存在父物体。...
控制Unity物体的旋转
使用方法,将该脚本挂载到一个空物体上或者物体本身上,然后运行项目,分别按住A键旋转;按住W键物体移动
【Unity】子物体坐标问题
Armature是父物体,Armature_Left_Hand和Armature_Right_Hand都是Armature的子物体 动态生成的Armature物体 动态生成的Armature_Left_Hand物体,并使其为Armature物体的子物体 (Armature_Right_Hand与Armature_Left_Hand相似,因此不赘述) Armature_L
[unity]子物体和父物体的移动同步
子物体和父物体的移动同步 首先明确一个概念,子物体的坐标是以父物体为原点而计算的 在上图中,绿色球的坐标是(-2.62,6.3,0)这是相对于世界坐标原点。而作为它的子物体cube,cube的坐标是相对坐标,相对于绿色的球的。 从上面两张图可以看出,cube相对于绿球的坐标是(0.32,-5.43,0),而当cube不是绿球的子物体时,他相对于世界的坐标是(-0.73,-7.19,0) 回归...
unity让物体鼠标平滑移动物体
这是常用的一些操作吧。如果在Update函数里面直接调用Input.GetMouseButtonDown(0),我们就会发现他直接执行一次,我的解决方式是定义一个bool函数。 当鼠标按下时进行移动,在鼠标按下事件离开的时候就停止。代码比较简单,大家有别的方法一起讨论哈!
unity移动物体的方法及区别
二、利用Rigidbody rigidbody.AddForce(); rigidbody.MovePosition(); 三、获取轴 Input.GetAxis("Horizontal") * Time.deltaTime * speed; i
unity物体的移动/脚本的添加
首先,你要建立一个GamaObject 然后再建立一个脚本/script,再将脚本拖动到下面位置的GamaObject上,比如Cube 这样你会看到这个GamaObject属性最下面上多了一个script的图标 然后双击脚本进行编辑,修改Start函数或者updata函数,就可以实现每秒物体向前移动一米的效果了void Start () { float Tra
Unity 之游戏物体的移动篇
首先需要说明的是,unity 实现游戏物体的移动,其本质是改变transform组件的position。那么下面我们就来看有哪些方法是可以直接或者间接的改变transform.position的。 直接通过Transform组件直接改变。 需要说明的是:unity场景中任何一个游戏对象都会有一个Transform组件,是用来记录游戏对象的空间节点的状态,它包括位置...
C#——实现物体的移动(unity)
using UnityEngine; using System.Collections; public class shiftTest: MonoBehaviour { public flooat speed; float AD; floatWS; void Update(){ AD = Input.GetAxis("Horizontal");//横轴 WS = Input.g
Unity子物体在父物体中的位置、子物体脱离父物体在世界坐标系的位置,关系???
物体A的Scale为(1,1,1)Position为(0,0,0),物体B的Scale为(1,1,1)Position为(1,1,1),当A变为B的子物体后A的Position变为(-1,-1,-1),这个很容易理解。rn但是当我把物体B的Scale变为(2,2,2)其余内容全部不改变,再将A作为B的子物体,这是A的Position变为(-0.5,-0.5,-0.5),这是为什么呢?我理解不了是我觉得无论A、B是多么不规则,A、B的Position都是A、B的中心点,为什么父子物体的Position变换还与物体的Scale有关呢?
unity中触摸改变物体的移动缩放
在以往的unity中物体的移动缩放的过程中,往往会出现一个问题,就是相机跟随,导致物体变形,所以自己就想不要物体变形,物体又可以移动缩放,在网上查了很多,没有具体的代码,自己根据前人经验,来写这几句代码,如有错误,请大家修改指正,我已经测试,没有问题。可以编译到Android或者是Webgl上手机打开,但是这个代码只能触摸的,如果大家有好的,请留言using System.Collections;
Unity中物体在固定路线移动
using UnityEngine; using System.Collections; using System;public class NavigationFixedPath : MonoBehaviour { 1. //定义物体移动位置 的数组 GameObject[] pathPoints; //记录下一个路点 int nextPathPointIn
Unity控制物体旋转修改物体颜色
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeScript : MonoBehaviour { Transform t; MeshRenderer mr; // Use this for initialization void St
Unity 物体跟随鼠标点击移动,判断物体是否在移动
在场景中创建一个Plane和一个Sphere以及3个Cube。Plane做为地面,Sphere作为人物,Cube作为敌人。用户通过点击地面,使Sphere移动到点击的位置(不能使用导航网格寻路)。Sphere如果接近敌人一定距离后,敌人会跟随Sphere行动。如果敌人在主角旁边静止2s则主角消失。 public class cube : MonoBehaviour { public S
Unity移动控制(坦克移动)
using UnityEngine; public class TankControl : MonoBehaviour { //坦克左边的所有轮子 public GameObject[] LeftWheels; //坦克右边的所有轮子 public GameObject[] RightWheels; //坦克左边的履带 public GameO...
如何改变物体坐标
原来我是使用这种方法来转换一个物体的位置的rnrn但是我发现camera移动的时候这个物体就没有移动,那怎么做才能只改变它的物体坐标呢?rnrn[code=C/C++]rnvoid CALLBACK OnFrameRender( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext )rnrn HRESULT hr;rn pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB( 0,255,255 ), 1.0f, 0 );rnrn pd3dDevice->SetRenderState(D3DRS_LIGHTING, false); rnrnrn if (SUCCEEDED(pd3dDevice->BeginScene()))rn rnrn model.Render(pd3dDevice);rnrn pd3dDevice->SetTransform(D3DTS_WORLD, &m) ;rnrn room.Render(pd3dDevice);rnrn//*****************************************************rn D3DXMATRIX world = *MyCamera.GetWorldMatrix() ;rn pd3dDevice->SetTransform(D3DTS_WORLD, &world) ;rnrn // Set view matrixrn D3DXMATRIX view = *MyCamera.GetViewMatrix() ;rn pd3dDevice->SetTransform(D3DTS_VIEW, &view) ;rnrn // Set projection matrixrn D3DXMATRIX proj = *MyCamera.GetProjMatrix() ;rn pd3dDevice->SetTransform(D3DTS_PROJECTION, &proj) ;rn//*****************************************************rnrn pd3dDevice->EndScene();rnrn rnrnrnrnrnvoid CALLBACK OnFrameMove( double fTime, float fElapsedTime, void* pUserContext )rnrn MyCamera.FrameMove( fElapsedTime );rn D3DXMatrixRotationY( &m, 45 ); rnrn[/code]
Unity控制物体显示和隐藏
Unity控制物体显示和隐藏 今天碰到一个比较特殊的问题,刚开始一直没解决网上找了很多博客也没找到答案,后来在QQ群友的帮助下得以解决,借此机会正好来总结 一下。在开发过程中常常需要对物体进行隐藏和显示操作,包括对UI和物体的控制,以下的实验均为UGUI的前提下。 思路提示 其实整体的思路无非就是两种, 一种是直接暴力的将这个物体设置为未激活状态,这样上边的脚本也就不能运行了,如果想再...
Unity控制物体左右摆动
今天要写一个控制台子随时间左右移动的脚本,就像是左右摆动的移动靶一样,在这里记录一下 using System.Collections; using System.Collections.Generic; using UnityEngine; public class StageSwing : MonoBehaviour { private float _distance; ...
unity鼠标控制旋转物体
unity中 点击一个物体飞出 然后鼠标控制放大缩小 任意角度旋转
Unity鼠标左键控制物体
void update() { if (Input.GetMouseButtonDown(0)) { print(&quot;按下了左键&quot;); } }
unity中关于物体的旋转和朝向控制
在进行unity开发时,使用character control组建的实例,人物平滑的转向,然后朝着正前方移动。 这里实现三个效果,鼠标点击物体向正前方移动、awsd控制朝向、物体始终朝向目标。 1)鼠标点击目标移动 if (Input.GetMouseButton (0))  { transform.Translate (Vector3.forward * Time.deltaTime
Unity中使游戏物体按固定路线移动
适用于物体按固定路线移动(比如迷宫中的怪物寻路),可以先设置一个组存放这些位置。 public Transform[] wayPoints;//目标点组 private void Update() { if (transform.position != wayPoints[index].position) { MovePoints();//未到达...
在OPENGL中怎么控制物体的移动速度?
如题
Unity简单的移动控制。
using UnityEngine; using System.Collections; public class cubeControl : MonoBehaviour { public int speed = 5; public Transform m_camTransform; Transform m_transform; public int m_camHeight; V
unity 控制 移动旋转
简单控制移动  public class CameraMoveTest : MonoBehaviour { public float speed = 2f; public float rSpeed = 20f; // Update is called once per frame void Update() { if (Input.Get...
Unity获得点击位置的坐标
Unity获得点击位置的坐标Unity获得点击位置的坐标Unity获得点击位置的坐标
unity键盘输入控制移动
1、通过这个代码获取上下左右的输入,其值在0~1。 2、然后根据实时的时间值和移动速率进行控制物体移动的距离 3、使用this.transform.Translate移动的是物体的自身坐标,而使用this.transform.position 移动的是物体的世界坐标 4、将物体的世界坐标转换成屏幕坐标,确保物体的移动不会超出屏幕的范围。 5、对于屏幕坐标而言,左下角的坐标值为(0,0,0),右上角...
Unity移动控制总结
Unity目前学到的移动控制总结 一.《Unity5实战》角色移动控制(一)(MouseLook &amp;amp; 第一人称控件) 用于观察周围的脚本MouseLook public class MouseLook:MonoBehaviour{ public enum RotationAxes{ MouseXAndY = 0,//水平且垂直 Mouse...
unity 生成位置坐标管理
在场景中生成位置点,并对这些位置管理,是否位置占用,以及回收
unity ugui 坐标位置总结
Ugui中的transform下有两个位置一个是position,一个是localposition   可以简单理解position是世界坐标(位于空间下的某个位置) Localposition是相对位置是相对与父节点的偏移位置 这些和模型是一个道理   白色图片对应Image 红色图片对应Image3   两张图片的宽高都是100,两个图片的x距离是100个单位(只用x距离
Unity控制移动
虚拟轴控制移动 void _Move() { if(Input.GetKey(KeyCode.A)||Input.GetKey(KeyCode.D)||Input.GetKey(KeyCode.S)||Input.GetKey(KeyCode.W)) { Vector3 Keyv3=new Vector3(Input.GetAxis(&quot;Horizontal&quot;),0,Input.GetAx...
unity 控制移动的方法
一。 transform.Translate(new Vector3(1, 1, 1) * moveSpeed * Time.deltaTime); // Translate方法移动不会考虑刚体等碰撞(会直接穿过物体)二。 // 使用刚体移动物体(移动会受到物理引擎的影响) rb.MovePosition(rb.transform.position + new Vector3
Unity控制移动、旋转
目录 目录 Transform基本移动函数 Transformposition移动物体 rigidbodyvelocity 控制角色的移动 Transform基本移动函数: 1、向前移动 //移动速度 float TranslateSpeed = 10f; //Vector3.forward 表示“向前” transform.Translate(Vecto
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件