您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
43 行
1.4 KiB
43 行
1.4 KiB
using UnityEngine;
|
|
using Cinemachine;
|
|
using NaughtyAttributes;
|
|
|
|
namespace GameplayIngredients.Actions
|
|
{
|
|
[Callable("Cinemachine", "Misc/ic-cinemachine.png")]
|
|
public class CinemachineSetCameraNoiseAction : ActionBase
|
|
{
|
|
[SerializeField]
|
|
bool useLiveCamera;
|
|
[SerializeField, HideIf("useLiveCamera")]
|
|
CinemachineVirtualCamera targetCamera;
|
|
|
|
[SerializeField]
|
|
NoiseSettings settings;
|
|
|
|
public override void Execute(GameObject instigator = null)
|
|
{
|
|
CinemachineVirtualCamera cam = useLiveCamera ?
|
|
Manager.Get<VirtualCameraManager>().GetComponent<CinemachineBrain>().ActiveVirtualCamera as CinemachineVirtualCamera
|
|
: targetCamera;
|
|
|
|
if(cam == null)
|
|
{
|
|
Debug.Log("CinemachineSetCameraNoiseAction : Cannot find a suitable CinemachineVirtualCamera to set Noise to");
|
|
return;
|
|
}
|
|
|
|
var noise = cam.GetCinemachineComponent<CinemachineBasicMultiChannelPerlin>();
|
|
|
|
if(noise == null && settings != null)
|
|
noise = cam.AddCinemachineComponent<CinemachineBasicMultiChannelPerlin>();
|
|
|
|
noise.m_NoiseProfile = settings;
|
|
}
|
|
|
|
public override string GetDefaultName() => $"CM Set Noise ({settings.name}) for {(useLiveCamera? "Live Camera" : targetCamera?.gameObject.name)}";
|
|
|
|
}
|
|
|
|
}
|
|
|