Esempio n. 1
0
        private void SpawnCharacter(LocalWorker companyWorker)
        {
            if (SpawnPoints != null && SpawnPoints.Length > 0)
            {
                int        randomIndex     = Random.Range(0, SpawnPoints.Length);
                Transform  randomTransform = SpawnPoints[randomIndex];
                Vector2    spawnPos        = randomTransform.position;
                GameObject newCharacter    = null;

                if (null != CharactersPool)
                {
                    newCharacter = CharactersPool.GetObject();
                }

                if (null == newCharacter)
                {
                    newCharacter = GameObject.Instantiate(CharacterPrefab, spawnPos, Quaternion.identity);
                }

                newCharacter.gameObject.SetActive(true);
                CharacterText textComponent = newCharacter.GetComponentInChildren <CharacterText>();
                textComponent.Text              = string.Format("{0} {1}", companyWorker.Name, companyWorker.Surename);
                companyWorker.AbsenceStarted   += OnWorkerAbsenceStarted;
                companyWorker.AbsenceFinished  += OnWorkerAbsenceFinished;
                companyWorker.PhysicalCharacter = newCharacter;
                SpawnedCharacters.Add(companyWorker);
            }
#if DEVELOPMENT_BUILD || UNITY_EDITOR
            else
            {
                string debugInfo =
                    string.Format("[{0}] Failed to spawn character in game world (no spawn points defined)",
                                  this.GetType().Name,
                                  MAX_SPAWN_RETRIES);
                Debug.Log(debugInfo);
            }
#endif
        }
Esempio n. 2
0
 private void OnControlledCompanyWorkerAdded(LocalWorker companyWorker)
 {
     SpawnCharacter(companyWorker);
 }
Esempio n. 3
0
 private void OnWorkerAbsenceFinished(LocalWorker worker)
 {
     worker.PhysicalCharacter.gameObject.SetActive(true);
 }
Esempio n. 4
0
        /*Public consts fields*/

        /*Public fields*/

        /*Private methods*/

        private void OnControlledCompanyWorkerRemoved(LocalWorker companyWorker)
        {
            RemoveCharacter(companyWorker);
        }
Esempio n. 5
0
 private void OnWorkerAbsenceStarted(LocalWorker worker)
 {
     worker.PhysicalCharacter.gameObject.SetActive(false);
 }