【Unity教程】零基础带你从小白到超神

网格越少性能消耗越低

脚本生命周期方法

fixedUpdate 固定间隔调用一次,与性能无关

脚本执行顺序,数值越小优先级越高

标签是自己看的,图层是控制的时候看的

新建图层一般从第6层开始

向量计算
减法a-b可直接画从b到a的向量

点乘

转化为单位向量后可以直接得出cos&
vector3 方法

申明一个vector3,命名为v

计算v和v2的夹角

计算v和v2的距离

比例计算

变成单位向量
汇总

旋转
在unity中默认欧拉角,但在系统中默认四元数

创建一个欧拉角

创建一个无旋转的四元数

欧拉角rotate(自己命的名)转换成四元数

四元数转换成欧拉角

指定一个位置,拿到对应物体看向这个位置的四元数
输出debug

从上到下依次是普通信息,警告和报错

这个线只有开发人员可见,继续在括号中加入,Color.颜色 可以改变线的颜色

射线
游戏物体的类是GameObject


标签tag,图层layer

声明游戏物体变量cube

第一个代表真正的激活状态,第二个是自身的激活状态

可以直接用transform

boxcollider是其中一个组件类型,对应位置填写组件类型即可



在脚本挂载的游戏物体添加
要在子物体添加直接将gameObject改为对应物体即可

Test处为需要找的物体名称

通过代码实例化物体


可以指定父物体等(prefab,xx)

给变量名并销毁

上下对应计时器

输出新建文本文件的路径(只读,加密压缩)

拿到不同平台的壳目录

这个文件夹内的文件打包后仍可见

大部分系统自带的临时文件夹

有用的场景需要拖拽到Build Settings中



上面using导入一个场景管理类才能使用

场景中物体的数量


当前已加载场景的数量

创建一个新场景

卸载一个场景
协程是用于异步加载场景的

使用协程需要先引用一个场景管理

从上到下依次是 声明一个operation,要在开始就异步加载场景所需要使用的协程方法,接受返回值

获取加载进度(实际运用需要学习ui后)
区间是0-0.9(可拓展)

默认是true,改成false即可

5秒后跳转

第一个是世界位置,第二个是相对于父物体的位置

四元数和欧拉角分别在世界和相对位置的获取

只有相对于父物体的

前方,右方和上方(对应3个轴z,x,y)

时刻看向一个点

第一个参数是按什么轴旋转,第二个参数是每帧x度(自转)

第一个参数是目标点,第二个参数是轴,第三个是每帧x度(公转)

第一个参数是方向(可以直接赋予速度)

注意,最后一个是解除所有子物体关系

第一行代码用到的参数是具体某个子物体名称,第二行代码用到的参数是第X个子物体

判断父子关系

通过代码设置父物体
键鼠控制(必须在update中写)

按下的瞬间触发

持续按下

松开鼠标

keycode中枚举
(直接用字符也可以,例如"a")
通过设置虚拟轴实现多平台可控。代码通过设置虚拟轴来控制游戏内的操作(移动等)

更改上面的数字以拓展

输入虚拟轴的名称,对应在输入管理器中的名称

输入虚拟按键的名称,对应在输入管理器中的名称

按下,持续按,松开

初始化时开启多点触摸

判断触摸点是否为1(单点触摸)

触摸阶段上到下依次分为 开始,移动,静止,结束,中断

多点(2点)触摸,拿到2个触摸对象
定向灯光(从无穷远的地方照射)
硬阴影(锯齿多,性能消耗小)
软阴影(边缘有羽化效果,性能消耗较高)

区域灯光(需要手动去生成,删除后依然存在)
透视摄像机(默认使用,近大远小)
正交摄像机(不会有近大远小的效果)

在灯光投影中选择

清除后可以自行添加组件来补充清除部分(如天空)(相机上显示)
相机深度越高,优先级越高
多个相机时,选择仅深度后可以显示多个相机拍摄到的内容(第一个相机将拍到的传给下一个相机,按深度依次传递,最终组合)

物体需要在相机锥形范围内才可以拍到

x,y影响位置,w,h影响大小

有目标纹理后会无视目标显示
声音监听组件放在摄像机上,当有多个摄像机时需要删除组件到只剩一个摄像机有声音监听组件
需要指定一个物体才能发出声音

控制物体发出声音的最小距离和最大距离

添加音乐和音效的模块

添加播放器组件并命名player

获取组件

设定基础信息并播放

控制播放

控制音效播放
创建一个纹理,将视频文件放入纹理中,再在对应物体应用纹理即可

引用模块后才可以使用videoplayer(播放器)
其他使用方法参考音频

角色控制组件


使用组件

获取轴的数据并创建向量

dir*2代表基于标准的双倍移动速度
rigidbody 重力组件

开启后不受力影响(收到撞击也不会动)
碰撞检测
离散(具有间隔的检测,高速碰撞有可能检测不到)
持续(一般静态物体用,比较消耗性能)
连续动态(一般动态物体用,比较消耗性能)
collder碰撞器组件(具体需要分物体作为前缀)

碰撞过程方法


注:销毁爆炸物可以新建一个脚本挂载到爆炸物中控制(一个功能写一个脚本(谁的事谁去做))

获取碰撞信息
在update中写的时间通常以帧为单位

加入* Time.deltaTime可以转换成秒,中间*2表示2倍

实现移动
触发和碰撞类似,需要在碰撞器属性中设置“是触发器”(勾选后可以穿过设置了触发器的物体)(可以通过取消勾选隐藏,不让玩家看见)

分为3个阶段(刚触发,持续触发,离开触发)

需要获取对应组件并控制