Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
1
Question by Renoki · Dec 13, 2013 at 03:52 AM · animatoranimator controllerobject-reference-errornon-static

An object reference is required to access non-static member

Hey all, I know this question pops up a lot, but I'm fairly new to Unity and my issue is a bit odd. I've been following the animation section of the stealth tutorial for use for my own project. The Animation controller itself is set up properly, but I'm getting errors in the script for some reason. Here's the code:

 using UnityEngine;
 using System.Collections;
 
 public class EdelController : MonoBehaviour 
 {
     public int locomotionState;
     public int speedFloat;
 
     public float turnSmoothing = 15f;
     public float speedDampTime = 0.1f;
 
     void Awake () 
     {
         locomotionState = Animator.StringToHash("Base Layer.Locomotion");
         speedFloat = Animator.StringToHash("Speed");
 
         Animator = GetComponent<Animator>();
         Animator.SetLayerWeight(1, 1f);
     }
 
     void FixedUpdate () 
     {
         float h = Input.GetAxis("Horizontal");
         float v = Input.GetAxis("Vertical");
 
         MovementManagement(h, v);
         }
 
     void MovementManagement(float horizontal, float vertical)
     {
         if (horizontal != 0f || vertical != 0f)
         {
             Rotating(horizontal, vertical);
             Animator.SetFloat(speedFloat, 5.5f, speedDampTime, Time.deltaTime);
         }
         else
         {
             Animator.SetFloat(speedFloat, 0f);
         }
     }
 
     void Rotating(float horizontal, float vertical)
     {
         Vector3 targetDirection = new Vector3(horizontal, 0f, vertical);
         Quaternion targetRotation = Quaternion.LookRotation(targetDirection, Vector3.up);
         Quaternion newRotation = Quaternion.Lerp(rigidbody.rotation, targetRotation, turnSmoothing * Time.deltaTime);
         rigidbody.MoveRotation(newRotation);
     }
 }

According to the errors such as:

Assets/Scripts/EdelController.cs(18,26): error CS0120: An object reference is required to access non-static member UnityEngine.Animator.SetLayerWeight(int, float)' Assets/Scripts/EdelController.cs(82,34): error CS0120: An object reference is required to access non-static member UnityEngine.Animator.SetFloat(string, float)'

Assets/Scripts/EdelController.cs(86,34): error CS0120: An object reference is required to access non-static member `UnityEngine.Animator.SetFloat(string, float)'

The Culprit is in the MovementManagement function.

please help..

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

2 Replies

· Add your reply
  • Sort: 
avatar image
8
Best Answer

Answer by rutter · Dec 13, 2013 at 04:03 AM

Animator is the name of a class. You might choose a different variable name, even if it's only different by virtue of capitalization.

 //call "DoSomething" on an object of type Animator
 Animator animator = GetComponent<Animator>();
 animator.DoSomething();

 //call a static function "DoSomethingElse" on the Animator class
 Animator.DoSomethingElse();

Remember the difference between classes and objects? Classes are analogous to blueprints, objects are analogous to buildings built from those blueprints.

An instance member owned by an object, and is tracked per-object. Most variables are instance variables.

A static member is owned by the class, and is shared by all instances of the class. It's sometimes useful for data that should be shared throughout your game, such as a count or flag that persists between scenes. It's also useful for utility functions that don't necessarily reference any particular object.

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Renoki · Dec 13, 2013 at 04:11 AM 0
Share

whoo I am surely dense! Thanks a lot for this!

avatar image
1

Answer by KellyThomas · Dec 13, 2013 at 03:59 AM

The error is caused by an attempt to access the Class, rather than an instance. As a result it tries to find a static property to revolve your request.

The solution is to change your code on lines 17-18 as follows:

 Animator animator = GetComponent<Animator>(); //line 17
 animator.SetLayerWeight(1, 1f);               //line 18

You have similar issues in your MovementManagement() method.

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Renoki · Dec 13, 2013 at 04:12 AM 0
Share

Thanks! you helped big time!

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

19 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How to change speed of the specific state in animator 1 Answer

Stop all animators 0 Answers

Hello! I have some issues with animations. 1 Answer

How do I check to see if the animator controller is working or now 1 Answer

Set All bool parameters in animator to false 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges