public void DeactivateWorker(Worker worker) { var prefab = Instantiate(removerPrefab) as GameObject; var position = worker.transform.position; position.z = 1.0f; position.y += 1.0f; prefab.transform.position = position; worker.GiveTask(null); worker.transform.position = Vector3.zero; // Temp position just to hide offscreen. worker.gameObject.SetActive(false); _inactiveWorkers.Enqueue(worker); }
/// <summary> /// Gets the WorkerInfo associated with the Worker for this room. /// If none exists, a new one is created and returned. /// </summary> /// <param name="worker">Who to check for</param> /// <returns>The WorkerInfo for the passed Worker</returns> protected WorkerInfo GetWorkerInfo(Worker worker) { for (var i = 0; i < _allWorkers.Count; i++) if (_allWorkers[i].worker == worker) return _allWorkers[i]; // It's a new Worker in the room so generate an // 'information card' about it. var newInfo = new WorkerInfo(worker, -1); worker.GiveTask(null); worker.transform.parent = transform; _allWorkers.Add(newInfo); return newInfo; }