Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

AI Behaviors Made Easy! (Walker Boys)

Discussion in 'Assets and Asset Store' started by profcwalker, Apr 22, 2012.

  1. AlteredPlanets

    AlteredPlanets

    Joined:
    Aug 12, 2013
    Posts:
    455
    Hello, and new updates coming out?
     
  2. ksam2

    ksam2

    Joined:
    Apr 28, 2012
    Posts:
    1,079
    Hi there. I get this error on Unity5

    Code (CSharp):
    1. NavMesh asset format has changed. Please rebake the NavMesh data.
     
  3. AlteredPlanets

    AlteredPlanets

    Joined:
    Aug 12, 2013
    Posts:
    455
    Hello,


    How would I go about using multiple attack animations with mecanim.

    Is a blend tree needed?
     
  4. NathanWarden

    NathanWarden

    Joined:
    Oct 4, 2005
    Posts:
    663
    Nice, good job! I guess this means I might want to take a look at my script to make sure it's a little more friendly.

    There will be in about 2 months. My team and I are crunching on a big project we've been working on for over two years now. But, once we have that done I have a few fairly big changes I want to make for version 2.0. They aren't super huge changes, but should be helpful.

    If you're trying to have multiple attack animations for essentially the same attack, then a blend tree sounds like a good way to go. If the attacks are going to do something different from each other it would be best to use multiple attack states instead.
     
  5. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    That's not an error but a warning and should not cause any problems. But if you wish to get rid of it, it actually tells you exactly what you need to do. Just double click on it and it should take you to the line and simply change "nameHash'" to "fullPathHash".
     
  6. ArtR

    ArtR

    Joined:
    Sep 27, 2011
    Posts:
    48
    First I would like to say that I love this package and it has helped a lot.

    I have a minor issue with Warning messages coming up about "The referenced script on this Behavior is missing!" and it points to the different STATE root gameobjects in the different AI entities I have. Is this a known issue with a known solution?

    Nothing breaks, just the warning messages.

    BTW, this is on Unity 5 :)

    Thanks in advance!

    A
     
  7. NathanWarden

    NathanWarden

    Joined:
    Oct 4, 2005
    Posts:
    663
    This will be one of the updates included in the next update.

    Thanks for the compliment!

    Is this warning in one of our included scenes? If so, let me know which one(s) and I'll take a look.
     
  8. Muralidaran

    Muralidaran

    Joined:
    May 2, 2014
    Posts:
    93
    Hello.

    Great AI system, thanks for all the hard work.
    I was hoping to get some help with an issue I am having. In my game I am using magic and I want the ice magic to freeze the enemy. I have everything functioning well but I can't seen to figure out how to freeze the animation.
    Here is the script I am using to trigger the frozen state:

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. using AIBehavior;
    4.  
    5.  
    6. public class FrozenTrigger : MonoBehaviour
    7. {
    8.     AIBehaviors ai;
    9.  
    10.  
    11.     void OnTriggerEnter (Collider other)
    12.     {
    13.         StartCoroutine(Freeze (other));
    14.  
    15.  
    16.  
    17.         }
    18.  
    19.     IEnumerator Freeze (Collider other)
    20.     {
    21.         AIPath aiPath = other.GetComponent<AIPath> ();
    22.      
    23.         aiPath.canMove = false;
    24.         aiPath.canSearch = false;
    25.      
    26.         ai = other.GetComponent<AIBehaviors>();
    27.      
    28.         // This will get you the current state's name such as MyCustomFlee
    29.         string stateName = ai.currentState.name;
    30.      
    31.         // This will change the AI into using the idle state
    32.         FrozenState frozenState = ai.GetState<FrozenState>();
    33.         ai.ChangeActiveState(frozenState);
    34.      
    35.         yield return new WaitForSeconds(5);
    36.      
    37.         aiPath.canMove = true;
    38.         aiPath.canSearch = true;
    39.  
    40.  
    41.     }
    42.      
    43.  
    44. }
    45.  
    And this is the frozen state code:

    Code (CSharp):
    1. using UnityEngine;
    2.  
    3. #if UNITY_EDITOR
    4. using UnityEditor;
    5. #endif
    6.  
    7.  
    8. namespace AIBehavior
    9. {
    10.     public class FrozenState : CooldownableState
    11.     {
    12.  
    13.         public bool hitMovesPosition = true;
    14.         public float movePositionAmount = 1.0f;
    15.        
    16.        
    17.         protected override void Init(AIBehaviors fsm)
    18.         {
    19.             fsm.PlayAudio();
    20.             TriggerCooldown();
    21.         }
    22.        
    23.        
    24.         protected override void StateEnded(AIBehaviors fsm)
    25.         {
    26.         }
    27.        
    28.        
    29.         protected override bool Reason(AIBehaviors fsm)
    30.         {
    31.             return true;
    32.         }
    33.        
    34.        
    35.         protected override void Action(AIBehaviors fsm)
    36.         {
    37.             fsm.MoveAgent(fsm.currentDestination, movementSpeed, rotationSpeed);
    38.         }
    39.        
    40.        
    41.         new public bool CoolDownFinished()
    42.         {
    43.             return base.CoolDownFinished();
    44.         }
    45.        
    46.        
    47.         public virtual bool CanGetHit(AIBehaviors fsm)
    48.         {
    49.             return !(fsm.currentState is DeadState);
    50.         }
    51.        
    52.        
    53.         #if UNITY_EDITOR
    54.         // === Editor Methods === //
    55.        
    56.         public override void OnStateInspectorEnabled(SerializedObject m_ParentObject)
    57.         {
    58.         }
    59.        
    60.        
    61.         protected override void DrawStateInspectorEditor(SerializedObject m_Object, AIBehaviors stateMachine)
    62.         {
    63.             SerializedObject m_State = new SerializedObject(this);
    64.            
    65.             m_State.ApplyModifiedProperties();
    66.         }
    67.         #endif
    68.     }
    69. }
    70.  
    What would I add to stop and restart the animation?

    Thanks for the help.

    Mura
     
    Last edited: Jul 29, 2015
  9. NathanWarden

    NathanWarden

    Joined:
    Oct 4, 2005
    Posts:
    663
    Hi Mura,

    What you have done so far looks like a great start. Depending on the animation system you're using, where you want to change is probably going to be in the CharacterAnimator or MecanimAnimation respectively. Which animation system are you using, Mecanim or the Legacy system?
     
  10. Muralidaran

    Muralidaran

    Joined:
    May 2, 2014
    Posts:
    93
    Hi Nathan,

    I am using Legacy.
     
  11. NathanWarden

    NathanWarden

    Joined:
    Oct 4, 2005
    Posts:
    663
    Thanks Mura, I'm going to take a look into a solution for you today.
     
  12. NathanWarden

    NathanWarden

    Joined:
    Oct 4, 2005
    Posts:
    663
    Hi Mura,

    Here's a solution for you. Setup a freeze AI animation for your freeze state. This shouldn't be an actual animation clip, just a name "freeze" in the AI Animation States component.

    Then, for your Freeze State, use the "freeze" animation under the state's Animations foldout.

    In the following script, what is happening is that it's setting the playing animation speed to 0, therefore pausing the animation.

    Let me know if you need additional help :)

    Thanks,
    Nathan

    Code (csharp):
    1.  
    2. using UnityEngine;
    3.  
    4.  
    5. namespace AIBehavior
    6. {
    7.     public class CharacterAnimatorWithFreeze : MonoBehaviour
    8.     {
    9.         Animation anim = null;
    10.         bool hasAnimationComponent = false;
    11.         AIAnimationState currentState = null;
    12.  
    13.  
    14.         void Awake()
    15.         {
    16.             anim = GetComponentInChildren<Animation>();
    17.  
    18.             hasAnimationComponent = anim != null;
    19.  
    20.             if ( !hasAnimationComponent )
    21.             {
    22.                 Debug.LogWarning("No animation component found for the '" + gameObject.name + "' object or child objects");
    23.             }
    24.         }
    25.  
    26.  
    27.         public void OnAnimationState(AIAnimationState animState)
    28.         {
    29.             if ( hasAnimationComponent && animState != null )
    30.             {
    31.                 string stateName = animState.name;
    32.  
    33.                 if ( stateName == "freeze" )
    34.                 {
    35.                     if ( currentState != null )
    36.                     {
    37.                         anim[currentState.name].speed = 0.0f;
    38.                     }
    39.                 }
    40.                 else if ( anim[stateName] != null )
    41.                 {
    42.                     currentState = animState;
    43.  
    44.                     anim[stateName].wrapMode = animState.animationWrapMode;
    45.                     anim[stateName].speed = animState.speed;
    46.                     anim.CrossFade(stateName);
    47.                 }
    48.                 else
    49.                 {
    50.                     Debug.LogWarning("The animation state \"" + stateName + "\" couldn't be found.");
    51.                 }
    52.             }
    53.         }
    54.     }
    55. }
     
  13. JesterMaster

    JesterMaster

    Joined:
    Oct 29, 2014
    Posts:
    34
    I am spawning all my enemies. How can I set the patrol points for them? I can not drag the navpoint group gameobject to the prefab. Everything is working fine if I am not spawning enemies, unfortunately this is not possible.
     
  14. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    Perhaps this will help. Look on the previous page of this thread for more information.
     
    JesterMaster likes this.
  15. JesterMaster

    JesterMaster

    Joined:
    Oct 29, 2014
    Posts:
    34
    Perfect thank you for your fast reply :)
     
    Last edited: Aug 19, 2015
  16. JesterMaster

    JesterMaster

    Joined:
    Oct 29, 2014
    Posts:
    34
    Now my problem is that I can not get the enemy seek and attack me if If it does not see me. Enemy attacks me just fine if it sees me, but how can I set it so it will run to me and attack me even it does not see me.

    UPDATE: Works now.
     
    Last edited: Sep 6, 2015
  17. Muralidaran

    Muralidaran

    Joined:
    May 2, 2014
    Posts:
    93
    Hi Nathan,

    I was busy with some other stuff but I wanted to let you know your fix for the freeze state worked great. Thanks.

    Mura
     
  18. Muralidaran

    Muralidaran

    Joined:
    May 2, 2014
    Posts:
    93
    Hey Nathan,

    I was just wondering what would be the best approach to dong random attacks? Right now I have my enemies set up do go from attack 1 to attack 2 to attack 3 etc. this works fine until you get 2 or the of the same kind of enemy attacking you at the same time. Is there a way to set up a trigger to select a random state from a list?

    Thanks,
    Mura
     
  19. Muralidaran

    Muralidaran

    Joined:
    May 2, 2014
    Posts:
    93
    Hey Nathan,

    I got the random attacks sorted. Now I am having trouble with the a* pathfinding implementation. For some odd reason when the player gets close to the enemy it changes states, starts the running animation but doesn't move towards the player. Has anyone else talked about a problem like that?

    Thanks
     
  20. JesterMaster

    JesterMaster

    Joined:
    Oct 29, 2014
    Posts:
    34
    Hi

    Did you set movement speed for Seek. Maybe it is zero?
     
  21. JesterMaster

    JesterMaster

    Joined:
    Oct 29, 2014
    Posts:
    34
    When I shoot jumping enemy it starts to loop the jump. How to fix this?
     
  22. NathanWarden

    NathanWarden

    Joined:
    Oct 4, 2005
    Posts:
    663
    Hi JesterMaster, is this a custom jump state you've made, or is this for the OffMeshLink state?

    If it's a custom jump state, you'll want to detect where the bottom of the jump is and then use the following line of code:

    fsm.ChangeActiveState(jumpFinishedState);

    Where fsm is the AIBehaviors component, and jumpFinishedState is a public BaseState variable.
     
  23. JesterMaster

    JesterMaster

    Joined:
    Oct 29, 2014
    Posts:
    34
    Hi

    this is basic jump where enemy drops from roof.
    Unity makes these OffMeshLinks automatically.

    When enemy jumps and player shoots the enemy I changes enemy to HitState and transports back to the spot where it jumped. And this loops and loop when player keeps shooting the jumpig enemy.

    I have not made any custom jump codes.
     
  24. Muralidaran

    Muralidaran

    Joined:
    May 2, 2014
    Posts:
    93
    Hi Nathan,

    I was just wondering if anyone had worked out a wander state. I was hoping to get a bit more of a natural look to the animals in my game.

    Thanks,
    Mura
     
  25. NathanWarden

    NathanWarden

    Joined:
    Oct 4, 2005
    Posts:
    663
    Hi Mura,

    We don't have an actual state for this, but it can be faked with the Patrol State by setting various points for the patrol to where you want the AI to wander to. Then set the Patrol Mode and Continue Previous Patrol mode both to Random.

    I'm not sure when I'll get to it, but I just added wandering to the todo list.

    Thanks Mura,
    Nathan
     
  26. Muralidaran

    Muralidaran

    Joined:
    May 2, 2014
    Posts:
    93
    Hi Nathan,

    I have 2 quick questions for you. First, are you still supporting this, planning any updates?
    Second, how you I set it up so that the A* pathfinding project uses the RichAI script instead of the AIPath script. I have the pro version of Pathfinder and you wrote the package with free users in mind.

    Thanks,
    Mura
     
  27. NathanWarden

    NathanWarden

    Joined:
    Oct 4, 2005
    Posts:
    663
    Hi Mura,

    Yes, we are still planning on doing some updates to AI Behavior. It will be a month or two before I can get back on it.

    This script can be used with RichAI. Create a new C# script called 'AstarRichAICharacterController' and then you can replace the AstarCharacterController component on your AI object. This will be included with the next version of AI Behavior.

    Code (csharp):
    1. #define USE_ASTAR
    2.  
    3. using UnityEngine;
    4. using System.Collections;
    5.  
    6. #if USE_ASTAR
    7. using Pathfinding;
    8. #endif
    9.  
    10. namespace AIBehavior
    11. {
    12. #if USE_ASTAR
    13.    [RequireComponent(typeof(RichAI))]
    14. #endif
    15.    [RequireComponent(typeof(CharacterController))]
    16.    public class AstarRichAICharacterController : MonoBehaviour
    17.    {
    18.      public Transform target = null;
    19.  
    20. #if USE_ASTAR
    21.      private RichAI richAI = null;
    22.  
    23.  
    24.      void Awake()
    25.      {
    26.        AIBehaviors ai = GetComponent<AIBehaviors>();
    27.  
    28.        if ( target == null )
    29.        {
    30.          target = new GameObject().transform;
    31.        }
    32.  
    33.        richAI = GetComponent<RichAI>();
    34.        richAI.target = target;
    35.  
    36.        if ( richAI == null )
    37.        {
    38.          Debug.LogError("You must add the 'RichAI' component to the Game Object '" + name + "' in order to use the Astar Pathfinding Project integration.");
    39.          return;
    40.        }
    41.  
    42.        richAI.target = target;
    43.        ai.externalMove = OnMove;
    44.      }
    45.  
    46.  
    47.      void OnMove(Vector3 targetPoint, float targetSpeed, float rotationSpeed)
    48.      {
    49.        richAI.maxSpeed = targetSpeed;
    50.        richAI.rotationSpeed = rotationSpeed;
    51.        target.position = targetPoint;
    52.      }
    53. #endif
    54.    }
    55. }
    Thanks Mura,
    Nathan
     
  28. TalhaDX

    TalhaDX

    Joined:
    Feb 2, 2013
    Posts:
    94
    Hi,

    I am having trouble in GotHit state, although I have set movement speed var to 0, but it keeps on moving towards target. Take a look at settings:

    http://prntscr.com/9f9d9h

    I don't know what's the issue.
     
  29. Muralidaran

    Muralidaran

    Joined:
    May 2, 2014
    Posts:
    93
    Hi Nathan,

    Just saw the new update. Before I install it I was wondering if this is going to break my game when I do. I have alot of my AI complete and running smoothly. I don't want to loose all that work.

    Thanks,
    Mura
     
  30. NathanWarden

    NathanWarden

    Joined:
    Oct 4, 2005
    Posts:
    663
    I answered you via email, but will answer you here too just in case anyone else has the same issue.

    The GotHit state really isn't a movement state, therefore you'll want to add some sort of trigger to the state.

    What I do almost every time is make a second idle state called "Hit Idle" and transition to that by using a timer trigger set to 0.

    I've attached a screenshot to show the basic setup. Then, you can play whatever the hit animation should be in that idle state.

    Something I didn't include in the email is that this setup with the AI getting hit seams non-intuitive and I may change it in a future update.

    Hi Mura,

    If you're AI is working good for your game I wouldn't update to the latest version. It does change a few things up and doesn't really have anything too compelling that will make any significant difference in your game. It may break a few things though.
     
  31. NathanWarden

    NathanWarden

    Joined:
    Oct 4, 2005
    Posts:
    663
    Sorry, I know you've wanted this and I've been putting it off. I have a very short todo list for the beginning of next year and this is now on that list.
     
  32. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    Can you add multiple death animations, which uses one of them randomly.. from your tutorial video I've only seen one being added?
     
  33. NathanWarden

    NathanWarden

    Joined:
    Oct 4, 2005
    Posts:
    663
    Yes, this can be done.

    1) Be sure to turn on advanced mode by checking on the box.
    2) Create a second death state.
    3) In the state(s) that transition to the death state use the GoToRandom trigger as the trigger. Set the value to 0.5.

    Let me know if you need any additional help.
     
    julianr likes this.
  34. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    @NathanWarden - So far so good. It's everything that I could possibly need in an AI system! Very flexible, especially with states and triggers, plus the addition to add your own code to expand your AI capabilities further. It will save me a ton of time. Keep up the good work on this.
     
  35. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    I also use the Unity Animation List under the AI gameObject, instead of using ai @ animation_filename, which references the animations from within the animation states on AI Behavior. Saves having duplicated animation files taking up space. Didn't see this in the videos, as they are a bit out of date now.
     
  36. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    @NathanWarden / all - is there an option to delay the damage, as the damage hits before the animation has finished. Or a piece of code I can put in to do the damage after the animation has completed? Still trying to get my brain around this asset.

    I've tried a Trigger timer, by running the animation first then going to another state to apply the damage but it doesn't work. Would be great if there was a speed option to apply damage slow or fast based on your animation state length.

    Edit: Resolved - with the help of support - thanks!
     
    Last edited: Dec 23, 2015
  37. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    I've tried this today, but both Death state animations clash. As I have a Global Trigger for checking the Death state, based on low health sub-trigger. I tried adding the GoToRandom Trigger in the Global Triggers also, didn't work. That's the only time I call up the death animation, after checking the state from the Global. Maybe I'm setting it up wrong?

    I'll try not using the global for checking the death state, and add that to the got hit, and then add the go to random.

     
  38. JesterMaster

    JesterMaster

    Joined:
    Oct 29, 2014
    Posts:
    34
    Hi Nathan

    I have some problems with AI Behavior.

    1. First I can see you have updated your asset 18 Dec to version 1.10 I am using unity version 4.6.9, but I can not update my current AI Behavior version 1.9.
    2. Second problem is that how can I make the AI enemy change the target who to attack.
    3. Third How can I make the AI enemy have many targets with different tags. I need them to attack the player and the civilians.
     
  39. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    @NathanWarden - No joy on using multiple death animations. It would be far easier if the death animations were added individually, like you can add to string multiple animations together but with a checkbox to chose one of these animations randomly, but played individually. same should apply for all states so you could have 5 different idle poses.
     
  40. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    I can answer this one, under the attack state there is AI target tags.. just add another one for your civilians tag.

    If you can be more specific on 2.. I might have a solution.
     
    Last edited: Dec 23, 2015
  41. JesterMaster

    JesterMaster

    Joined:
    Oct 29, 2014
    Posts:
    34
    Problem is that enemies are killing civilians but when the target is dead the enemy does not chage the target cilivian it keeps attacking this dead one.
     
  42. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    add in a trigger to checkstate (dead), then specify the state to change to.. eg seek, which should hopefully look for a new target, based on the tags? Otherwise you may need to modify the script to move to next nearest target.
     
    Last edited: Dec 23, 2015
  43. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    that may not work as its probably looking for itself.. ideally we need a checkTarget trigger, to see if the target acquired is dead, out of range, or other.
     
  44. NathanWarden

    NathanWarden

    Joined:
    Oct 4, 2005
    Posts:
    663
    @julianr Thanks for answering him. I just got done sending him an email too but didn't realize you already responded. Thanks again.
     
    julianr likes this.
  45. PhosphorUnity

    PhosphorUnity

    Joined:
    Jan 22, 2014
    Posts:
    39
    I'm new to the system and I am super impressed! I tried a lot of the more state machines and I have a really hard time following them, plus they seem to only work w/ Mechanim.

    Some suggestions from a new user- The documentation are pretty out of date- while the concepts are mostly the same, the specifics seem different.
    • It took me a while to understand that you can have duplicate behaviors (2 attacks, 2 idles, etc) .
    • some of the release notes don't say how do to something, which older users might get, but a new user might not, esp if you are doing the tutorials ("Removed the FollowState since its' behavior can be replicated using other states and triggers"- I used a Seek instead, but the tutorials pointed to Follow).
    • Took me a while to understand the use case of the Global triggers, as there isn't any documentation
    • Many of the demonstration scenes are broken, For example, the 'Follow' scene the AI just sits there. The AI + Move is broken as well, etc. (all probably related to changed Follow State)
    • Almost 1/2 the triggers aren't documented what they do in the PDF or anywhere I could find.
    • It would be very beneficial to just have one typical game example AI understand- a patrolling AI who shoots from a distance when they make distance/sight contact, and melee when up close, and retreat a bit when damaged. I'm figuring out how to do it, but it seems like such a typical AI game use case, there should just be an example.

    NEW FEATURE SUGGESTION: It would be very flexible if there was a empty field for a prefab that could be spawned on new state / behavior change. You could play an FX, or drop a pick-up, etc- whatever could be turned on in a prefab. There could be a spawn point like the projectile span point.

    Again I'm enjoying it so far, very happy with how quickly can get results vs other AI systems I've tried. I like that you can even 'twist' it to try other things. I'm using 'Attacks' to pet an animal, and health is how submissive / domesticated it is. The more you pet it (attack it), the more it follows you around, etc
     
    Last edited: Feb 8, 2016
  46. PhosphorUnity

    PhosphorUnity

    Joined:
    Jan 22, 2014
    Posts:
    39
    issue I can't figure out:

    - how do you make "got Hit" stop the character movement? I have it set to 0 speed, but they still inherit last action's movement (like if they were jogging before) , so looks like they are sliding as they are hit
     
    Last edited: Feb 8, 2016
  47. NathanWarden

    NathanWarden

    Joined:
    Oct 4, 2005
    Posts:
    663
    Hi Stickle,

    Thanks for the compliments and feedback in your previous post. Yes, the documentation is quite outdated and I plan on that being the first thing I jump back onto, but it will still be about a month before I get some time to do that.

    I'm putting your entire post into my todo list so I won't miss anything.

    As far as the GotHit state, it's more of a transitional state so I usually just have it go straight into an Idle state by using a Timer trigger with a time of zero on it. Then have the idle state use whatever animation I think is necessary. I suppose I should put a stop option on the GotHit state as you may or may not want that. That will be on the Todo list as well.

    Thanks a ton for your feedback, it is very appreciated!
     
  48. TalhaDX

    TalhaDX

    Joined:
    Feb 2, 2013
    Posts:
    94
    ISSUE:

    I recently shifted to Unity 5.1.1 f1 and even before starting i see that i can't even turn my scene environment to static. Because it keeps on baking and stuck there (7/11 Light Transport | 1 job).

    As you have released for Unity versions above 5 also, plz tell me how did you baked the environment. I am stuck on my project.

    PS: I searched Internet and to stop (7/11 Light Transport | 1 job) we have to uncheck the static option. But without static we can see AI Behavior work. Help plz
     
  49. TalhaDX

    TalhaDX

    Joined:
    Feb 2, 2013
    Posts:
    94
    Good to hear that you will be working again on it. I would like you to add Head shot and body shot feature in it too.
     
  50. PhosphorUnity

    PhosphorUnity

    Joined:
    Jan 22, 2014
    Posts:
    39
    Heh- I was going to request "it would be cool if you walked up to something slower, you could sneak up on it", and I see there is a 'SpeedExceeded' trigger ...