private void Awake() { m_aiAgent = GetComponent <NavMeshAgent>(); m_aiAgent.speed = m_movementSpeed; m_aiAgent.updateRotation = false; float randDogSpawn = Random.Range(0.0f, 100.0f); if (randDogSpawn <= m_dogSpawnChance) { m_hasDog = true; Instantiate(m_dogPrefab, new Vector3(transform.position.x + m_dogSpawnXoffSet, transform.position.y, transform.position.z), Quaternion.identity, transform); } LeaveMotive leaveMotive = ScriptableObject.CreateInstance <LeaveMotive>() as LeaveMotive; m_motiveDictionary.Add(Motive.Type.LeaveMotive, leaveMotive); m_motiveDictionary.Add(Motive.Type.RestMotive, ScriptableObject.CreateInstance <RestMotive>()); m_motiveDictionary.Add(Motive.Type.ShopMotive, ScriptableObject.CreateInstance <ShopMotive>()); m_motiveDictionary.Add(Motive.Type.EatMotive, ScriptableObject.CreateInstance <EatMotive>()); leaveMotive.SetRestMotive(m_motiveDictionary[Motive.Type.RestMotive]); //------------------------------------------------Debug #if UNITY_EDITOR m_debugCanvas = GameObject.Find("PatronDebugCanvas"); #endif //-----------------------------------------------Debug }
// Use this for initialization void Start() { m_navAgent = GetComponent <NavMeshAgent>(); m_shopMotive = GetComponent <ShopMotive>(); m_eatMotive = GetComponent <EatMotive>(); m_restMotive = GetComponent <RestMotive>(); m_leaveMotive = GetComponent <LeaveMotive>(); m_socialMotive = GetComponent <SocialMotive>(); // simulate different walking speeds float tempSpeed = UnityEngine.Random.Range(m_navAgent.speed - m_speedVariation, m_navAgent.speed + m_speedVariation); m_navAgent.speed = tempSpeed; m_motives = new MotiveBase[] { m_shopMotive, m_eatMotive, m_restMotive, m_leaveMotive, m_socialMotive }; if (!m_navAgent) { Debug.LogError("no nav mesh agent component"); } m_history = new HistoryFrame[m_histSize]; }