Unity 物体移动的理解
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 物体移动的理解的更多相关文章
- Unity 新手入门 如何理解协程 IEnumerator yield
Unity 新手入门 如何理解协程 IEnumerator 本文包含两个部分,前半部分是通俗解释一下Unity中的协程,后半部分讲讲C#的IEnumerator迭代器 协程是什么,能干什么? 为了能通 ...
- UNITY 画布的粗浅理解
画布:当画布是screen-space overlay时,这个好理解,画布可以控制如分辨率,层次等.但当画布是 world-space时,这个严格来说就不算是一个画布了,屏幕空间或相机空间的画布是先绘 ...
- Lua中用table统一管理需要获取的unity物体
unity上的组件,可以用table统一管理 然后在初始化时候统一给table赋值,这样需要用到时候直接调用table中对应的key便可拿到对应的物体,省下了在脚本开头一堆声明的脚本,这样就不用声明这 ...
- Unity 物体围绕圆周运动
用Unity开发游戏中,经常会有搜寻的功能,这时候我们需要一个放大镜的图标在那圆周运动.写了相关脚本直接挂载在要圆周运动的物体上即可: using UnityEngine; using System. ...
- unity静态批处理原理理解
今天主程给我好好讲了一下静态批处理的问题,记下来的笔记心得~ 1.静态批处理的时间点 1)在游戏导出的时候,在player setting中勾选static batching,这样在导出包的时候就进行 ...
- Unity 物体旋转会发生变形
当游戏对象的 "父物体们" 有一个是缩放的,也就是Scale不是(1,1,1)的时候,旋转这个游戏对象它就会出现变形的现象.
- 关于unity中BindChannels的理解
http://blog.csdn.net/wpapa/article/details/51794277 官方文档:http://docs.unity3d.com/Manual/SL-BindChann ...
- Unity物体上下反复漂浮效果
using UnityEngine;using System.Collections;// 主界面的开始按钮使用该脚本,控制上下来回浮动public class Floating : MonoBeha ...
- [转载]unity优化1
官方优化文档--优化图像性能http://docs.unity3d.com/Documentation/Manual/OptimizingGraphicsPerformance.html Unity3 ...
随机推荐
- 二、kubernetes环境搭建
主要内容 1.环境准备(2主机) 2.安装流程 3.问题分析 4.总结 环境配置(2主机) 系统:CentOS 7.3 x64 网络:局域网(VPC) 主机: master:172.16.0.17 m ...
- Python——SMTP发送邮件
一.定义 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.python的smtplib ...
- react使用setstate注意的两点
1.this.state里的属性不修改,或是只修改一个,那么不修改的剩下的属性不会被变动. this.state={ name:"Aliece", age:19, msg:&quo ...
- Deepfakes:AI换脸技术自制明星XX片
ps:亮瞎狗眼 去年开始就在国外网站上比较火的项目了,通过Deepfakes技术可以将视频中的人脸换成自己喜欢的明星, 当时就有不少人制作了换脸视频,其中大部分是替换了XX片的女主角. 国外网站Red ...
- ubuntu 14.04zabbix的安装
开始安装 64位 Ubuntu 14.04.5 LTS \n \l 安装zabbix的源,以下操作在root下进行 # wget http://repo.zabbix.com/zabbix/3.0/ ...
- [IOI2018]高速公路收费——二分查找+bfs
题目链接: IOI2018highway 题目大意:给出一张$n$个点$m$条边的无向图,并给出一对未知的起点和终点,每条边都有两种边权$A$和$B$(每条边的$A$和$B$都分别相同),每次你可以设 ...
- 【XSY2703】置换 数学 置换 DP
题目描述 对于置换\(p\),定义\(f(p)\)为最小的正整数\(k\),使得\(p^k\)为恒等置换. 你需要求对于所有的\(n\)元素置换\(p\),\(f^2(p)\)的平均值. \(n\le ...
- fullcalendar 日历插件3.9.0 -- 基本插件使用
以下主要结构,直接执行即可以使用 ,仅用参考: html: <!DOCTYPE html> <html> <head> <title>test</ ...
- 【刷题】LOJ 556 「Antileaf's Round」咱们去烧菜吧
题目描述 你有 \(m\) 种物品,第 \(i\) 种物品的大小为 \(a_i\) ,数量为 \(b_i\)( \(b_i=0\) 表示有无限个). 你还有 \(n\) 个背包,体积分别为 \(1 ...
- js多回调函数
多回调问题 前端编程时,大多通过接口交换数据,接口调用都是异步的,处理数据都是在回调函数里. 假如需要为一个用户建立档案,需要准备以下数据,然后调用建档接口 name // 用户名字 使用接口 ...