Unity-CameraCinemachine实战应用笔记

Virtual Camera 控制优先级管理相机渲染。 切换镜头

 

Cinemachine FreeLook 如何通过代码设置相机的Transform信息。

ForceCameraPosition 意味将FreeLook虚拟相机同步到此位置。

 

如何取消平滑的过程。

通过设置PreviousStateIsVaild false 可以让相机当前邻近的那帧不处理阻尼。

即可让虚拟相机在下一帧立即完成Damp,但将Damp延迟到下一帧完成,有时可能导致画面跳变。

两种解决方案:1是可以参考文章(13条消息) 【Unity】使Cinemachine立即完成Damp、当前Blend和即将发生的Blend_Arvin的博客-CSDN博客

FreeLook所有子虚拟相机都同步位置在同一个地方。

可以减少阻尼的距离。效果上不会像默认那样离谱。如果真不要阻尼同时设置 PreviousStateIsVaild 但这样还是会有画面跳变的问题,所以如果用到PreviousStateIsVaild 需要参考文章1设置。

FreeLook不再跟随目标

lookat follow at暂时设置成null 可以使freelook不再绕轨道操作了。

freeLook.LookAt = null;
freeLook.Follow = null;

freelook 停止输入控制:

freeLook.m_XAxis.m_InputAxisName = "";
freeLook.m_YAxis.m_InputAxisName = "";

 

 

将不在Freelook轨道上的目标位置 约束纠正到轨道上。

XAxis:横轴 控制相机在轨道横轴的偏移。

Inspector面板下,尝试编辑XAxis  值并未发生变化一直是零但是发现XAxis的变化即是当前相机位置到目标轨道位置的角度偏移。[-360360]

得到这个结论,我们只需要计算目标位置 然后将目标位置 与当前相机的位置共终点。得到一个方向向量,对方向向量求角度。得到偏移角度。

已知XAxis的变化即是以LookAtPoint为轴点 当前相机位置到目标轨道位置的角度偏移。

那么我们这里的终点即是LookAtPoint。那么很简单,根据上图分析,即可通过角度偏移把目标位置约束到轨道上。

作者:Miracle
来源:麦瑞克博客
链接:https://www.unitymake.com/archives/unity/1055
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
THE END
分享
打赏
海报
Unity-CameraCinemachine实战应用笔记
Virtual Camera 控制优先级管理相机渲染。 切换镜头   Cinemachine FreeLook 如何通过代码设置相机的Transform信息。 ForceCameraPosition 意味将FreeLook虚……
<<上一篇
下一篇>>
文章目录
关闭
目 录