Exemplo n.º 1
0
    void Update()
    {
        if (GetComponent <ObjectEventManager>().doCancel)    //선택 취소
        {
            GetComponent <ObjectEventManager>().doCancel   = false;
            marker.GetComponent <SpriteRenderer>().enabled = false;
        }

        if (GetComponent <ObjectEventManager>().doEvent)                                  //클릭 이벤트 발생
        {
            ObjectEventManager.CancelAllSelectWithOutObject(transform.parent.gameObject); //다른 오브젝트 선택 해제
            Camera.main.GetComponent <EventListener>().ResetSelectPlayer();               //플레이어 선택 해제
            GetComponent <ObjectEventManager>().doEvent = false;
            //Marker 활성화/비활성화
            marker.GetComponent <SpriteRenderer>().enabled = !marker.GetComponent <SpriteRenderer>().enabled;

            if (marker.GetComponent <SpriteRenderer>().enabled)
            {
                kitchenUI.GetComponent <KitchenUI>().ChangeViewUI(TITLE.DISHING);   //Marker 활성화 시 주방의 UI를 Dishing으로 전환
            }
            else
            {
                kitchenUI.GetComponent <KitchenUI>().ChangeViewUI(TITLE.NONE);   //Marker 비활성화 시 주방의 UI를 초기화
            }
        }
    }
Exemplo n.º 2
0
    void Update()
    {
        if (GetComponent <ObjectEventManager>().doCancel)    //선택 취소
        {
            GetComponent <ObjectEventManager>().doCancel   = false;
            marker.GetComponent <SpriteRenderer>().enabled = false;
            IngredientUI.ResetActiveAllExprirationDate();   //재료 유통기한 표시 비활성화
        }

        if (GetComponent <ObjectEventManager>().doEvent)                                  //클릭 이벤트 발생
        {
            ObjectEventManager.CancelAllSelectWithOutObject(transform.parent.gameObject); //다른 오브젝트 선택 해제
            Camera.main.GetComponent <EventListener>().ResetSelectPlayer();               //플레이어 선택 해제
            GetComponent <ObjectEventManager>().doEvent = false;
            //Marker 활성화/비활성화
            marker.GetComponent <SpriteRenderer>().enabled = !marker.GetComponent <SpriteRenderer>().enabled;

            IngredientUI.ResetActiveAllExprirationDate();   //재료 유통기한 표시 비활성화
            //Marker 활성화 시 UI도 활성화
            if (marker.GetComponent <SpriteRenderer>().enabled)
            {
                kitchenUI.GetComponent <KitchenUI>().ChangeViewUI(TITLE.STORAGE);   //Marker 활성화 시 주방의 UI를 Cook로 전환
                GetComponentInParent <Storage>().ChangeViewRefrPages(transform.parent.gameObject);
            }
            //Marker 비활성화 시 UI도 비활성화
            else
            {
                kitchenUI.GetComponent <KitchenUI>().ChangeViewUI(TITLE.NONE);   //Marker 비활성화 시 주방의 UI를 초기화
            }
        }
    }
Exemplo n.º 3
0
    public static void CancelAllSelectObject()  //모든 오브젝트의 선택 해제
    {
        GameObject[]       objects      = GameObject.FindGameObjectsWithTag("Object");
        ObjectEventManager eventManager = null;

        for (int i = 0; i < objects.Length; i++)
        {
            eventManager = objects[i].GetComponentInChildren <ObjectEventManager>();
            if (eventManager != null)
            {
                eventManager.CancelSelectObject();
            }
        }

        GameObject.Find("KitchenUI").GetComponent <KitchenUI>().ChangeViewUI(TITLE.NONE);
    }
Exemplo n.º 4
0
    void Update()
    {
        if (GetComponent <ObjectEventManager>().doCancel)    //선택 취소
        {
            GetComponent <ObjectEventManager>().doCancel   = false;
            marker.GetComponent <SpriteRenderer>().enabled = false;
        }

        if (GetComponent <ObjectEventManager>().doEvent)                                  //클릭 이벤트 발생
        {
            ObjectEventManager.CancelAllSelectWithOutObject(transform.parent.gameObject); //다른 오브젝트 선택 해제
            Camera.main.GetComponent <EventListener>().ResetSelectPlayer();               //플레이어 선택 해제
            GetComponent <ObjectEventManager>().doEvent = false;
            //Marker 활성화/비활성화
            marker.GetComponent <SpriteRenderer>().enabled = !marker.GetComponent <SpriteRenderer>().enabled;

            if (marker.GetComponent <SpriteRenderer>().enabled)
            {
                kitchenUI.GetComponent <KitchenUI>().ChangeViewUI(TITLE.COOK);   //Marker 활성화 시 주방의 UI를 Cook로 전환
            }
            else
            {
                kitchenUI.GetComponent <KitchenUI>().ChangeViewUI(TITLE.NONE);   //Marker 비활성화 시 주방의 UI를 초기화
            }
        }

        if (targetPlayer != null)
        {
            if (doWorkEvent)    //작업 이벤트 발생
            {
                doWorkEvent  = false;
                doCook       = true;
                accessGround = GetAccessGround();
                targetPlayer.GetComponent <MyCharacterMove>().MoveThisGround(accessGround);
            }

            if (doCook && menu != null)
            {
                ProcessingWorkEvent();
            }
            else if (endCook)
            {
                endCook = false;
                CompleteCookMenu();
            }
        }
    }
Exemplo n.º 5
0
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            isClickUI           = false;
            selectedGround      = null;
            selectedOtherObject = null;
            clickPos            = Camera.main.ScreenToWorldPoint(Input.mousePosition); //메인 카메라 화면 기준 좌표

            //플레이어 오브젝트 선택(클릭)
            CastRayOnMouseClick();
            if (!isClickUI) //UI를 클릭한 것이 아닌 경우
            {
                //플레이어 오브젝트의 이동
                if (selectedPlayer != null && selectedGround != null && !isClickPlayer)
                {
                    if (!selectedPlayer.GetComponentInChildren <PlayerCharacterAnimation>().isWorking)
                    {   //작업중이 아니라면
                        selectedPlayer.GetComponent <MyCharacterMove>().MoveThisGround(selectedGround);
                    }
                }

                //플레이어를 제외한 오브젝트들의 종합 이벤트 처리 함수 호출
                if (selectedOtherObject != null)
                {
                    selectedOtherObject.GetComponent <ObjectEventManager>().OnClickThisObject(selectedPlayer);
                }
            }

            selectedOtherObject = null;
            selectedGround      = null;
        }

        if (Input.GetButtonDown("Cancel"))
        {  //ESC키를 누르거나 화면이 전환되면 선택 해제
            isClickPlayer = false;
            isClickUI     = false;
            if (selectedPlayer != null)
            {
                selectedPlayer.transform.GetChild(1).gameObject.SetActive(false);
            }
            selectedPlayer      = null;
            selectedGround      = null;
            selectedOtherObject = null;
            ObjectEventManager.CancelAllSelectObject();
        }
    }
Exemplo n.º 6
0
    public void ToggleViewKitchenToHall()
    {
        int i;

        //카메라 전환
        hallCamera.enabled = true;
        hallCamera.depth   = -1;
        hallCamera.GetComponent <EventListener>().enabled = true;
        kitchenCamera.enabled = false;
        kitchenCamera.depth   = -2;
        kitchenCamera.GetComponent <EventListener>().enabled = false;
        //플레이어 선택 해제
        kitchenCamera.GetComponent <EventListener>().ResetSelectPlayer();
        hallCamera.GetComponent <EventListener>().ResetSelectPlayer();
        //플레이어들의 현재 필드를 체크하여 갱신
        for (i = 0; i < Camera.main.GetComponent <EventListener>().playableCharacterObjects.Length; i++)
        {
            Camera.main.GetComponent <EventListener>().playableCharacterObjects[i].GetComponent <MyCharacterMove>().CheckField();
        }
        //Kitchen의 모든 스프라이트 해제(리소스 최소화)
        SpriteRenderer[] spriteInHall    = hallMasterObject.GetComponentsInChildren <SpriteRenderer>();
        SpriteRenderer[] spriteInKitchen = kitchenMasterObject.GetComponentsInChildren <SpriteRenderer>();

        for (i = 0; i < spriteInHall.Length; i++)
        {
            if (spriteInHall[i].gameObject.CompareTag("Marker"))
            {
                continue;
            }
            spriteInHall[i].enabled = true;
        }
        for (i = 0; i < spriteInKitchen.Length; i++)
        {
            if (spriteInKitchen[i].gameObject.CompareTag("Marker"))
            {
                continue;
            }
            spriteInKitchen[i].enabled = false;
        }

        GameObject.Find("KitchenUI").GetComponent <KitchenUI>().ChangeViewUI(TITLE.NONE);
        ObjectEventManager.CancelAllSelectObject();
    }
Exemplo n.º 7
0
    public static void CancelAllSelectWithOutObject(GameObject obj)   //지정 오브젝트를 제외한 모든 오브젝트 선택 해제
    {
        GameObject[]       objects      = GameObject.FindGameObjectsWithTag("Object");
        ObjectEventManager eventManager = null;

        for (int i = 0; i < objects.Length; i++)
        {
            if (objects[i] == obj)
            {
                continue;
            }                                       //예외지정 오브젝트는 스킵함

            eventManager = objects[i].GetComponentInChildren <ObjectEventManager>();
            if (eventManager != null)
            {
                eventManager.CancelSelectObject();
            }
        }

        GameObject.Find("KitchenUI").GetComponent <KitchenUI>().ChangeViewUI(TITLE.NONE);
    }
Exemplo n.º 8
0
    void CastRayOnMouseClick() // 유닛 히트처리 부분.  레이를 쏴서 처리합니다.
    {
        RaycastHit2D[] hit         = Physics2D.RaycastAll(clickPos, Vector2.zero, 0f);
        bool           onHitPlayer = false;
        bool           onHitObject = false;

        if (hit.Length > 0)
        { //히트되었다면 여기서 실행
            for (int i = 0; i < hit.Length; i++)
            {
                //플레이어가 선택된 경우
                if (hit[i].collider.gameObject.CompareTag("Player"))
                {
                    if (hit[i].transform.GetComponent <PlayerCharacterAnimation>().isWorking)
                    {
                        continue;
                    }                                                                                       //작업중이면 선택하지 못함

                    onHitPlayer = true;
                    if (hit[i].transform.parent.gameObject != selectedPlayer)
                    {
                        isClickPlayer = true;
                    }                                                                                    //이전에 선택한 캐릭터와 다른 캐릭터를 클릭한 경우
                    else
                    {
                        isClickPlayer = false;
                    }                                //이전 선택한 캐릭터와 동일한 캐릭터를 클릭한 경우
                    selectedPlayer = hit[i].collider.gameObject.transform.parent.gameObject;
                    selectedPlayer.transform.GetChild(1).gameObject.SetActive(true);

                    for (int j = 0; j < playableCharacterObjects.Length; j++)   //오직 한명의 플레이어만이 선택되도록 함
                    {
                        if (playableCharacterObjects[j] != selectedPlayer)
                        {
                            playableCharacterObjects[j].transform.GetChild(1).gameObject.SetActive(false);
                        }
                    }
                }
                else
                {
                    if (hit[i].collider.gameObject.CompareTag("SpriteInObject"))    //특정 오브젝트인 경우
                    {
                        selectedOtherObject = hit[i].collider.gameObject;
                        onHitObject         = true;
                    }

                    if (hit[i].collider.gameObject.CompareTag("Ground"))
                    {
                        selectedGround = hit[i].collider.gameObject;
                        if (isClickPlayer)
                        {   //플레이어를 클릭한 이후의 클릭부터 이동 가능 -> 클릭하자마자 이동하는 것을 방지
                            isClickPlayer  = false;
                            selectedGround = null;
                        }
                    }

                    if (hit[i].collider.CompareTag("UI"))
                    {
                        isClickUI = true;
                    }                                                           //UI 클릭 시
                }
            }  //for문 끝

            if (onHitPlayer && onHitObject)
            {   //플레이어와 오브젝트가 동시에 클릭된 경우 (스프라이트 곂쳐짐)
                //더 뒤쪽에 있는 게임 오브젝트를 무시함

                if (selectedPlayer.transform.position.y
                    < selectedOtherObject.transform.position.y)
                {
                    ObjectEventManager.CancelAllSelectObject(); //전체 오브젝트 선택 해제
                    selectedOtherObject = null;
                }
                else
                {   //플레이어 선택 해제
                    ResetSelectPlayer();
                }
            }
            else if (onHitPlayer)
            {
                ObjectEventManager.CancelAllSelectObject();
            }
        }
    }                               //hit처리 완료