• 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
0
Question by dylan760 · Jun 28, 2017 at 04:26 PM · c#unity 5scripting problemvariablesanimations

2 animations keep switching at a rapid pace

I am working on a personal prototype for a open world game and i am currently trying to make my first enemy ai. This is the way i have it set up:

  • The first second it spawns it records its spawning location into a vector3 var known as lastpos.

  • It stays at that location with an idle animation playing (moving = 0)

  • There is a sphere trigger around the enemy so when the player collides with the sphere it detects the player, it starts playing the running animation and starts chasing the playing (moving = 2)

  • when the player is not longer colliding with the sphere it walks back to lastpos while playing a walking animation (moving = 1)

  • when it goes back to its lastpos and the animation will go back to being idle.....or it should....

the problem i have with the last dot point is that my "moving" variable which is written to control the animations of the model keeps switching between 0 and 1 (or in other words the animations keep switching between idle and walking) and i have no idea whats going on. Its my first time designing an ai from scratch, if anyone could help me that would be great!

 void Update () {
         playerVector = player.transform.position;
         gruntAnim.SetInteger ("moving", moving);
         gruntAnim.SetInteger ("battle", inBattle);
         moving = 0;
         closeToPlayer = playerRange.GetComponent<combatDistanceToPlayer> ().enemyClose;
         inBattle = 0;
 
         if (playerDetected == true) {
             nav.destination = player.transform.position;
             inBattle = 1;
             moving = 2;
 
             if (closeToPlayer == true) {
                 moving = 0;
                 gruntAnim.SetBool ("attackablePlayer", true);
             } else if (closeToPlayer == false) {
                 moving = 2;
                 gruntAnim.SetBool ("attackablePlayer", false);
             }
             //is the player currently detected and if he isnt then is the goblin back at the last position?
         } else if (playerDetected == false & this.gameObject.transform.position != lastPos) {
             nav.destination = lastPos;
             inBattle = 0;
             moving = 1;
             }
         if (this.gameObject.transform.position == lastPos) {
             moving = 0;
         }
     }
Comment
Add comment · Show 2
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 dylan760 · Jun 29, 2017 at 07:00 AM 0
Share

actually i put in the debug.log command on this line of code

 if (this.gameObject.transform.position == lastPos) {
              moving = 0;
              Debug.log("Goblin is back");
 }

and nothing appears on the console. my prototype reacts as if that type of code is not there

avatar image dylan760 · Jun 29, 2017 at 12:17 PM 0
Share

okay its now been recognised but moving is still flicking between 0 and 1

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by webcam · Jun 28, 2017 at 04:48 PM

Not sure if this is the problem but it could because you are setting moving to 0 here

 if (this.gameObject.transform.position == lastPos) {
     moving = 0;
 }

Try moving that statement into this check, because you only need to do this if the player is not detected

 else if (playerDetected == false & this.gameObject.transform.position != lastPos) 
 {
      nav.destination = lastPos;
      inBattle = 0;
      moving = 1;
      if (this.gameObject.transform.position == lastPos) {
          moving = 0;
      }
 }


Comment
Add comment · Show 3 · 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 dylan760 · Jun 28, 2017 at 05:00 PM 0
Share

it still Does it unfortunately :(

avatar image dylan760 · Jun 29, 2017 at 06:55 AM 0
Share

actually i put in the debug.log command on that line of code and nothing appears on the console. my prototype reacts as if that type of code is not there

avatar image dylan760 · Jun 29, 2017 at 12:16 PM 0
Share

okay its now been recognised but its still flicking between 0 and 1

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.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

373 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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

Referencing a non static variable from another script C# Unity 1 Answer

How to play the animation completely on mouse click 1 Answer

Custom Properties, Unity, Object refence not set to an instance of an object 0 Answers

NullReferenceException: Object reference not set to an instance of an object Plane.OnCollisionEnter2D (UnityEngine.Collision2D collision) (at Assets/Scripts/Plane.cs:37) 0 Answers

script does not update inspector? 3 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges