|
自己的一些总结;
1.图片闪动,灯光闪动,背景音乐间的过度,都可以使用
Mathf.Lerp()第三个参数代表变化速度,以百分比为单位,所以乘以Time.deltatime;
2.切换场景的时候,要使场景时慢慢的显示出来的话,可以用全黑的(颜色根据自己的需要改)GUITexture,然后用Mathf.Lerp()来进行渐变
3.scene编辑场景那里那个太阳的标志是,如果打开就是用自己所建的灯光,如果关掉就使用场景自己的默认灯光。
4.在创建灯光的时候,就要考虑这个灯光产生的效果是动态的还是静态的,例如,创建一个墙壁上的灯,如果这个灯不会关闭,而是一直亮着,就可以把这个灯的LightMapping设置为BakedOnly。如果创建的灯是要动态的关闭或者打开的就要设置为RealtimeOnly。场景烘焙是要在场景建造完后才烘焙
5.使用灯光时,如果后期不需要进行场景烘焙的话,就把LightMapping选择为RealtimeOnly,要进行烘焙的才设置为bakedOnly。灯光的Cookie就是灯光的投射纹理
6.如果要使用灯光的探针,那么就要把受到探针影响的物体勾选use light probes
7.Input输入管理中snap的作用,如果不勾选,那么当输入移动方向与当前移动方向相反时,人物不会停止
8.animator中添加的过度条件是,表示并且
9.如果要使用多个动画组成在一起播放,就要使用层动画和身体遮罩。比如变跑边喊,那么base层放入跑的动画,那么添加一个新的层shouting,然后创建一个avtar,对这个avtar进行设置,使其只能头和右手动,然后把avtar赋给shouting层,那么shouting层就是用的刚才创建的avtar,然后再shouting层中创建一个空状态,这就是当条件不满足时,base层里执行动画,base层里什么也不干,然后把shouting动画拖入shouting层,然后设置过度,当条件满足时,播放shouting和跑的动画。
10.animator.stringtohash 将字符串转换成ID(ID为int)
描述:根据一个字符串,生成一个id参数
ID可以更好的用于获取和设置参数,这里所说的参数是动画设置里过 度条件那里的参数。(例如利用setfloat和getfloat设置参数)
11.如果设置动画层的权重为1,那么这个动画层将覆盖其他动画层,播放时就只能看到这一层的效果,其他的层的播放效果都看不到(可以这样理解:如果那一层的权重为1,那么那一层的动画就处于最上面,而其他层的动画都处于他的下面,如果不设置avtar那么,其他层的动画就完全看不见),只有当这一层播放完成后,其他层才分得权重,才能看到。
对权重的理解:播放权利,必须分的有权利,才能进行播放
12.audioclip通常在脚本中定义这个变量,那么就会使用AudioSource.PlayOneShot和AudioSource.PlayClipAtPoint
13.决定什么操作放在fixedupdate里,是根据当前操作对象是不是物理对象,如果是添加了刚体的,并且没有勾选is kin....那么这个对象就得在fixedupdate里操作
14.设置权重的依据:看这个动画层的播放是否很频繁,如果播放不是很频繁,那么可以吧权重设置为1也不影响。
15.在动画中,设置一个参数值的平滑变化是:Animator.SetFloat(name,currentValue,damp,当前帧速率);
16.对刚体实施旋转可以用rigidbody.moverotation(quaternion);
17.面对平滑首先考虑lerp函数
18.如果是通过动画的根运动,那么如果感觉动画运动的太慢,就可以通过设置动画播放的速度来调整
19.anim.GetCurrentAnimatorStateInfo(index)根据层索引获取动画剪辑信息,index从0开始,0就是base layer
20.选择摄像机,然后点击GameObject->align with view,作用是摄像机的视野与scene对齐。
21.通过lerp寻找两个数之间的插值,因为第三个数是百分比,
比如:lerp(1,2,0.25),那么返回的值是1.25;
22.使摄像机关注目标时,不能用lookat,因为它太过与僵硬,会产生抖动。
使摄像机跟踪目标,要使用两个lerp,一个是vector3.lerp,另一个是quaternion.lerp
摄像机位置 [url=]
[/url]
|
|