/// <summary> /// 清楚选择 /// </summary> protected void ClearSelect() { //如果是员工 if (selectNpc != null && selectNpc as NpcAIWorkerCpt) { NpcAIWorkerCpt npcAIWorker = selectNpc as NpcAIWorkerCpt; //恢复偷懒 npcAIWorker.SetDazeEnabled(true); } selectNpc = null; selectBed = null; if (dialogSelectView != null) { Destroy(dialogSelectView.gameObject); dialogSelectView = null; } }
/// <summary> /// 选中物体处理 /// </summary> public void HandleForSelect() { if (EventSystem.current.IsPointerOverGameObject()) { return; } //偷懒员工选中处理 NpcAIWorkerCpt workerDaze = HandleForDazeWorker(); if (Input.GetButtonDown(InputInfo.Confirm)) { if (dialogSelectView != null) { return; } Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); //如有已经提前选中了偷懒的员工 if (workerDaze != null) { AudioHandler.Instance.PlaySound(AudioSoundEnum.Fight); workerDaze.SetExpression(CharacterExpressionCpt.CharacterExpressionEnum.Surprise, 3); workerDaze.SetDazeBufferTime(10); workerDaze.SetIntent(NpcAIWorkerCpt.WorkerIntentEnum.Idle); return; } RaycastHit2D[] hitAll = Physics2D.RaycastAll(mousePos, Vector2.zero); foreach (RaycastHit2D itemHit in hitAll) { if (itemHit.collider.transform.tag.Equals(TagInfo.Tag_NpcBody)) { GameObject objSelect = itemHit.collider.gameObject; selectNpc = objSelect.GetComponentInParent <BaseNpcAI>(); if (selectNpc) { AudioHandler.Instance.PlaySound(AudioSoundEnum.ButtonForShow); DialogBean dialogData = new DialogBean(); dialogSelectView = DialogHandler.Instance.CreateDialog <SelectForNpcDialogView>(DialogEnum.SelectForNpc, this, dialogData); ((SelectForNpcDialogView)dialogSelectView).SetData(selectNpc); //如果是员工 if (selectNpc as NpcAIWorkerCpt) { NpcAIWorkerCpt npcAIWorker = selectNpc as NpcAIWorkerCpt; npcAIWorker.SetDazeEnabled(false); } return; } } else if (itemHit.collider.transform.tag.Equals(TagInfo.Tag_Bed)) { GameObject objSelect = itemHit.collider.gameObject; selectBed = objSelect.GetComponentInParent <BuildBedCpt>(); if (selectBed) { AudioHandler.Instance.PlaySound(AudioSoundEnum.ButtonForShow); DialogBean dialogData = new DialogBean(); dialogSelectView = DialogHandler.Instance.CreateDialog <SelectForBedDialogView>(DialogEnum.SelectForBed, this, dialogData); ((SelectForBedDialogView)dialogSelectView).SetData(selectBed); return; } } } selectNpc = null; selectBed = null; } }