/// <summary>Create a default pipeline container.</summary> private Transform CreatePipeline(CinemachineVirtualCamera copyFrom) { CinemachineComponentBase[] components = null; if (copyFrom != null) { copyFrom.InvalidateComponentPipeline(); // make sure it's up to date components = copyFrom.GetComponentPipeline(); } Transform newPipeline = null; if (CreatePipelineOverride != null) { newPipeline = CreatePipelineOverride(this, PipelineName, components); } else { var go = new GameObject(PipelineName); go.transform.parent = transform; go.AddComponent <CinemachinePipeline>(); newPipeline = go.transform; // If copying, transfer the components if (components != null) { foreach (Component c in components) { ReflectionHelpers.CopyFields(c, go.AddComponent(c.GetType())); } } } PreviousStateIsValid = false; return(newPipeline); }
private Transform CreatePipeline(CinemachineVirtualCamera copyFrom) { CinemachineComponentBase[] array = null; if (copyFrom != null) { copyFrom.InvalidateComponentPipeline(); array = copyFrom.GetComponentPipeline(); } Transform result; if (CinemachineVirtualCamera.CreatePipelineOverride != null) { result = CinemachineVirtualCamera.CreatePipelineOverride(this, "cm", array); } else { GameObject gameObject = new GameObject("cm"); gameObject.transform.parent = base.transform; gameObject.AddComponent <CinemachinePipeline>(); result = gameObject.transform; if (array != null) { foreach (CinemachineComponentBase component in array) { ReflectionHelpers.CopyFields(component, gameObject.AddComponent(component.GetType()), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); } } } base.PreviousStateIsValid = false; return(result); }
/// <summary>Create a default pipeline container. /// Note: copyFrom only supported in Editor, not build</summary> private Transform CreatePipeline(CinemachineVirtualCamera copyFrom) { CinemachineComponentBase[] components = null; if (copyFrom != null) { copyFrom.InvalidateComponentPipeline(); // make sure it's up to date components = copyFrom.GetComponentPipeline(); } Transform newPipeline = null; if (CreatePipelineOverride != null) { newPipeline = CreatePipelineOverride(this, PipelineName, components); } else { GameObject go = new GameObject(PipelineName); go.transform.parent = transform; go.AddComponent <CinemachinePipeline>(); newPipeline = go.transform; } PreviousStateIsValid = false; return(newPipeline); }
static int GetComponentPipeline(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); Cinemachine.CinemachineVirtualCamera obj = (Cinemachine.CinemachineVirtualCamera)ToLua.CheckObject <Cinemachine.CinemachineVirtualCamera>(L, 1); Cinemachine.CinemachineComponentBase[] o = obj.GetComponentPipeline(); ToLua.Push(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
/// <summary> /// Create a default pipeline container. /// </summary> private Transform CreatePipeline(CinemachineVirtualCamera copyFrom) { ICinemachineComponent[] components = null; if (copyFrom != null) { copyFrom.InvalidateComponentPipeline(); // make sure it's up to date components = copyFrom.GetComponentPipeline(); } // Do the same thing with undo-support if (CreatePipelineOverride != null) { m_ComponentOwner = CreatePipelineOverride(this, PipelineName, components); } else { // Delete all existing pipeline childen List <Transform> list = new List <Transform>(); foreach (Transform child in transform) { if (child.GetComponent <CinemachinePipeline>() != null) { list.Add(child); } } foreach (Transform child in list) { DestroyImmediate(child.gameObject); } // Create a new pipeline GameObject go = new GameObject(PipelineName); go.transform.parent = transform; go.AddComponent <CinemachinePipeline>(); m_ComponentOwner = go.transform; // If copying, transfer the components if (components != null) { foreach (Component c in components) { ReflectionHelpers.CopyFields(c, go.AddComponent(c.GetType())); } } } return(m_ComponentOwner); }
protected override void ConnectToVcam(bool connect) { base.ConnectToVcam(connect); CinemachineVirtualCamera vcam = VirtualCamera as CinemachineVirtualCamera; if (vcam == null) { return; } var components = vcam.GetComponentPipeline(); foreach (var component in components) { if (component.BodyAppliesAfterAim) { var extraState = GetExtraState <VcamExtraState>(vcam); extraState.applyAfterAim = true; break; } } }