What do I do to fix CS1513: } expected Code: Code (csharp): using System.Collections; using System.Collections.Generic; using UnityEngine; public class HookShot : MonoBehaviour { private const float NORMAL_FOV = 60f; private const float HOOKSHOT_FOV = 100f; private CharacterController characterController; private float cameraVerticalAngle; private float characterVelocityY; private Vector3 characterVelocityMomentum; private Camera playerCamera; private CameraFov cameraFov; private ParticleSystem speedLinesParticleSystem; private State state; private Vector3 hookshotPosition; private float hookshotSize; private enum State { Normal, HookshotThrown, HookshotFlyingPlayer, } private void Awake() { characterController = GetComponent<CharacterController>(); playerCamera = transform.Find("Camera").GetComponent<Camera>(); cameraFov = playerCamera.GetComponent<CameraFov>(); speedLinesParticleSystem = transform.Find("Camera").Find("SpeedLinesParticleSystem").GetComponent<ParticleSystem>(); Cursor.lockState = CursorLockMode.Locked; state = State.Normal; hookshotTransform.gameObject.SetActive(false); } private void ResetGravityEffect() { characterVelocityY = 0f; } private void HandleHookshotStart() { if (TestInputDownHookshot()) { if (Physics.Raycast(playerCamera.transform.position, playerCamera.transform.forward, out RaycastHit raycastHit)) { // Hit something debugHitPointTransform.position = raycastHit.point; hookshotPosition = raycastHit.point; hookshotSize = 0f; hookshotTransform.gameObject.SetActive(true); hookshotTransform.localScale = Vector3.zero; state = State.HookshotThrown; } } } private void HandleHookshotThrow() { hookshotTransform.LookAt(hookshotPosition); float hookshotThrowSpeed = 500f; hookshotSize += hookshotThrowSpeed * Time.deltaTime; hookshotTransform.localScale = new Vector3(1, 1, hookshotSize); if (hookshotSize >= Vector3.Distance(transform.position, hookshotPosition)) { state = State.HookshotFlyingPlayer; cameraFov.SetCameraFov(HOOKSHOT_FOV); speedLinesParticleSystem.Play(); } } private void HandleHookshotMovement() { hookshotTransform.LookAt(hookshotPosition); Vector3 hookshotDir = (hookshotPosition - transform.position).normalized; float hookshotSpeedMin = 10f; float hookshotSpeedMax = 40f; float hookshotSpeed = Mathf.Clamp(Vector3.Distance(transform.position, hookshotPosition), hookshotSpeedMin, hookshotSpeedMax); float hookshotSpeedMultiplier = 5f; // Move Character Controller characterController.Move(hookshotDir * hookshotSpeed * hookshotSpeedMultiplier * Time.deltaTime); float reachedHookshotPositionDistance = 1f; if (Vector3.Distance(transform.position, hookshotPosition) < reachedHookshotPositionDistance) { // Reached Hookshot Position StopHookshot(); } if (TestInputDownHookshot()) { // Cancel Hookshot StopHookshot(); } if (TestInputJump()) { // Cancelled with Jump float momentumExtraSpeed = 7f; characterVelocityMomentum = hookshotDir * hookshotSpeed * momentumExtraSpeed; float jumpSpeed = 40f; characterVelocityMomentum += Vector3.up * jumpSpeed; StopHookshot(); } } private void StopHookshot() { state = State.Normal; ResetGravityEffect(); hookshotTransform.gameObject.SetActive(false); cameraFov.SetCameraFov(NORMAL_FOV); speedLinesParticleSystem.Stop(); } private bool TestInputDownHookshot() { return Input.GetKeyDown(KeyCode.F);
Please use regular "[ CODE ]" tags rather than "[ ICODE ]". Is this your entire file? If this is really all the code, is that you're missing closing brackets for both "TestInputDownHookshot()" and the class itself at the end of the file.
This is all the code, I fixed the ICODE, but what do I do to fix this "(126,44): error CS1513: } expected" Also that is the only compiler error
Code (CSharp): using System.Collections; using System.Collections.Generic; using UnityEngine; public class HookShot : MonoBehaviour { private const float NORMAL_FOV = 60f; private const float HOOKSHOT_FOV = 100f; private CharacterController characterController; private float cameraVerticalAngle; private float characterVelocityY; private Vector3 characterVelocityMomentum; private Camera playerCamera; private CameraFov cameraFov; private ParticleSystem speedLinesParticleSystem; private State state; private Vector3 hookshotPosition; private float hookshotSize; private enum State { Normal, HookshotThrown, HookshotFlyingPlayer, } private void Awake() { characterController = GetComponent<CharacterController>(); playerCamera = transform.Find("Camera").GetComponent<Camera>(); cameraFov = playerCamera.GetComponent<CameraFov>(); speedLinesParticleSystem = transform.Find("Camera").Find("SpeedLinesParticleSystem").GetComponent<ParticleSystem>(); Cursor.lockState = CursorLockMode.Locked; state = State.Normal; hookshotTransform.gameObject.SetActive(false); } private void ResetGravityEffect() { characterVelocityY = 0f; } private void HandleHookshotStart() { if (TestInputDownHookshot()) { if (Physics.Raycast(playerCamera.transform.position, playerCamera.transform.forward, out RaycastHit raycastHit)) { // Hit something debugHitPointTransform.position = raycastHit.point; hookshotPosition = raycastHit.point; hookshotSize = 0f; hookshotTransform.gameObject.SetActive(true); hookshotTransform.localScale = Vector3.zero; state = State.HookshotThrown; } } } private void HandleHookshotThrow() { hookshotTransform.LookAt(hookshotPosition); float hookshotThrowSpeed = 500f; hookshotSize += hookshotThrowSpeed * Time.deltaTime; hookshotTransform.localScale = new Vector3(1, 1, hookshotSize); if (hookshotSize >= Vector3.Distance(transform.position, hookshotPosition)) { state = State.HookshotFlyingPlayer; cameraFov.SetCameraFov(HOOKSHOT_FOV); speedLinesParticleSystem.Play(); } } private void HandleHookshotMovement() { hookshotTransform.LookAt(hookshotPosition); Vector3 hookshotDir = (hookshotPosition - transform.position).normalized; float hookshotSpeedMin = 10f; float hookshotSpeedMax = 40f; float hookshotSpeed = Mathf.Clamp(Vector3.Distance(transform.position, hookshotPosition), hookshotSpeedMin, hookshotSpeedMax); float hookshotSpeedMultiplier = 5f; // Move Character Controller characterController.Move(hookshotDir * hookshotSpeed * hookshotSpeedMultiplier * Time.deltaTime); float reachedHookshotPositionDistance = 1f; if (Vector3.Distance(transform.position, hookshotPosition) < reachedHookshotPositionDistance) { // Reached Hookshot Position StopHookshot(); } if (TestInputDownHookshot()) { // Cancel Hookshot StopHookshot(); } if (TestInputJump()) { // Cancelled with Jump float momentumExtraSpeed = 7f; characterVelocityMomentum = hookshotDir * hookshotSpeed * momentumExtraSpeed; float jumpSpeed = 40f; characterVelocityMomentum += Vector3.up * jumpSpeed; StopHookshot(); } } private void StopHookshot() { state = State.Normal; ResetGravityEffect(); hookshotTransform.gameObject.SetActive(false); cameraFov.SetCameraFov(NORMAL_FOV); speedLinesParticleSystem.Stop(); } private bool TestInputDownHookshot() { return Input.GetKeyDown(KeyCode.F); } }
This seems dubious. To me it looks chopped off midway through the TestInputDownHookshot() function. I suggest you return to wherever you found this and make sure you got it all.