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 ...
随机推荐
- vue 條件語句
條件判斷使用v-if.v-else-if.v-else. v-show
- luoguP4035
P4035 [JSOI2008]球形空间产生器 Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以 ...
- 【CPU】理解CPU
CPU,全称Central Processing Unit,即中央处理器. 何为CPU? 计算机必须能够自动地从主存中取出一条条指令执行,专门来执行指令的就是CPU. 一.指令的执行过程 为了理解CP ...
- HTML5-SVG-基础篇
什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺 ...
- 双击jar文件运行程序
Java应用程序jar文件可以由 JVM(Java虚拟机)直接执行,只要操作系统安装了JVM便可以运行作为Java应用程序的jar文件.可是,很多朋友遇到一个难题,那就是下载了jar文件以后在Wind ...
- 基本排序算法[python实现]
冒泡排序 原理 冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换, ...
- 【XSY2528】道路建设 LCT 可持久化线段树
题目描述 给你一个\(n\)个点\(m\)条边图,\(q\)个询问,每次问你边权在\([l,r]\)之间的边组成的最小生成树(森林)的边权和.强制在线. \(n,m,q\leq 100000\) 题解 ...
- Java 元编程及其应用
Java 元编程及其应用 首先,我们且不说元编程是什么,他能做什么.我们先来谈谈生产力. 同样是实现一个投票系统,一个是python程序员,基于django-framework,用了半小时就搭建了一个 ...
- gogs : 添加 ssh An error has occurred : addKey: fail to parse public key: exec: "ssh-keygen": executable file not found in %PATH% - exec: "ssh-keygen": executable file not found in %PATH%
服务器上缺少配置 ssh-keygen.exe的 环境变量.git的环境变量 在path 环境变量加上.重启gogs服务
- MT【283】图像有唯一公共点.
函数$f(x)=\sqrt[n]x(n-\ln x),$其中$n\in N^*,x\in(0,+\infty)$.(1)若$n$为定值,求$f(x)$的最大值.(2)求证:对任意$m\in N^+$, ...