Exemple #1
0
 /// <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;
     }
 }
Exemple #2
0
    /// <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;
        }
    }