Errors With MouseLook

I have been trying to write a good MouseLook.cs script for a Main Camera attached to a Third Person Character, but I’ve run into some compatibility issues… I’ll place the script below, and can you guys give me help on what is wrong? Thanks!

using System;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;

namespace UnityStandardAssets.Cameras.Scripts.MouseLook.cs;
{
    public class MouseLook : MonoBehaviour {
        {

public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2
public RotationAxes axes = RotationAxes.MouseXAndY;
public float sensitivityX = 15F;
public float sensitivityY = 15F;
   
public float minimumX = -360F;
public float maximumX = 360F;

public float minimumY = -60F;
public float maximumY = 60F;

float rotationX = 0F;
float rotationY = 0F;

Quaternion originalRotation;

void Update ()
{
    if (axes == RotationAxes.MouseXAndY)
   
        // Read the mouse input axis
        rotationX += Input.GetAxis("Mouse X") * sensitivityX;
        rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
       
        rotationX = ClampAngle (rotationX, minimumX, maximumX);
        rotationY = ClampAngle (rotationY, minimumY, maximumY);
       
        Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
        Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, -Vector3.right);
       
        transform.localRotation = originalRotation * xQuaternion * yQuaternion;

    else if (axes == RotationAxes.MouseX)
    {
        rotationX += Input.GetAxis("Mouse X") * sensitivityX;
        rotationX = ClampAngle (rotationX, minimumX, maximumX);
       
        Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
        transform.localRotation = originalRotation * xQuaternion;
   
    else
    {
        rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
        rotationY = ClampAngle (rotationY, minimumY, maximumY);
       
        Quaternion yQuaternion = Quaternion.AngleAxis (-rotationY, Vector3.right);
        transform.localRotation = originalRotation * yQuaternion;
        {


void Start ()
{
    // Make the rigid body not change rotation
    if (rigidbody)
        rigidbody.freezeRotation = true;
    originalRotation = transform.localRotation;
                    {
           
public static float ClampAngle (float angle, float min, float max)
    if (angle < -360F)
        angle += 360F;
    if (angle > 360F)
        angle -= 360F;
    return Mathf.Clamp (angle, min, max);
            {   
{

-ShaZam

P.S. Thx for the help in advance.

If you could write down, what’s working, and what doesn’t, that would be helpful, because now it’s like searching for a needle in the hay :slight_smile:

Some of the things it says is,
No MonoBehavior Scripts in the file, or their names do not match the file name.

Assets/Standard Assets/Cameras/Scripts/MouseLook.cs(5,59): error CS1003: Syntax error, `.’ expected

Assets/Standard Assets/Cameras/Scripts/MouseLook.cs(6,1): error CS8032: Internal compiler error during parsing, Run with -v for details


Please Help!

-ShaZam!Unity

first why all brackets are {{ instead of {}
like you miss starting { of clampangle
and } of whole class

There’s a lot of syntax errors in this script. Are you just cutting and pasting and hoping for the best?

  • You have extra { characters everywhere.
  • A lot of your code blocks don’t have matching { } pairs.
  • Some code blocks you begin with { and then don’t end with }
  • You have functions declared in other functions which are declared in other functions.
  • Other code blocks you end with { just randomly.

You might want to take a step back and work on your C# skills first.

Can you guys help me change it, and insert the code in a reply? That would be very helpful.
Thx!

How do you guys think this is, :::

using System;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;

namespace UnityStandardAssets.Cameras.Scripts.MouseLook.cs;
{
    public class MouseLook : MonoBehaviour
    {
        /// MouseLook rotates the transform based on the mouse delta. /// Minimum and Maximum values can be used to constrain the possible rotation

/// To make an FPS style character: /// - Create a capsule. /// - Add a rigid body to the capsule /// - Add the MouseLook script to the capsule. /// -> Set the mouse look to use LookX. (You want to only turn character but not tilt it) /// - Add FPSWalker script to the capsule

/// - Create a camera. Make the camera a child of the capsule. Reset it's transform. /// - Add a MouseLook script to the camera. /// -> Set the mouse look to use LookY. (You want the camera to tilt up and down like a head. The character already turns.) [AddComponentMenu("Camera-Control/Mouse Look")] public class MouseLook : MonoBehaviour {

public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2
public RotationAxes axes = RotationAxes.MouseXAndY;
public float sensitivityX = 15F;
public float sensitivityY = 15F;
   
public float minimumX = -360F;
public float maximumX = 360F;

public float minimumY = -60F;
public float maximumY = 60F;

float rotationX = 0F;
float rotationY = 0F;

Quaternion originalRotation;

void Update ()
{
    if (axes == RotationAxes.MouseXAndY)
   
        // Read the mouse input axis
        rotationX += Input.GetAxis("Mouse X") * sensitivityX;
        rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
       
        rotationX = ClampAngle (rotationX, minimumX, maximumX);
        rotationY = ClampAngle (rotationY, minimumY, maximumY);
       
        Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
        Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, -Vector3.right);
       
        transform.localRotation = originalRotation * xQuaternion * yQuaternion;

    else if (axes == RotationAxes.MouseX)
    {
        rotationX += Input.GetAxis("Mouse X") * sensitivityX;
        rotationX = ClampAngle (rotationX, minimumX, maximumX);
       
        Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
        transform.localRotation = originalRotation * xQuaternion;
   
    else
    {
        rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
        rotationY = ClampAngle (rotationY, minimumY, maximumY);
       
        Quaternion yQuaternion = Quaternion.AngleAxis (-rotationY, Vector3.right);
        transform.localRotation = originalRotation * yQuaternion;
        {


void Start ()
{
    // Make the rigid body not change rotation
    if (rigidbody)
        rigidbody.freezeRotation = true;
    originalRotation = transform.localRotation;
                    {
           
public static float ClampAngle (float angle, float min, float max)
    if (angle < -360F)
        angle += 360F;
    if (angle > 360F)
        angle -= 360F;
    return Mathf.Clamp (angle, min, max);
        }
    }
}

? Please let me know. Thanks!

-ShaZam!

Each { needs to have its own closing bracket }
So function update has its opening and closing bracket like this

void Update()
{
   Some code to run
   If (somestatments)
   {
       Code
   } //here iam closing bracket of if statement
}// here iam closing bracket of update function

I wont solve your code as this is really BASIC of programming and just givr you example how to do it so you know

reread what @GroZZleR posted. You still have alot of basic syntax mistakes…

Dear Phoda and LeftyRighty,

Soo… Thats a no on the fixes help? I sort of get what you are saying, Phoda, but I need some other help on fixing the errors. Seeing that I’m only a few weeks into C#, I understand if you are saying that there are ‘alot’ of basic mistakes. Maybe if you guys show me HOW to fix those mistakes, I may be able to continue trying to do my best, while avoiding making the mistakes I did before.

Thx for help, and your time with the advice. As you can see, I need a bit more though. Thanks!


-ShaZam!

I gave you the clear example in my last post how you should close brackets. Find each opening bracket then her closing bracket. If there is none then you add it.
Few weeks? You arebquite slow learner then.

I know, the only thing I am concerned about, is putting the end ‘{,}’ in the wrong place… I just need to know where… I hope you can give me advice.


-ShaZam!

Like I said earlier - take a step back and focus on your fundamentals. You’re clearly in over your head here.

Here’s a great tutorial about program structure in C#.

Thx. I was just hoping someone could help me and try to put them in the right place for me. Or just sorta fix or edit the code so it actually works. Thanks, though.


-ShaZam!

P.S. ,
I’ll watch the vid.

If we did that, you’d just be back tomorrow with the same issue in another script. You have to learn how to do it on your own.

I will. It’s called learning from your mistakes. I can observe the newly updated script, see what I did wrong, and know what to do in the future. I honestly don’t want to get into an online argument, but I just need help on correcting it. Thanks.


-ShaZam!