using UnityEngine; public class TitanMovingScript : MonoBehaviour { public float movementSpeed = 5.0f; public float lookSpeed = 2.0f; public float verticalLookLimit = 80.0f; public Transform tCamTransform; private bool canControlTitan = false; private Quaternion initialTcamRotation; private void Start() { Renderer playerModelRenderer = GetComponent(); if (playerModelRenderer != null) playerModelRenderer.enabled = false; Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false; if (tCamTransform != null) initialTcamRotation = tCamTransform.localRotation; } private void Update() { if (canControlTitan) { float horizontalInput = Input.GetAxis("Horizontal"); float verticalInput = Input.GetAxis("Vertical"); Vector3 movementDirection = new Vector3(horizontalInput, 0.0f, verticalInput); movementDirection = transform.TransformDirection(movementDirection); movementDirection.y = 0.0f; movementDirection.Normalize(); transform.position += movementDirection * movementSpeed * Time.deltaTime; float mouseX = Input.GetAxis("Mouse X") * lookSpeed; float mouseY = Input.GetAxis("Mouse Y") * lookSpeed; float desiredRotationX = transform.localRotation.eulerAngles.y + mouseX; transform.localRotation = Quaternion.Euler(0f, desiredRotationX, 0f); float desiredRotationY = tCamTransform.localRotation.eulerAngles.x - mouseY; desiredRotationY = Mathf.Clamp(desiredRotationY, -verticalLookLimit, verticalLookLimit); tCamTransform.localRotation = Quaternion.Euler(desiredRotationY, initialTcamRotation.eulerAngles.y, 0f); } if (Input.GetKeyDown(KeyCode.F) && !GetComponent().IsPlayingAnimation()) { StartCoroutine(StartControlTimer()); } } private System.Collections.IEnumerator StartControlTimer() { yield return new WaitForSeconds(10.0f); canControlTitan = true; Renderer playerModelRenderer = GetComponent(); if (playerModelRenderer != null) playerModelRenderer.enabled = true; } }