Пример #1
0
    void Update()
    {
        /*if (Input.GetKeyDown("space"))
         * {
         *  SaveLoad.Save(SaveCallBack);
         *  GlobalData.loadGame = true;
         *
         *  StartCoroutine("Fader");
         * }*/

        if (player.GetPlayer().moninv.IsEmpty())
        {
            gameover.SetActive(true);
            gameObject.SetActive(false);
        }


        //use bools to make this section go off only if there's a change?
        bool shopisactive = (ShopMain.isActive() || MICollider.isActive() || InvCol.isActive() || BookControl.isActive());

        shop.GetComponent <BoxCollider>().enabled       = !shopisactive;
        fountain.GetComponent <BoxCollider>().enabled   = !shopisactive;
        book.GetComponent <BoxCollider>().enabled       = !shopisactive;
        adventure.GetComponent <BoxCollider>().enabled  = !shopisactive;
        iteminv.GetComponent <BoxCollider>().enabled    = !shopisactive;
        iteminv.GetComponent <SpriteRenderer>().enabled = !shopisactive;
        moninv.GetComponent <SpriteRenderer>().enabled  = !shopisactive;
        moninv.GetComponent <BoxCollider>().enabled     = !shopisactive;
        downtown.GetComponent <BoxCollider>().enabled   = !shopisactive;
        menubut.SetActive(!shopisactive);
        //if (Input.GetKeyDown("space"))
        //print(go == go2);

        if (Input.touchCount == 1 && onehit)
        {
            if (!shopisactive)
            {
                // touch on screen
                if (Input.GetTouch(0).phase == TouchPhase.Began)
                {
                    Ray        ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
                    RaycastHit hit = new RaycastHit();
                    moving = Physics.Raycast(ray, out hit);
                    if (moving)
                    {
                        go = hit.transform.gameObject;
                        //Debug.Log("Touch Detected on : " + go.name);
                    }
                    else
                    {
                        onehit = false;
                    }
                }


                // release touch/dragging
                if ((Input.GetTouch(0).phase == TouchPhase.Ended || Input.GetTouch(0).phase == TouchPhase.Canceled || Input.touchCount != 1) && go != null && onehit)
                {
                    Ray        ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
                    RaycastHit hit = new RaycastHit();
                    moving = Physics.Raycast(ray, out hit);
                    if (moving)
                    {
                        go2 = hit.transform.gameObject;
                    }
                    moving = false;
                    //Debug.Log("Touch Released from : " + go.name);
                    if (go == shop && go == go2)
                    {
                        ShopMain.ShopSet(true);
                    }
                    else if (go == fountain && go == go2)
                    {
                        player.GetPlayer().moninv.HealAll();
                        if (canenter)
                        {
                            StartCoroutine("HealSprite");
                        }
                        //play sound
                        SaveLoad.Save(SaveCallBack);
                    }
                    else if (go == book && go == go2)
                    {
                        BookControl.BookSet(true);
                    }
                    else if (go == adventure && go == go2)
                    {
                        if (player.GetPlayer().moninv.HasAnActive())
                        {
                            SaveLoad.Save(SaveCallBack);
                            GlobalData.loadGame = true;

                            //fader.color = Color.clear;
                            //SceneManager.LoadScene("Adventure");
                            StartCoroutine("Fader", "Adventure");
                        }
                        else
                        {
                            //you need at least one active monster to adventure!
                        }
                    }
                    else if (go == iteminv && go == go2)
                    {
                        InvCol.SetActive(true);
                    }
                    else if (go == moninv && go == go2)
                    {
                        MICollider.SetActive(true);
                    }
                    else if (go == downtown && go == go2)
                    {
                        SaveLoad.Save(SaveCallBack);
                        GlobalData.loadGame = true;
                        StartCoroutine("Fader", "Downtown");
                    }
                }
            }
        }
        else
        {
            go     = null;
            go2    = null;
            onehit = true;
        }
    }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        //close.transform.position = closeplace;
        if (Input.touchCount == 1 && onehit)
        {
            // touch on screen
            if (Input.GetTouch(0).phase == TouchPhase.Began)
            {
                origpos = Input.GetTouch(0).position;
                //fingpos = origpos;
                temp3 = Camera.main.ScreenToWorldPoint(origpos);
                //temp2 = temp3;
                Ray        ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
                RaycastHit hit = new RaycastHit();
                moving = Physics.Raycast(ray, out hit);
                if (moving)
                {
                    go = hit.transform.gameObject;
                }
                else
                {
                    onehit = false;
                }
            }

            //temp1 = fingpos;
            fingpos = Input.GetTouch(0).position;
            temp2   = Camera.main.ScreenToWorldPoint(fingpos);

            //if (temp2.y != temp3.y) //add room for error
            if (go != close)
            {
                if (go == downbut)
                {
                    temp1.y            = Mathf.Lerp(transform.position.y, transform.position.y + 2, Time.deltaTime * 20);
                    transform.position = temp1;
                }
                if (go == upbut)
                {
                    temp1.y            = Mathf.Lerp(transform.position.y, transform.position.y - 2, Time.deltaTime * 20);
                    transform.position = temp1;
                }
            }



            // release touch/dragging
            if ((Input.GetTouch(0).phase == TouchPhase.Ended || Input.GetTouch(0).phase == TouchPhase.Canceled || Input.touchCount != 1) && go != null && onehit)
            {
                Ray        ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
                RaycastHit hit = new RaycastHit();
                moving = Physics.Raycast(ray, out hit);
                if (moving)
                {
                    go2    = hit.transform.gameObject;
                    moving = false;
                }

                if (go == close && go2 == close)
                {
                    close.SetActive(false);
                    upbut.SetActive(false);
                    downbut.SetActive(false);
                    BookControl.BookSet(false);
                }
            }
        }
        else
        {
            go     = null;
            go2    = null;
            onehit = true;
        }
    }