Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

ICode (AI For Mecanim 2.0)

Discussion in 'Assets and Asset Store' started by DevionGames, Dec 18, 2013.

  1. nomax5

    nomax5

    Joined:
    Jan 27, 2011
    Posts:
    365
    Sorry Antigono I didn't realise that post was about the same thing - I'm blind as a bat sometimes..

    Yes it worked I tested it and was able to open the project by temporary removing
    \Assets\AI System\Scripts\Editor\AiEditorWindow.cs
    from the project
    I simply cut n pasted it to c:/temp
    Then opened the project
    There is an error about the missing script ( to be expected )
    copiied it back in
    Error went away.

    My Top Tip untill this is fixed: Make sure the AI Controller window is big and floating on top (dont dock it) then you will remember to
    close it before exiting the project

    Thanks for your help guys,
     
  2. naatiq

    naatiq

    Joined:
    Sep 28, 2013
    Posts:
    7
    hi zerano,

    I accidentally bought this asset assuming it supports 2d sprites,

    can you please process a refund for me.

    I will send you the details, but i dont know to which email address to send them.

    regards
     
  3. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    Hi, it seems like i can not write you a pm, i think you sended me also an email, right? I will write you there.
     
  4. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Zerano i got this in the sale, it looks like it could be a very neat, quick way to get behaviours into scene, so looking forwards to it, but I think an email to Unity QC or whoever looks after the asset submission process could give you a good explanation, even though an obvious one is easy to arrive at - mecanim is a product name and an identity, and intellectual copyright to the creators of the animation system and unless you were working with them on the system it's quite an uncomfortable move to ride on the profile of that identity which is now a core system of Unity. So I guess as a third party if you hadn't conferred with them on using the name, i cannot see any way your product would have been 'allowed' to maintain its original name (and you shouldn't really establish it as such)

    That said, the alternatives fine and the interface is very recognisable and could work more as homage than Unity-developed software and be no worse for it, and i'm definitely looking forwards to getting to grips with it
     
  5. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    Yes, i have no problem, that the name was changed, there are lots of names that it can have. So before i come for my own, i will just leave the changed name by unity. It was only very strange, because there are so many assets with "Mecanim" in their asset name and i thought it would be no problem.
     
  6. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    I think it was just the implication that it might be some extension of mecanim developed by unity/the mecanim guys themselves rather than a 3rd party product. Like you say it's no big problem but I can understand the decision, bit strange they didnt contact you however, shoddy in fact.
     
  7. lackthereof0

    lackthereof0

    Joined:
    Feb 12, 2014
    Posts:
    1
    Hi Zerano - I'm enjoying the tool so far.

    I've got an agent who follows the player. I'm trying to get the agent to seek for a new target while he's following the player, and if that target is near enough, switch to following that target. In other words, I can lead the agent to a target and it will switch to following that target when close enough. How do I set that up?

    Thanks!
     
  8. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    Do all targets have the same tag? if yes just just call SetTarget again, it will pickup the nearest. In the next version you will be able to store targets into global variables and make conditions based on them. So it will have not only one target at one time but many.
     
  9. Deepestblue

    Deepestblue

    Joined:
    May 11, 2009
    Posts:
    48
    Hi there,

    any update maybe on the A* integration? :) Sorry to bug, but my levels are being generated procedural so Unity's Navmesh system is simply no option for me I fear.

    Thanks for considering! :)

    Jan
     
  10. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    A* by http://arongranberg.com/astar/ is supported, but yes i am going to create the last missing states.
     
  11. BuildABurgerBurg

    BuildABurgerBurg

    Joined:
    Nov 5, 2012
    Posts:
    566
    Really?? is that already in there or in next update?
     
  12. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    It is already in there, but it has only Walk and Follow states as example(Flee and Patrol) will come.
    Here was the demo for it:
    AStar Support

    You need to import the AStar Support.unitypackage, to create the AStarWalkState or AStarFollowState.
     
  13. Deepestblue

    Deepestblue

    Joined:
    May 11, 2009
    Posts:
    48
    Oh, it's already supported? Wow nice, didn't even see it was updated. Thanks a lot! :)
     
  14. kotor

    kotor

    Joined:
    Dec 3, 2013
    Posts:
    140
    Zerano

    Is the model 2w_hero can be used for commercial use ?
     
  15. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    Yes, it has the same license as all assets in the unity asset store.
     
  16. ChaneDev

    ChaneDev

    Joined:
    Feb 12, 2013
    Posts:
    66
    Hey Zerano, I have Aron's pro A* package installed. When I imported the Astar Support package (your package and his package are the latest versions from the App store, Unity 4.3.3f1) I get the following error:

    Assets/AstarPathfindingProject/Generators/LayerGridGraphGenerator.cs(30,22): error CS0738: `Pathfinding.LayerGridGraph' does not implement interface member `Pathfinding.IRaycastableGraph.Linecast(UnityEngine.Vector3, UnityEngine.Vector3, Pathfinding.GraphNode, out Pathfinding.GraphHitInfo, System.Collections.Generic.List<Pathfinding.GraphNode>)' and the best implementing candidate `Pathfinding.LayerGridGraph.Linecast(UnityEngine.Vector3, UnityEngine.Vector3)' return type `bool' does not match interface member return type `bool'

    Not sure how to fix this, but I thought you should know.
     
  17. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    You should delete the free version before importing the pro version.
     
  18. ChaneDev

    ChaneDev

    Joined:
    Feb 12, 2013
    Posts:
    66
    Ah, ok so if I import the A* pro version, then import your version I get this error. I then imported the pro version again and it was fixed. Thanks.
     
  19. BuildABurgerBurg

    BuildABurgerBurg

    Joined:
    Nov 5, 2012
    Posts:
    566
    Yes Sorry Zerano, I must be going blind.

    Keep up the great work!!
     
  20. Mikie

    Mikie

    Joined:
    Dec 27, 2011
    Posts:
    367
    Next upgrade when?
     
  21. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    I think in arround 1 week it will be finished. However documentation for the new version could take another 3-4 days.
     
  22. booyagrandmma

    booyagrandmma

    Joined:
    Mar 26, 2012
    Posts:
    11
    Hey Zerano, first off i wanna say this is an excellent plugin. I've put my game on hold for over a year since writing my own state machines and enemy behaviors was a huge burden at my current skill level, but with your plugin, mixed with the navmesh being in the free version, i've been able to get right back into it.

    I've been running into some bugs that i just wanted to mention, which i'm sure others have been experiencing but i haven't read all 14 pages of this thread.

    First one: Basically when i double click an AI controller sometimes i'll get this error that spams 999+ times

    ArgumentOutOfRangeException: Argument is out of range.
    Parameter name: index
    System.Collections.Generic.List`1[State].get_Item (Int32 index) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
    AiEditorWindow.DrawNodeProperties () (at Assets/AI System/Scripts/Editor/AiEditorWindow.cs:196)
    AiEditorWindow.OnLeftGUI () (at Assets/AI System/Scripts/Editor/AiEditorWindow.cs:47)
    TwoAreaEditorWindow.OnGUI () (at Assets/AI System/Scripts/Editor/TwoAreaEditorWindow.cs:41)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)

    if i comment out the OnGUI function of TwoAreaEditorWindow it'll stop, and sometimes when i uncomment it, it'll be temporarily fixed, but other times the errors come right back.


    I'll get another error when opening up the AI editor window while the game is running in the same panel. It doesn't really have any effect, won't break the scene or anything, just a red error.

    ArgumentException: Getting control 2's position in a group with only 2 controls when doing Repaint
    Aborting
    UnityEngine.GUILayoutGroup.GetNext ()
    UnityEngine.GUILayoutUtility.DoGetRect (Single minWidth, Single maxWidth, Single minHeight, Single maxHeight, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options)
    UnityEngine.GUILayoutUtility.GetRect (Single width, Single height)
    UnityEditor.EditorGUILayout.Space ()
    ReorderableList.DoList () (at Assets/AI System/Scripts/Editor/ReorderableList.cs:128)
    AiEditorWindow.DoActionList (UnityEditor.SerializedObject serializedObject) (at Assets/AI System/Scripts/Editor/AiEditorWindow.cs:69)
    AiEditorWindow.DrawNodeProperties () (at Assets/AI System/Scripts/Editor/AiEditorWindow.cs:209)
    AiEditorWindow.OnLeftGUI () (at Assets/AI System/Scripts/Editor/AiEditorWindow.cs:47)
    TwoAreaEditorWindow.OnGUI () (at Assets/AI System/Scripts/Editor/TwoAreaEditorWindow.cs:41)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)


    sometimes i'll get a "leaked objects destroyed" message in the console but i can't seem to recreate it. It'll just happen.


    Also i had some questions on future updates.

    1) do you have plans on making an "onEnterState" or "onExitState" function that only happens once when the state is entered/exited.
    2) Is there any way to debug the custom attributes created in the GUI? I had an issue where i was made a custom attribute, put a consume attribute in the update, and had a condition to enter the next state when the attribute reached below zero. It never reached 0 and i have no way of knowing why.
     
  23. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    @booyagrandmma
    Hello, i hope this bug will move with the new version, which will come soon.
    Yes with the next update you will have much more possibilities to control states, actions and conditions.

    Code (csharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. namespace AISystem.States.NavMeshAgent{
    5.     [Category("NavMeshAgent")]
    6.     [System.Serializable]
    7.     public class Walk : Simple {
    8.         public float speed=2.0f;
    9.         public float rotation=150.0f;
    10.         public float range=10.0f;
    11.         public float threshold=0.1f;       
    12.  
    13.         private Vector3 initialPosition;
    14.         //Called once, use for initialization
    15.         public override void OnAwake ()
    16.         {
    17.             base.OnAwake ();
    18.             initialPosition = owner.transform.position;
    19.         }
    20.  
    21.         // Same as Update()
    22.         public override void OnUpdate ()
    23.         {
    24.             if (agent.remainingDistance < threshold) {
    25.                 Vector3 destination=GetRandomDestination(true);
    26.                 NavMeshHit hit;
    27.                 NavMesh.SamplePosition(destination, out hit, range, 1);
    28.                 destination = hit.position;
    29.                 agent.SetDestination(destination);
    30.             }
    31.         }
    32.  
    33.         //Called when the state is entered.
    34.         public override void OnEnter ()
    35.         {
    36.             agent.speed = speed;
    37.             agent.angularSpeed = rotation;
    38.         }
    39.  
    40.         //Called when the state is finished and there is a new transition to another state
    41.         public override void OnExit ()
    42.         {
    43.             agent.Stop ();
    44.             agent.SetDestination(owner.transform.position);
    45.         }
    46.        
    47.         private Vector3 GetRandomDestination(bool raycast){
    48.             Vector3 random = new Vector3 (initialPosition.x + Random.Range (-range, range), initialPosition.y, initialPosition.z + Random.Range (-range, range));
    49.             if (raycast) {
    50.                 RaycastHit hit;
    51.                 if (Physics.Raycast (random + Vector3.up * 500, Vector3.down, out hit)) {
    52.                     random.y = hit.point.y;
    53.                 }
    54.             }
    55.             return random;
    56.         }
    57.     }
    58. }
    You will need to create the same way actions:

    Code (csharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. namespace AISystem.Actions.Animator{
    5.     [Category("Animator")]
    6.     [System.Serializable]
    7.     public class SetFloat : BaseAction {
    8.         [AnimatorParameter(AnimatorParameter.Float)]
    9.         public string parameterName;
    10.  
    11.         [UseGlobalPrameter("globalFloat",typeof(FloatParameter))]
    12.         public bool useGlobal;
    13.         [Hide]
    14.         public string globalFloat;
    15.         [Hide("useGlobal")]
    16.         public float value;
    17.         public float dampTime=0.15f;
    18.  
    19.         private UnityEngine.Animator animator;
    20.         private int hash;
    21.  
    22.         public override void OnAwake (){
    23.             animator = owner.GetComponent<UnityEngine.Animator> ();
    24.             hash = UnityEngine.Animator.StringToHash (parameterName);
    25.         }
    26.  
    27.         public override void OnUpdate ()
    28.         {
    29.             float mValue = useGlobal ? ((FloatParameter)owner.GetParameter (globalFloat)).Value : value;
    30.             if (dampTime > 0) {
    31.                 animator.SetFloat (hash, mValue, dampTime, Time.deltaTime);
    32.             } else {
    33.                 animator.SetFloat (hash, mValue);
    34.             }
    35.             Finish ();
    36.         }
    37.        
    38.     }
    39. }
    And conditions:
    Code (csharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. namespace AISystem{
    5.     [Category("Animator")]
    6.     [System.Serializable]
    7.     public class GetFloat : BaseCondition {
    8.         [AnimatorParameter(AnimatorParameter.Float)]
    9.         public string parameterName;
    10.         public FloatComparer comparer;
    11.         public float value;
    12.  
    13.         private Animator animator;
    14.         private int hash;
    15.         public override void OnAwake ()
    16.         {
    17.             animator = owner.GetComponent<Animator> ();
    18.             hash = Animator.StringToHash (parameterName);
    19.         }
    20.        
    21.         public override bool Validate ()
    22.         {
    23.             if(animator != null){
    24.                 float floatValue=animator.GetFloat(hash);
    25.                 switch (comparer) {
    26.                 case FloatComparer.Greater:
    27.                     return floatValue > value;
    28.                 case FloatComparer.Less:
    29.                     return floatValue < value;
    30.                 }
    31.             }
    32.             return false;
    33.         }
    34.     }
    35. }
    So no more such long switch statements and all actions, conditions are in its own scripts.
    $Prev.png
     
  24. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    I have also setuped an svn system for some one who wants to help me to write documentation and make tutorials, so if you need the update right now, you can pm me with a password and username you would like to use and i can add you for testing purposes, before the update goes live for the public.
     
  25. booyagrandmma

    booyagrandmma

    Joined:
    Mar 26, 2012
    Posts:
    11
    Good to hear, looking forward to the update.
     
  26. ChaneDev

    ChaneDev

    Joined:
    Feb 12, 2013
    Posts:
    66
    Hey Zerano, I'm working on a 2.5D hack and slash platformer. What modifications did you have to make for your 2.5D version? Are you going to include your modified project in the next release or at least examples?

    Thanks,
    ~C
     
  27. Baldinoboy

    Baldinoboy

    Joined:
    Apr 14, 2012
    Posts:
    1,524
    Have been learning this. I am wondering how advanced you can make an AI? With time can you create one that takes cover and flanks?
     
  28. wendymorrison

    wendymorrison

    Joined:
    Jan 6, 2014
    Posts:
    246
    Hi I.ve been trying out a zombie with this system and it actually works but the zombie won't kill the player. I am using it with the UFPS at the moment. I have even put invincible cubes at the zombie hands, it did work but just after 1 hit the cube has disappeared though. Is there anyway would bring out a tutorial for this. I have gotten everything else right. It is actually a really good simple system.
     
  29. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    Hello, my 2.5D example is not optimized it still uses the navmesh pathfinding with version 1.3 many things changed and after this update there will be more examples added over time. One of those will be a 2.5D starter game similiar to the prototype i did, just more optimized.

    Yes this should be possible with version 1.3, i am currently testing it and write documentation so it should not take that long for the update.

    Yes, i can record a video.
     
  30. Arbelzapf

    Arbelzapf

    Joined:
    Sep 30, 2013
    Posts:
    58
    Looking forward t the update.

    I would be interested in onEnter/onExit oneshot-actions as well, do you plan to add those? I am currently using extra states for those, which gets messy with time.
     
  31. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    What do you mean by oneshot-actions? OnEnter/OnExit methods will come in actions also not only in states.

    By the way here you can get more information of version 1.3 (Please note this is documentation is not fully finished yet)
     
    Last edited: Feb 24, 2014
  32. Pelasgus

    Pelasgus

    Joined:
    Feb 10, 2014
    Posts:
    4
    Hi Zerano, thanks for making this great system, I'm really enjoying using it so far. I have a few questions. My goal is basically to make a simple herd AI behavior.

    1). Can you set multiple targets? For instance, I want the NPCs to group together, so I need to set the other NPCs as a target to follow when they get too far away from each other. However, I also want the NPCs to flee from the player or other dangerous NPCs. This should happen mid-action, whenever the player is close enough to the individual NPC. I haven't been able to find a way to re-set the target while NPC is in the middle of following or walking.

    2). What is the best way to create different behavior patterns or "moods" of the NPCs (relaxed, alert, scared, etc.)? Each "mood" would basically have a unique tree, defining how the NPC operates in that mind-set. Can you set several AI runtime controllers on a single NPC and somehow transition between them? Or, would there be a better way to create varying behavior patterns?

    Anyway, I hope my questions make sense, I'm fairly new to Unity and working with artificial intelligence. Thanks for any thoughts! :D
     
  33. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    1. This will be possible in an easy way in version 1.3 since you will be able to use global parameters for targets.
    2. This is currently not possible, but will be in future.
     
  34. Pelasgus

    Pelasgus

    Joined:
    Feb 10, 2014
    Posts:
    4
    Thanks, sounds good! I look forward to the next update!
     
  35. Arbelzapf

    Arbelzapf

    Joined:
    Sep 30, 2013
    Posts:
    58
    I just meant to stress that they are called only once. Thanks for the additional info.

    I don't spend much time with my AI project and I'm mainly doing networking if I have any free time for Unity at all :) But I will check out the update as soon asd it comes out .
     
  36. wendymorrison

    wendymorrison

    Joined:
    Jan 6, 2014
    Posts:
    246
    Thankyou for that I will be waiting for a new tutorial. In the mean time I will keep trying to work it out. I love this system.
     
  37. Ramsdal

    Ramsdal

    Joined:
    Oct 18, 2013
    Posts:
    251
    Hi, any news on the PlayMaker support?
     
  38. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    PlayMaker should work pretty well with this system, but if you tell me exactly what you would like to see, i can check it out. I have not that much experience with playmaker, but i would still try it.
     
  39. Baldinoboy

    Baldinoboy

    Joined:
    Apr 14, 2012
    Posts:
    1,524
    I am having a problem with the character seeing me. In the demo scene the enemy spots me a shoots at me. In my custom scene using the exact character the enemy does not notice me unless I shoot him. Just wondering what I am forgetting.

    Also wondering if there is a way to smoothly replace a dead character with a ragdoll. I got the ragdoll to spawn and to destroy the character but the ragdoll is in the T pose when spawned. I understand why that is happening just do not know if there is a easy way to fix that.

    Thanks
     
    Last edited: Feb 23, 2014
  40. ChaneDev

    ChaneDev

    Joined:
    Feb 12, 2013
    Posts:
    66
    Regarding PlayMaker, I just setup my character controller PlayMaker script driving my Mecanim Animation Controller. To do this you need to also import the Mecanim Animator actions. This might give you an idea how Jean worked through driving Mecanim parameters through PlayMaker.

    Add On Page: Mecanim
    https://hutonggames.fogbugz.com/default.asp?W714

    API Reference:
    https://hutonggames.fogbugz.com/default.asp?W127

    Here is the section on writing custom actions:
    https://hutonggames.fogbugz.com/default.asp?W166

    I am not totally sure on the coding side, but in layman terms I would like to have an action that sends a message to the AIRuntimeController Behavior that checks for if the player hit, and to get and set the health attribute on the enemy character.

    I.e. The player swings a sword, through PlayMaker script I detect the collision, and then send a (I hit something) message from PlayMaker to Mechanim AI System that the monster was hit. The monster would then transition to the appropriate state.

    In a more general sense being able to get and set conditions in Mechamim AI System would be super helpful.

    A good test case would be to setup your GetHit example to be driven through PlayMaker instead of your Player Controller Combat script.

    Thanks
    ~C
     
  41. kimsama

    kimsama

    Joined:
    Jan 2, 2009
    Posts:
    166
    There is a "page is not found" error on the link of version 1.3
     
  42. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    I already submitted the beta version to the asset store and updated the original link that can be found here: Documentation
     
  43. Mikie

    Mikie

    Joined:
    Dec 27, 2011
    Posts:
    367
    The asset store has v1.2b. 1.3 when?
     
  44. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    It was accepted, please note this is still a beta version. You should backup your project before importing it. I am also very sorry to let you all know that you can not upgrade your created AIController from v1.2b to 1.3 Beta. All states, conditions, actions have their own scripts now, so no endless switch statements. Please read the documentation file and maybe watch the tutorials for getting started with version 1.3 Beta.

    By the way here is a full 2D example, not perfect at all at the moment, but a progress on integrating 2D Support.

    2D Follow and Walk
     
  45. wendymorrison

    wendymorrison

    Joined:
    Jan 6, 2014
    Posts:
    246
    Hi I got the new update and it still really good. I don't know if any one has this problem but in the pdf i click on the video tutorials and there is no sound. So was there meant to be sound or not. I have had this same problem with your tutorials on youtube but when i have viewed your old tutorials on this page the sound comes out. Every other things i look up on youtube the sound works fine.
     
  46. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    Hi, thank you, i just checked the sound and everything is working. Yes there should be a sound.
     
  47. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
  48. DigitalAdam

    DigitalAdam

    Joined:
    Jul 18, 2007
    Posts:
    1,196
    I can't seem to get "LineOfSight" working. I have 'Ignore Raycast" and "Enemy" layers un-checked. Everything else seems to work if I remove the LineOfSight condition, the enemy then begins to follow me. Thoughts?
     

    Attached Files:

    • $los.gif
      $los.gif
      File size:
      136.6 KB
      Views:
      1,056
  49. DevionGames

    DevionGames

    Joined:
    Feb 22, 2010
    Posts:
    1,624
    Have you seen this video?(if yes, could you check the layer of your enemy and see if it is unchecked in the LineOfSight condition mask.) Does your player has a collider?

     
  50. DigitalAdam

    DigitalAdam

    Joined:
    Jul 18, 2007
    Posts:
    1,196
    I followed everything exactly as show in the vid, and I made sure the layers are correct. Do I need a collider on my player?