public void DoSetup() { //this.transform.position = Vector3.zero; if (this.gameObject.GetComponent <BoxCollider2D>() == null && this.gameObject.GetComponent <CircleCollider2D>() == null) { this.gameObject.AddComponent <CircleCollider2D>(); this.gameObject.GetComponent <CircleCollider2D>().radius = 75; this.gameObject.GetComponent <CircleCollider2D>().isTrigger = true; Debug.Log("Already has collider"); } //get player and main camera mainCamera = GameObject.Find("CM_Main").GetComponent <Cinemachine.CinemachineVirtualCamera>(); player = GameObject.Find("Player").GetComponent <PlayerInput.TurntableController>(); GameObject VCam = Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/Cameras/CM_Puzzle")); VCam.name = "CM_" + this.name; VCam.transform.parent = GameObject.Find("Camera Rig").transform; setPieceCamera = VCam.GetComponent <Cinemachine.CinemachineVirtualCamera>(); setPieceCamera.GetCinemachineComponent <Cinemachine.CinemachineTransposer>().m_FollowOffset = new Vector3(0, 0, -200); setPieceCamera.AddCinemachineComponent <Cinemachine.CinemachineBasicMultiChannelPerlin>(); setPieceCamera.GetCinemachineComponent <Cinemachine.CinemachineBasicMultiChannelPerlin>().m_AmplitudeGain = 0.2f; setPieceCamera.GetCinemachineComponent <Cinemachine.CinemachineBasicMultiChannelPerlin>().m_FrequencyGain = 0.2f; #if UNITY_EDITOR setPieceCamera.GetCinemachineComponent <Cinemachine.CinemachineBasicMultiChannelPerlin>().m_NoiseProfile = AssetDatabase.LoadAssetAtPath <Cinemachine.NoiseSettings>("Packages/com.Unity.Cinemachine/Presets/Noise/Handheld_tele_mild.asset"); #endif foreach (Transform child in transform) { if (child.gameObject.name == "Center") { centerExists = true; } } if (centerExists == false) { center = new GameObject(); center.name = "Center"; center.transform.parent = this.transform; center.transform.position = Vector3.zero; setPieceCamera.Follow = center.transform; setPieceCamera.LookAt = center.transform; } }
private int LocateExistingRigs(string[] rigNames, bool forceOrbital) { this.mOrbitals = new CinemachineOrbitalTransposer[rigNames.Length]; this.m_Rigs = new CinemachineVirtualCamera[rigNames.Length]; int num = 0; foreach (object obj in base.transform) { Transform transform = (Transform)obj; CinemachineVirtualCamera component = transform.GetComponent <CinemachineVirtualCamera>(); if (component != null) { GameObject gameObject = transform.gameObject; for (int i = 0; i < rigNames.Length; i++) { if (this.mOrbitals[i] == null && gameObject.name == rigNames[i]) { this.mOrbitals[i] = component.GetCinemachineComponent <CinemachineOrbitalTransposer>(); if (this.mOrbitals[i] == null && forceOrbital) { this.mOrbitals[i] = component.AddCinemachineComponent <CinemachineOrbitalTransposer>(); } if (this.mOrbitals[i] != null) { this.mOrbitals[i].m_HeadingIsSlave = true; if (i == 0) { this.mOrbitals[i].HeadingUpdater = ((CinemachineOrbitalTransposer orbital, float deltaTime, Vector3 up) => orbital.UpdateHeading(deltaTime, up, ref this.m_XAxis)); } this.m_Rigs[i] = component; num++; } } } } } return(num); }
private void CreateRigs(CinemachineVirtualCamera[] copyFrom) { // Invalidate the cache m_Rigs = null; mOribitals = null; string[] rigNames = RigNames; float[] softCenterDefaultsV = new float[] { 0.5f, 0.55f, 0.6f }; for (int i = 0; i < rigNames.Length; ++i) { CinemachineVirtualCamera src = null; if (copyFrom != null && copyFrom.Length > i) { src = copyFrom[i]; } CinemachineVirtualCamera rig = null; if (CreateRigOverride != null) { rig = CreateRigOverride(this, rigNames[i], src); } else { // If there is an existing rig with this name, delete it List <Transform> list = new List <Transform>(); foreach (Transform child in transform) { if (child.GetComponent <CinemachineVirtualCamera>() != null && child.gameObject.name == rigNames[i]) { list.Add(child); } } foreach (Transform child in list) { DestroyImmediate(child.gameObject); } // Create a new rig with default components GameObject go = new GameObject(rigNames[i]); go.transform.parent = transform; rig = go.AddComponent <CinemachineVirtualCamera>(); if (src != null) { ReflectionHelpers.CopyFields(src, rig); } else { go = rig.GetComponentOwner().gameObject; go.AddComponent <CinemachineOrbitalTransposer>(); go.AddComponent <CinemachineComposer>(); } } // Set up the defaults rig.InvalidateComponentPipeline(); CinemachineOrbitalTransposer orbital = rig.GetCinemachineComponent <CinemachineOrbitalTransposer>(); if (orbital == null) { orbital = rig.AddCinemachineComponent <CinemachineOrbitalTransposer>(); // should not happen } if (src == null) { // Only set defaults if not copying orbital.m_Radius = DefaultRadius[i]; orbital.m_HeightOffset = DefaultHeight[i]; CinemachineComposer composer = rig.GetCinemachineComponent <CinemachineComposer>(); if (composer != null) { composer.m_HorizontalDamping = composer.m_VerticalDamping = 0; composer.m_ScreenX = 0.5f; composer.m_ScreenY = softCenterDefaultsV[i]; composer.m_DeadZoneWidth = composer.m_DeadZoneHeight = 0; composer.m_SoftZoneWidth = composer.m_SoftZoneHeight = 0.8f; composer.m_BiasX = composer.m_BiasY = 0; } } } }
private int LocateExistingRigs(string[] rigNames, bool forceOrbital) { mOrbitals = new CinemachineOrbitalTransposer[rigNames.Length]; m_Rigs = new CinemachineVirtualCamera[rigNames.Length]; int rigsFound = 0; foreach (Transform child in transform) { CinemachineVirtualCamera vcam = child.GetComponent <CinemachineVirtualCamera>(); if (vcam != null) { GameObject go = child.gameObject; for (int i = 0; i < rigNames.Length; ++i) { if (mOrbitals[i] == null && go.name == rigNames[i]) { // Must have an orbital transposer or it's no good mOrbitals[i] = vcam.GetCinemachineComponent <CinemachineOrbitalTransposer>(); if (mOrbitals[i] == null && forceOrbital) { mOrbitals[i] = vcam.AddCinemachineComponent <CinemachineOrbitalTransposer>(); } if (mOrbitals[i] != null) { mOrbitals[i].m_HeadingIsSlave = true; if (i == 1) { mOrbitals[i].HeadingUpdater = (CinemachineOrbitalTransposer orbital, float deltaTime, Vector3 up) => { return(orbital.UpdateHeading(deltaTime, up, ref m_XAxis)); } } ; m_Rigs[i] = vcam; m_Rigs[i].m_StandbyUpdate = m_StandbyUpdate; ++rigsFound; } } } } } return(rigsFound); } void PushSettingsToRigs() { UpdateRigCache(); for (int i = 0; i < m_Rigs.Length; ++i) { if (m_Rigs[i] == null) { continue; } if (m_CommonLens) { m_Rigs[i].m_Lens = m_Lens; } // If we just deserialized from a legacy version, // pull the orbits and targets from the rigs if (mUseLegacyRigDefinitions) { mUseLegacyRigDefinitions = false; m_Orbits[i].m_Height = mOrbitals[i].m_FollowOffset.y; m_Orbits[i].m_Radius = -mOrbitals[i].m_FollowOffset.z; if (m_Rigs[i].Follow != null) { Follow = m_Rigs[i].Follow; } } m_Rigs[i].Follow = null; m_Rigs[i].m_StandbyUpdate = m_StandbyUpdate; if (!PreviousStateIsValid) { m_Rigs[i].PreviousStateIsValid = false; m_Rigs[i].transform.position = transform.position; m_Rigs[i].transform.rotation = transform.rotation; } // Hide the rigs from prying eyes if (CinemachineCore.sShowHiddenObjects) { m_Rigs[i].gameObject.hideFlags &= ~(HideFlags.HideInHierarchy | HideFlags.HideInInspector); } else { m_Rigs[i].gameObject.hideFlags |= (HideFlags.HideInHierarchy | HideFlags.HideInInspector); } mOrbitals[i].m_FollowOffset = GetLocalPositionForCameraFromInput(GetYAxisValue()); mOrbitals[i].m_BindingMode = m_BindingMode; mOrbitals[i].m_Heading = m_Heading; mOrbitals[i].m_XAxis = m_XAxis; mOrbitals[i].m_RecenterToTargetHeading.m_enabled = (i == 1) ? m_RecenterToTargetHeading.m_enabled : false; mOrbitals[i].m_RecenterToTargetHeading.m_WaitTime = m_RecenterToTargetHeading.m_WaitTime; mOrbitals[i].m_RecenterToTargetHeading.m_RecenteringTime = m_RecenterToTargetHeading.m_RecenteringTime; // Hack to get SimpleFollow with heterogeneous dampings to work if (m_BindingMode == CinemachineTransposer.BindingMode.SimpleFollowWithWorldUp) { m_Rigs[i].SetStateRawPosition(State.RawPosition); } } }