Unity基础随笔

基于公司的项目需求,不得已从自研引擎转向Unity技术支持,去支持公司新的Unity项目,故最近转战学习Unity。

笔记:
Unity 脚本基类 MonoBehaviour 与 GameObject 的关系,以及可重写函数

四元数和旋转

模型(Model):

  • 材质(Material)
    • 着色器(Shader)
    • 贴图和其他参数,贴图也算一种参数
  • 网格渲染器(Mesh Render),动画,坐标

一个材质可以看成一个Shader的包装,一个预制体

着色器(Shader)

  • Albedo: 贴图/颜色
  • Metalic: 物体表面对光线反射的能量,通常金属设置>50%,大部分在90%,非金属小于20%
  • Smoonthness: 该值越大,物体越光滑
  • normal map: 法线贴图
  • Emisssion: 自发光

Prefab 预制体

Rigidbody中的些许设置:

Rigidbody中 Angular Drag(角阻力): 同样指的是空气阻力,只不过是用来阻碍物体旋转的.如果设置成无限的话,物体会立即停止旋转.如果设置成0,物体在上升过程中,会发生侧翻旋转.(无限大 Infinity)

Freeze Position/Rotation(冻结位置/旋转):可以对物体在X、Y、Z三个轴上的位置/旋转进行锁定,即使受到相应的力也不会改变,但可以通过脚本来修改.否则物体在上升过程中会发生飘动(不仅y轴变化,X,Z也在变,不想这种现象,就把X,Z锁定)

Unity协程实际作用
协程还是在主线程中执行,可以分步做一些比较耗时的操作.
eg:初始化资源,LoadScene以及LoadNPCResource…

持续进行中,晚上不能熬夜…

Day 2

使用某个GameObject上挂载的脚本,可先使用FindTag,找到对应的游戏对象,实例化后使用 eg:
object.GetComponent();得到脚本对象,接着便可以使用其成员方法

Tag 与 Layer区别与使用:
Layer是一种隔离物体的方式,例如对地板创建FloorMask,设置RayCast只能与Floor相交,或者Lighting只能照射到标记的Layer上。
或者创建敌对目标,设置Layer为Shooting,便可在游戏逻辑中对Layer进行操作。

Tag 与 Layer 的差异与应用

Survival Shooter Tutorial
Unite 2014 training day 开发者培训项目
学习笔记

Audio Clip 音频素材

取消playOnAwake
在游戏结束后需要循环播放音效,所以打开Loop选项

Unity声音组件Audio Source组件浅析以及使用

State Meachine状态机
Animation Controller
动画控制

欧拉角与万向节锁

Unity输入系统

Vector3.Set的一些坑:
Vector3.Set

向量归一化:
水平向量与垂直向量均达到1时,合向量便是1.4.作用力便会变大.
需要使用Vector3.normalized使向量归一化

unity中Vector3.normalized和Vector3.Normalized的区别:
- normalized:不改变向量的方向 只是限制其在范围1中(返回新的规范化向量)
- Normalized: 改变当前向量 使得当前向量长度是1
归一化

ScreenPointToRay方法使用解析:
ScreenPointToRay

Unity Animator与Animation的区别:
Animator与Animation

Unity中Input.GetAxisRaw 与 Inout.GetAxis 区别
GetAxis [-1, 1]范围内变化,适合于赛车游戏的提速
GetAxisRaw 可直接返回-1,1,适合实时转向的FPS游戏

默认情况下,FixedUpdate没0.02s执行一次,每秒执行50次
Time.deltaTime = 0.02;

线性插值:
Vector3.Lerp()
线性插值

Unity Navigation烘焙

将某些UI的Alpha设置为0,脚本逻辑控制下再将其闪烁等

GetComponentInChildren 遍历所有的子物件查找组件

transform.Translate(-Vector3.up * sinkSpeed * Time.deltaTime) // 不需要使用Rigidbody.movetranslate,不存在物理属性

GetCompnent ().enable() = false;
GetComponent ().isKinematic = true;
isKinematic(运动学的)指不受物理控制

GameObject.setActive(boll) // 设置游戏对象的可见性
.enable(boll) // 使用/禁用某个组件

Unity Animation添加动画事件

Unity粒子系统介绍

Unity线性渲染器LineRender

Unity3d vector3.forward和transform.forward的区别

Rotate旋转相关

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值