Exemplo n.º 1
0
 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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 6
0
    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();
    }