- Home /
I am getting this error, why?
The error reads - FirstPersonController.cs(5,14): error CS0101: The namespace global::' already contains a definition for
FirstPersonController'
I only got this error after adding the crouching section at the bottom.
Here is my code -
using UnityEngine;
using System.Collections;
[RequireComponent (typeof(CharacterController))]
public class FirstPersonController {
public float movementSpeed = 5.0f;
public float mouseSensitivity = 5.0f;
public float jumpSpeed = 20.0f;
float verticalRotation = 0;
public float upDownRange = 60.0f;
float verticalVelocity = 0;
CharacterController characterController;
// Use this for initialization
void Start () {
Screen.lockCursor = true;
characterController = GetComponent<CharacterController>();
}
// Update is called once per frame
void Update () {
// Rotation
float rotLeftRight = Input.GetAxis("Mouse X") * mouseSensitivity;
transform.Rotate(0, rotLeftRight, 0);
verticalRotation -= Input.GetAxis("Mouse Y") * mouseSensitivity;
verticalRotation = Mathf.Clamp(verticalRotation, -upDownRange, upDownRange);
Camera.main.transform.localRotation = Quaternion.Euler(verticalRotation, 0, 0);
// Movement
float forwardSpeed = Input.GetAxis("Vertical") * movementSpeed;
float sideSpeed = Input.GetAxis("Horizontal") * movementSpeed;
verticalVelocity += Physics.gravity.y * Time.deltaTime;
if( characterController.isGrounded && Input.GetButton("Jump") ) {
verticalVelocity = jumpSpeed;
}
Vector3 speed = new Vector3( sideSpeed, verticalVelocity, forwardSpeed );
speed = transform.rotation * speed;
characterController.Move( speed * Time.deltaTime );
// Crouching
if( characterController.isGrounded && Input.GetButton("Left Shift") || Input.GetKey("right shift")){
transform.Translate(Vector3.down * movementSpeed * Time.deltaTime);
}
}
Answer by tanoshimi · Dec 27, 2014 at 08:21 AM
Did you, perchance, create a copy of the FirstPersonController.cs script before trying to add that crouching section? You can't have two scripts in the same project that try to define a class with the same name. In other words, you need to check that you haven't got two scripts anywhere that both begin with public class FirstPersonController {
Answer by Fornoreason1000 · Dec 27, 2014 at 08:23 AM
your getting that error because your class names clashes with the other FirstPersonController script in the CharacterController package which you probably imported. in other words there is two FirstPersonController scripts in your game and the compiler doesn't know which one is which.
you can either rename your script or delete the original FirstPersonController script from Standard Assets
Your answer
Follow this Question
Related Questions
Input button is not setup?? 2 Answers
Help ThirdPersonController Script 0 Answers
Error in code I cannot fix 1 Answer
Raycast Shoot Error 1 Answer
How to Fix "NullReferenceException"? Aim Down Sights Script 1 Answer