0%

Unity学习杂乱笔记

Time.timeScale、游戏暂停

timeScale不会影响Update和LateUpdate的执行速度。因为FixedUpdate是根据时间来的,所以timeScale只会影响FixedUpdate的速度

会影响的是Time.time的时间, Time.timeScale影响的是Unity的游戏时间缩放比例。Unity里面所有跟时间有关系的东西都是根据timeScale来演算的

动画,粒子特效,声音播放也会受影响

如果你想取到游戏的实际时间,那么使用Time.timeSinceLevelLoad就可以,前提是必须在Awake()方法以后再取,

如果在Awake()方法里面取Time.realtimeSinceStartup会取出一个错误的值,在Start方法里面取的话就正常了。

1.游戏暂停

设置 Time.timeScale = 0;即可让游戏暂停。 其实我们暂停的主要是 人物动画,还有技能特效,比如一个火球打了一半。

如果游戏暂停以后想在暂停界面上继续播放一些不受Time.timeScale 影响的动画,那么我们就需要用到Time.realtimeSinceStartup

Random类

SmoothDamp()制作相机跟踪效果

Mathf.SmoothDamp() 方法可以制作相机的跟踪效果,让物体的移动不是那么僵硬而是做减速的缓冲效果。

Input 类

Input 类提供的成员变量如下:

摄像机目标渲染纹理targetTexture

使用Raw Image制作小地图

1.制作一个小地图

2.将相机放置在地图的正上方,可以设置Culling Mask(遮

挡剔除)

3.创建一张Render Texture,将Target Texture属性指向这

张纹理

4.创建UI面板,创建Raw Iamge,将Raw Image下的

Texture属性指向小地图纹理即可

5.如果要制作圆形的小地图,可以为Raw Image添加Iamge

为父物体,为Image添加Mask(遮罩),然后为Image

选择图片就可以实现

扇形技能的伤害判定

​ 1.已知两个向量,如何求两个向量的夹角

从摄像机位置形成射线,按下按钮使物体的颜色变红

从枪口位置产生射线,击中目标物体,产生准心效果

Line检测

1
2
3
4
5
6
7
8
//判断两个对象间有没有障碍物
RaycastHit hit;
if (Physics.Linecast (start.position, end.position,out hit))
{
print (hit.transform.position);
hit.transform.GetComponent<MeshRenderer>().material.color=Color.red;
}

OverlapShpere检测的应用

检测范围内的碰撞器,添加爆发力

动画重定向:让一个没有动画、没有状态机的模型使用其他已经创建好的模型的动画Animation Clip和状态机Animation Controller,达到和参考模型相同动画效果

1、设置相同的导入方式:Rig—Animation Type—Humanoid

2、如果模型之间骨骼节点相同,可使用Avatar Definition—Copy From Other Avatar,不同则需重新创建骨骼映射,Create From This Model

3、给重定向模型选择参照模型的骨骼映射Avatar(若骨骼相同,则选;不相同,则为自身创建)、Animator Controller状态机

记得给重定向模型添加C#