private void Update() { if (AgentWithFocus == null) { AgentWithFocus = GameObject.FindObjectOfType <BaseAgentController>(); } }
private void Start() { for (int i = 0; i < agentObjectDefs.Length; i++) { BaseAgentController agent = CreateAgent("Agent: " + i + " " + agentObjectDefs[i].prefab.name, agentObjectDefs[i]); if (i == 0) { director.AgentWithFocus = agent; } } }
private static Vector3 GetSpawnPositionCandidate(BaseAgentController controller) { float border = Terrain.activeTerrain.terrainData.size.x / 10; float x = Random.Range(border, Terrain.activeTerrain.terrainData.size.x - border); float z = Random.Range(border, Terrain.activeTerrain.terrainData.size.z - border); Vector3 position = new Vector3(x, 0, z); float y = Terrain.activeTerrain.SampleHeight(position); position.y = y + controller.MovementController.heightOffset; return(position); }
internal override void InstantiatePrefab() { base.InstantiatePrefab(); BaseAgentController controller = Instance.GetComponent <BaseAgentController>(); if (controller) { controller.Settings = this; } Instance.name = agentName; PositionOnGround(Instance.transform.position); }
/// <summary> /// Create an agent. /// </summary> /// <returns></returns> private BaseAgentController CreateAgent(string name, AgentScriptableObject def) { GameObject agent = GameObject.Instantiate(def.prefab).gameObject; agent.name = name; BaseAgentController controller = agent.GetComponent <BaseAgentController>(); Renderer renderer = agent.GetComponent <Renderer>(); if (renderer != null) { renderer.enabled = def.render; } Vector3 position = GetSpawnPositionCandidate(controller); agent.transform.position = position; return(controller); }
public virtual void Awake() { baseAgentController = transform.GetComponent <BaseAgentController>(); GameObject gameManager = GameObject.FindGameObjectWithTag("GameController"); prafabHolder = gameManager.GetComponent <PrafabHolder>(); aiUtils = gameManager.GetComponentInChildren <AIUtils>(); animationController = transform.GetComponentInChildren <CustomAnimationController>(); eventHelper = transform.GetComponentInChildren <SimpleEventHelper>(); shootPoint = aiUtils.GetShootPoint(transform); player = GameObject.FindGameObjectWithTag("Player"); currentRole = GetComponent <Enemy>(); currentRole.statusManager.notifyStatusChange += OnStatusChange; eventHelper.notifyGetHit += OnGetHit; currentState = AIState.IDLE; stateStartTime = Time.time; progress = AIProgress.END; resetPatrolPoint(); }