IEnumerator Cinematic() { GameObject playerMesh = m_Player.transform.Find("Teto_GameReady").gameObject; Renderer[] renders = playerMesh.GetComponentsInChildren <Renderer>(); m_PlayerCamera.enabled = false; bool jump = false; float maxDistance = m_vPlayerInitialPos.sqrMagnitude + m_Meteor.transform.position.sqrMagnitude; foreach (Renderer render in renders) { render.enabled = false; } m_Player.LockTotalMovement(true); Tweener tw = m_Meteor.transform.DOMove(m_vPlayerInitialPos, duration).SetEase(Ease.InFlash); tw.OnStart(() => { SoundManager.Instance.SetGameParameter(GameParameters.Distance, 1); SoundManager.Instance.PlayEvent(SoundEvents.Play_Meteor, m_Meteor); }).OnComplete(() => { GameObject obj = Instantiate(m_MeteorExplosionPrefab); obj.transform.position = m_vPlayerInitialPos; SoundManager.Instance.SetGameParameter(GameParameters.Distance, 0); SoundManager.Instance.PlayEvent(SoundEvents.Stop_Meteor, m_Meteor); Destroy(obj, 5f); }).OnUpdate(() => { Camera.main.transform.LookAt(m_Meteor.transform); float distance = m_vPlayerInitialPos.sqrMagnitude + m_Meteor.transform.position.sqrMagnitude; SoundManager.Instance.SetGameParameter(GameParameters.Distance, Mathf.InverseLerp(0, maxDistance, distance)); }); yield return(tw.WaitForCompletion()); Destroy(m_Meteor); Camera.main.transform.DOLocalRotate(Vector3.zero, 1f); yield return(new WaitForSeconds(3f)); yield return(null); Instantiate(m_TetoPuffParticle).transform.position = m_Player.transform.position + Vector3.up; m_PlayerCamera.enabled = true; foreach (Renderer render in renders) { render.enabled = true; } m_Player.LockTotalMovement(false); }
// Update is called once per frame void Update() { if (m_bFollowing) { if (m_pcTarget != null) { if (Input.GetKeyDown(KeyCode.Joystick1Button9) && !m_bLockRotation) { StartCoroutine(RotateCameraToBack()); } Clipping(); Follow(); } #if CHEATCODE if (Input.GetKeyDown(KeyCode.Backspace) || Input.GetKeyDown(KeyCode.Joystick1Button6)) { if (m_pcTarget) { m_pcTarget.LockTotalMovement(true); } m_bFollowing = false; } #endif } else { #if CHEATCODE if (Input.GetKeyDown(KeyCode.Backspace) || Input.GetKeyDown(KeyCode.Joystick1Button6)) { m_fRotationSpeed = 5f; if (m_pcTarget) { m_pcTarget.LockTotalMovement(false); } m_bFollowing = true; } Move(); #endif } }