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()类似。

Unity 物体移动的理解的更多相关文章

  1. Unity 新手入门 如何理解协程 IEnumerator yield

    Unity 新手入门 如何理解协程 IEnumerator 本文包含两个部分,前半部分是通俗解释一下Unity中的协程,后半部分讲讲C#的IEnumerator迭代器 协程是什么,能干什么? 为了能通 ...

  2. UNITY 画布的粗浅理解

    画布:当画布是screen-space overlay时,这个好理解,画布可以控制如分辨率,层次等.但当画布是 world-space时,这个严格来说就不算是一个画布了,屏幕空间或相机空间的画布是先绘 ...

  3. Lua中用table统一管理需要获取的unity物体

    unity上的组件,可以用table统一管理 然后在初始化时候统一给table赋值,这样需要用到时候直接调用table中对应的key便可拿到对应的物体,省下了在脚本开头一堆声明的脚本,这样就不用声明这 ...

  4. Unity 物体围绕圆周运动

    用Unity开发游戏中,经常会有搜寻的功能,这时候我们需要一个放大镜的图标在那圆周运动.写了相关脚本直接挂载在要圆周运动的物体上即可: using UnityEngine; using System. ...

  5. unity静态批处理原理理解

    今天主程给我好好讲了一下静态批处理的问题,记下来的笔记心得~ 1.静态批处理的时间点 1)在游戏导出的时候,在player setting中勾选static batching,这样在导出包的时候就进行 ...

  6. Unity 物体旋转会发生变形

    当游戏对象的 "父物体们" 有一个是缩放的,也就是Scale不是(1,1,1)的时候,旋转这个游戏对象它就会出现变形的现象.

  7. 关于unity中BindChannels的理解

    http://blog.csdn.net/wpapa/article/details/51794277 官方文档:http://docs.unity3d.com/Manual/SL-BindChann ...

  8. Unity物体上下反复漂浮效果

    using UnityEngine;using System.Collections;// 主界面的开始按钮使用该脚本,控制上下来回浮动public class Floating : MonoBeha ...

  9. [转载]unity优化1

    官方优化文档--优化图像性能http://docs.unity3d.com/Documentation/Manual/OptimizingGraphicsPerformance.html Unity3 ...

随机推荐

  1. python设计模式第八天【装饰器模式】

    1.定义 使用包装的释放扩展类的功能,但是不使用继承 2.使用场景 3.代码实现 #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ def MyDecorat ...

  2. git和svn的區別

    https://blog.csdn.net/bmicnj/article/details/78413058

  3. 【python练习题】程序13

    #题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153= ...

  4. Java 设计模式 ------ 模板设计模式

    模板设计模式主要来源于生活中有一些事情是有模板可以遵循的.举两个生活中的例子,如泡茶和泡咖啡,看一看. 泡茶有以下四个步骤:  1, 烧开水;  2 把茶放到水杯中; 3,倒入开水; 4, 加糖. 泡 ...

  5. codeforces616B

    Dinner with Emma CodeForces - 616B Jack decides to invite Emma out for a dinner. Jack is a modest st ...

  6. Tyche 2147 旅行

    题目描述 你有m元钱,将要游览n个国家.每一个国家有一种商品,其中第i个国家商品的单价为ai元.每到一个国家,你会用手上的钱疯狂购买这个国家的商品,直到剩余的钱无法购买为止. 现在你要决定游览这n个国 ...

  7. Spring 使用介绍(六)—— AOP(二)

    一.切入点语法 1)通配符 AOP支持的通配符: *:匹配任何数量字符 ..:匹配任何数量字符的重复,在类型模式中匹配任何数量子包,在方法参数模式中匹配任何数量参数 +:匹配指定类型的子类型,仅能作为 ...

  8. Python入门-编写抓取网站图片的爬虫-正则表达式

    //生命太短 我用Python! //Python真是让一直用c++的村里孩子长知识了! 这个仅仅是一个测试,成功抓取了某网站1000多张图片. 下一步要做一个大新闻 大工程 #config = ut ...

  9. Elasticsearch 聚合统计与SQL聚合统计语法对比(一)

    Es相比关系型数据库在数据检索方面有着极大的优势,在处理亿级数据时,可谓是毫秒级响应,我们在使用Es时不仅仅进行简单的查询,有时候会做一些数据统计与分析,如果你以前是使用的关系型数据库,那么Es的数据 ...

  10. Educational Codeforces Round 61 (Rated for Div. 2)

    A. Regular Bracket Sequence 题意:给出四种括号的数量 ((  )) ()  )( 问是否可以组成合法的序列(只能排序不能插在另外一个的中间) 思路: 条件一:一个或 n个) ...