Unity通过内置的Input类获取外部输入,具体查看:

Editor---Project Setting---Input,常见的输入比如:Vertical、Horizontal、Fire1、Jump等;

物体移动:

1、物体自己移动

private Transform transform;
transform = GetComponent<Transform>(); transform.position += new Vector3(, , );
transform.Translate(Vector3.forward);

首先定义Transform组件,再获取组件;

1)可以改变组件的位置属性进行移动,Vector3(0,0,1)表示物体沿z轴的正方向移动,其他类似Vector3(1,0,0)表示沿x的正方向移动;

2)使用组件的Translate()函数进行移动,函数的传值Vector3.forward其实等价与Vector3(0,0,1),当然还有Vector3.left=Vector3(-1,0,0)等;

2、键盘控制物体移动

private Transform transform;
private float v = 0.0F;
private float h = 0.0F; v = Input.GetAxis("Vertical");
h = Input.GetAxis("Horizontal"); transform.Translate(Vector3.forward*v);
transform.Translate(Vector3.left*h);
transform.Translate(Vector3.forward*v*Speed*Time.deltaTime);

1)分别获取x轴和z轴的方向

同样定义组件和获取组件,接下来需要获取水平和垂直坐标,直接乘到Vector3.*向量就可以实现,值得注意的是Vector3.*获取的只是方向;

总之是方向*坐标轴即可移动;

最后可以看到加入的移动速度和Time.daltaTime同样改变游戏移动速度的参数,以每秒10个单位的速度前进;

2)用向量moveDir获取x轴和z轴的方向,更加简练

v = Input.GetAxis("Vertical");
h = Input.GetAxis("Horizontal"); Vector3 moveDir = (Vector3.forward*v) + (Vector3.right*h);
transform.Translate(moveDir.normalized*Speed * Time.deltaTime );

三、物体旋转

其实在transform组件中除了位置外,还有一个重要的属性,旋转Rotate();

旋转其实也可以分为自动旋转和通过键盘输入进行旋转;

private Transform transform;
public float rotSpeed = 100.0F; transform = GetComponent<Transform>();
transform.Rotate(Vector3.forward * Time.deltaTime * rotSpeed* Input.GetAxis("Mouse X"));
transform.Rotate(Vector3.forward * Time.deltaTime * rotSpeed);

首先需要定义Transform组件,然后获取组件,再通过函数Rotate()进行旋转,其中的参数和位置函数Traslate()类似。

最新文章

  1. ACM 田忌赛马
  2. easyUI笔记09.03
  3. extjs ajax请求与struts2进行交互
  4. SQL内连接与外连接的区别【转】
  5. 使用windows服务和MSMQ和进行日志管理(解决高并发问题)
  6. typedef函数指针使用方法
  7. webService请求方式快速生成代码 (Postman)
  8. WinCE系统声音定制
  9. HTTP一、HTTP介绍与套接字
  10. CentOS6.5在虚拟机中安装
  11. react componentWillReceiveProps 使用注意
  12. Task.Delay方法的2个应用实例,单元测试等待,限时限次下载远程资源
  13. linux分区详解
  14. js 各种循环遍历
  15. [洛谷P5216]DLS 采花
  16. BZOJ3192:[JLOI2013]删除物品——题解
  17. Jmeter+JDK的安装学习笔记
  18. noip2011初赛提高组 试题详解
  19. mybatis查询缓存
  20. 基础数据类型-dict

热门文章

  1. 使用urllib2+re爬取web网站
  2. 怎样利用ADO中的adoquery进行缓存更新?????(100分)
  3. Uninstall registry
  4. sql server对已创建的表增加属性(自动增序)
  5. [BZOJ 2083] [POI 2010] Intelligence test
  6. HDU5773-The All-purpose Zero-多校#41010-最长上升子序列问题
  7. Matplotlib学习---用matplotlib画雷达图(radar chart)
  8. spi slaver接口的fpga实现
  9. 【XSY2750】Mythological V 2-sat
  10. 【XSY2665】没有上司的舞会 LCT DP