示例#1
0
    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
    }
示例#2
0
    // 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];
    }