C# cant find a unity auto generated class

北城余情 提交于 2021-02-16 15:07:31


Okay so I'm learning to use the new InputActions and I've created a C# scripts using


And this is what I got:

// GENERATED AUTOMATICALLY FROM 'Assets/PlayerControls.inputactions'

using System.Collections;
using System.Collections.Generic;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Utilities;

public class PlayerControls : IInputActionCollection
    private InputActionAsset asset;
    public PlayerControls()

But when I try to create an PlayerControls object, I get an error saying

The type or namespace name 'PlayerControls' could not be found (are you missing a using directive or an assembly reference?)

This is the class where I try to reference it:

using System;
using UnityEngine;
using System.Collections;
using UnityStandardAssets.CrossPlatformInput;
using UnityStandardAssets.Utility;
using Random = UnityEngine.Random;
using UnityEngine.InputSystem;

namespace UnityStandardAssets.Characters.FirstPerson
    public class FirstPersonController : MonoBehaviour
        private PlayerControls controls; // ERROR HERE


Wrap the PlayerControls class in a namespace, then add a using statement in your class that points to the namespace where your PlayerControls class lives.


I solved it! It looks like Unity has a compile order. I referenced this: http://answers.unity.com/answers/1274460/view.html and managed to solve it after seeing that "Standard Assets" has priority over other assets