mirror of
				https://github.com/DerTyp7/grow-ai-unity.git
				synced 2025-11-04 06:48:58 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System.Collections.Generic;
 | 
						|
 | 
						|
namespace UnityEngine.AI
 | 
						|
{
 | 
						|
    [ExecuteInEditMode]
 | 
						|
    [AddComponentMenu("Navigation/NavMeshModifier", 32)]
 | 
						|
    [HelpURL("https://github.com/Unity-Technologies/NavMeshComponents#documentation-draft")]
 | 
						|
    public class NavMeshModifier : MonoBehaviour
 | 
						|
    {
 | 
						|
        [SerializeField]
 | 
						|
        bool m_OverrideArea;
 | 
						|
        public bool overrideArea { get { return m_OverrideArea; } set { m_OverrideArea = value; } }
 | 
						|
 | 
						|
        [SerializeField]
 | 
						|
        int m_Area;
 | 
						|
        public int area { get { return m_Area; } set { m_Area = value; } }
 | 
						|
 | 
						|
        [SerializeField]
 | 
						|
        bool m_IgnoreFromBuild;
 | 
						|
        public bool ignoreFromBuild { get { return m_IgnoreFromBuild; } set { m_IgnoreFromBuild = value; } }
 | 
						|
 | 
						|
        // List of agent types the modifier is applied for.
 | 
						|
        // Special values: empty == None, m_AffectedAgents[0] =-1 == All.
 | 
						|
        [SerializeField]
 | 
						|
        List<int> m_AffectedAgents = new List<int>(new int[] { -1 });    // Default value is All
 | 
						|
 | 
						|
        static readonly List<NavMeshModifier> s_NavMeshModifiers = new List<NavMeshModifier>();
 | 
						|
 | 
						|
        public static List<NavMeshModifier> activeModifiers
 | 
						|
        {
 | 
						|
            get { return s_NavMeshModifiers; }
 | 
						|
        }
 | 
						|
 | 
						|
        void OnEnable()
 | 
						|
        {
 | 
						|
            if (!s_NavMeshModifiers.Contains(this))
 | 
						|
                s_NavMeshModifiers.Add(this);
 | 
						|
        }
 | 
						|
 | 
						|
        void OnDisable()
 | 
						|
        {
 | 
						|
            s_NavMeshModifiers.Remove(this);
 | 
						|
        }
 | 
						|
 | 
						|
        public bool AffectsAgentType(int agentTypeID)
 | 
						|
        {
 | 
						|
            if (m_AffectedAgents.Count == 0)
 | 
						|
                return false;
 | 
						|
            if (m_AffectedAgents[0] == -1)
 | 
						|
                return true;
 | 
						|
            return m_AffectedAgents.IndexOf(agentTypeID) != -1;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |