我正在使用Cinemachine Virtual Camera,并且希望它仅沿Y轴向上移动。我该如何实现?
我还有一个问题:如何阻止X轴上的运动? 我将盲区设置为1,但是当我的对象从屏幕的左边界移动到右边界时,我会看到一点抖动。
谢谢!
答案 0 :(得分:3)
您可以创建vcam扩展名,此模板可以正常工作。 这是从此论坛中获取的。 https://forum.unity.com/threads/lock-an-axis-in-2d-vcam-follow-mode.516370/
using UnityEngine;
using Cinemachine;
/// <summary>
/// An add-on module for Cinemachine Virtual Camera that locks the camera's Z co-
ordinate
/// </summary>
[ExecuteInEditMode] [SaveDuringPlay] [AddComponentMenu("")] // Hide in menu
public class LockCameraZ : CinemachineExtension
{
[Tooltip("Lock the camera's Z position to this value")]
public float m_ZPosition = 10;
protected override void PostPipelineStageCallback(
CinemachineVirtualCameraBase vcam,
CinemachineCore.Stage stage, ref CameraState state, float deltaTime)
{
if (enabled && stage == CinemachineCore.Stage.Body)
{
var pos = state.RawPosition;
pos.z = m_ZPosition;
state.RawPosition = pos;
}
}
}
因此扩展比覆盖主摄像机位置更好,因为您可以启用或禁用扩展,也可以与其他扩展结合使用。