void Awake() { NavManagerProvider provider = (NavManagerProvider)FindObjectOfType(typeof(NavManagerProvider)); if (provider == null) { Debug.LogError(string.Format("{0}: There is no {1} in the scene." , name, typeof(NavManagerProvider).Name)); return; } NavManager manager = provider.CreateManager(); if (manager == null) { Debug.LogError(string.Format("{0}: Could not get the navigation manager.", name)); return; } mHelper = manager.NavGroup; //mPath = new BufferHandler<uint>(); isInit = true; }
private bool Initialize() { if (mState != null) { mState.Exit(); } mState = null; NavManagerProvider provider = (NavManagerProvider)FindObjectOfType(typeof(NavManagerProvider)); if (provider == null) { Debug.LogError(string.Format("{0}: There is no {1} in the scene." , name, typeof(NavManagerProvider).Name)); return(false); } NavManager manager = provider.CreateManager(); if (manager == null) { Debug.LogError(string.Format("{0}: Could not get the navigation manager.", name)); return(false); } mHelper = manager.NavGroup; return(true); }
void Start() { NavManagerProvider provider = (NavManagerProvider)FindObjectOfType(typeof(NavManagerProvider)); if (provider == null) { Debug.LogError(string.Format("{0}: There is no {1} in the scene." , name, typeof(NavManagerProvider).Name)); enabled = false; return; } NavManager.ActiveManager = provider.CreateManager(); // Provides error reporting. if (NavManager.ActiveManager == null) { enabled = false; return; } mManager = NavManager.ActiveManager; mNav = mManager.NavGroup; SimGUIUtil.contextHelpText = string.Format( "Agent: Add: [{0}], Select: [{1}], Move Selected: [{2}]" , StdButtons.SetA, StdButtons.SelectB, StdButtons.SelectA); SimGUIUtil.contextControlZone.height = SimGUIUtil.LineHeight + SimGUIUtil.Margin; SimGUIUtil.contextActive = true; }
void Start() { if (agentA == null || agentB == null || agentC == null) { Debug.LogError(name + ": One or more agents are not assigned."); enabled = false; return; } NavManagerProvider provider = (NavManagerProvider)FindObjectOfType(typeof(NavManagerProvider)); if (provider == null) { Debug.LogError(string.Format("{0}: There is no {1} in the scene." , name, typeof(NavManagerProvider).Name)); enabled = false; return; } NavManager.ActiveManager = provider.CreateManager(); // Provides error reporting. if (NavManager.ActiveManager == null) { enabled = false; return; } mManager = NavManager.ActiveManager; mNav = mManager.NavGroup; SimGUIUtil.contextHelpText = string.Format( "Agent: Add: [{0}], Select: [{1}], Move Selected: [{2}]" , StdButtons.SetA, StdButtons.SelectB, StdButtons.SelectA); SimGUIUtil.contextControlZone.height = SimGUIUtil.LineHeight + SimGUIUtil.Margin; SimGUIUtil.contextActive = true; mCam = Camera.main; agentNames = GetComponent <StringList>().values; }
private bool InitializeNav() { NavManagerProvider provider = (NavManagerProvider)FindObjectOfType(typeof(NavManagerProvider)); if (provider == null) { Debug.LogError(string.Format("{0}: There is no {1} in the scene." , name, typeof(NavManagerProvider).Name)); return(false); } NavManager manager = provider.CreateManager(); if (manager == null) { Debug.LogError(string.Format("{0}: Could not get the navigation manager.", name)); return(false); } mGroup = manager.NavGroup; maxPathSize = Mathf.Max(1, maxPathSize); mPath = new BufferHandler <uint>( "Max Path Size", 1, maxPathSize, 1, Mathf.Max(100, maxPathSize)); mPathStart = new NavmeshPoint(); mPathEnd = new NavmeshPoint(); maxCorners = Mathf.Max(1, maxCorners); mCornerPolys = new BufferHandler <uint>("Max Corner Size", 1, maxCorners, 1, Mathf.Max(maxCorners, 20)); HandlePathBufferResize(); return(true); }
/// <summary> /// Controls behavior of the inspector. /// </summary> public override void OnInspectorGUI() { NavManagerProvider targ = (NavManagerProvider)target; INavmeshData navmeshData = targ.NavmeshData; string msg = ""; if (navmeshData == null || !navmeshData.HasNavmesh) { msg = "No navigation mesh.\n"; } if (!targ.AvoidanceSet) { msg += "No avoidance set.\n"; } if (!targ.AgentGroups) { msg += "No agent groups.\n"; } if (msg.Length > 0) { GUILayout.Box(msg.Trim(), EditorUtil.ErrorStyle, GUILayout.ExpandWidth(true)); } EditorGUILayout.Separator(); bool bv = EditorGUILayout.Toggle("Show Mesh", targ.DebugEnabled); if (bv != targ.DebugEnabled) { if (bv) { // Turn off asset draw. org.critterai.nav.u3d.editor.NavmeshSceneDraw.Instance.Hide(); } targ.DebugEnabled = bv; } EditorGUILayout.Separator(); EditorGUILayout.LabelField("Navigation Settings"); EditorGUILayout.Separator(); targ.NavmeshData = NavEditorUtil.OnGUINavmeshDataField("Navmesh Data", targ.NavmeshData); targ.AgentGroups = (AgentGroupSettings)EditorGUILayout.ObjectField( "Agent Groups", targ.AgentGroups, typeof(AgentGroupSettings), false); EditorGUILayout.Separator(); targ.MaxQueryNodes = EditorGUILayout.IntField("Max Query Nodes", targ.MaxQueryNodes); targ.MaxPathSize = EditorGUILayout.IntField("Max Path Size", targ.MaxPathSize); targ.MaxStraightPathSize = EditorGUILayout.IntField("Max Straight Path", targ.MaxStraightPathSize); targ.MaxAgents = EditorGUILayout.IntField("Max Nav Agents", targ.MaxAgents); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Crowd Settings"); EditorGUILayout.Separator(); targ.MaxCrowdAgents = EditorGUILayout.IntField("Max Crowd Agents", targ.MaxCrowdAgents); targ.MaxAgentRadius = EditorGUILayout.FloatField("Max Agent Radius", targ.MaxAgentRadius); EditorGUILayout.Separator(); targ.AvoidanceSet = (CrowdAvoidanceSet)EditorGUILayout.ObjectField( "Avoidance Set", targ.AvoidanceSet, typeof(CrowdAvoidanceSet), false); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Accuracy Settings"); EditorGUILayout.Separator(); targ.Extents = EditorGUILayout.Vector3Field("Extents", targ.Extents); targ.WideExtents = EditorGUILayout.Vector3Field("Wide Extents", targ.WideExtents); EditorGUILayout.Separator(); targ.RadiusAt = EditorGUILayout.FloatField("Radius At", targ.RadiusAt); targ.RadiusNear = EditorGUILayout.FloatField("Radius Near", targ.RadiusNear); targ.HeightTolerance = EditorGUILayout.FloatField("Height Tolerance", targ.HeightTolerance); EditorGUILayout.Separator(); targ.TurnThreshold = EditorGUILayout.FloatField("Turn Threshold", targ.TurnThreshold); targ.AngleAt = EditorGUILayout.FloatField("Angle At", targ.AngleAt); EditorGUILayout.Separator(); EditorGUILayout.Separator(); if (GUI.changed) { EditorUtility.SetDirty(target); } }