Esempio n. 1
0
 void Awake()
 {
     _instance = this;
     width     = GetComponent <RectTransform>().rect.width;
     height    = GetComponent <RectTransform>().rect.height;
 }
Esempio n. 2
0
    void Update()
    {
        for (int i = 0; i < 1; i++)
        {
            if (Input.GetMouseButtonDown(0))
            {
                ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out hit, 9999f, (1 << LayerMask.NameToLayer("Line"))))
                {
                    obj      = hit.collider.gameObject;
                    hitpoint = hit.point;
                    if (obj.name == "Line")
                    {
                        if (Mathf.Abs(player.transform.position.x - hitpoint.x) < 3)
                        {
                            onplayermove = true;
                            player.transform.position = new Vector3(hitpoint.x + 0.50f, player.transform.position.y, player.transform.position.z);
                        }
                    }
                }
                else
                {
                    onplayermove = false;
                    ray          = new Ray(player.transform.position, Vector3.forward);
                    if (Physics.Raycast(ray, out hit))
                    {
                        hitpoint = hit.point;
                        obj      = hit.collider.gameObject;
                        if (hit.transform.tag == "ClickNote")
                        {
                            NoteResultType res = CheckClickResult(hitpoint.z);
                            Debug.Log(res);
                            if (res != NoteResultType.Unknown)
                            {
                                Destroy(hit.collider.gameObject);
                                noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position, getColor(res));
                            }
                        }
                        if (hit.transform.tag == "FlickNote")
                        {
                            flickres = CheckClickResult(hitpoint.z);
                            if (flickres != NoteResultType.Unknown)
                            {
                                curnote = hit.transform.gameObject;
                            }
                            Debug.Log(flickres);
                            if (fingerTouchState == FINGER_STATE_NULL)
                            {
                                fingerTouchState = FINGER_STATE_TOUCH;
                                fingerBeginX     = Input.mousePosition.x;
                                fingerBeginY     = Input.mousePosition.y;
                            }
                        }
                    }
                }
            }
            if (Input.GetMouseButton(0))
            {
                if (onplayermove)
                {
                    ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                    if (Physics.Raycast(ray, out hit, 9999f, (1 << LayerMask.NameToLayer("Line"))))
                    {
                        //Debug.Log(hit.collider.gameObject.name);
                        obj      = hit.collider.gameObject;
                        hitpoint = hit.point;
                        if (obj.name == "Line")
                        {
                            if (Mathf.Abs(player.transform.position.x - hitpoint.x) < 10)
                            {
                                player.transform.position = new Vector3(hitpoint.x + 0.50f, player.transform.position.y, player.transform.position.z);
                            }
                            else
                            {
                                onplayermove = false;
                            }
                        }
                        else
                        {
                            onplayermove = false;
                        }
                    }
                    else
                    {
                        onplayermove = false;
                    }
                }
                if (fingerTouchState == FINGER_STATE_TOUCH)
                {
                    fingerCurrentX = Input.mousePosition.x;
                    fingerCurrentY = Input.mousePosition.y;
                    fingerSegmentX = fingerCurrentX - fingerBeginX;
                    fingerSegmentY = fingerCurrentY - fingerBeginY;
                    float fingerDistance = fingerSegmentX * fingerSegmentX + fingerSegmentY * fingerSegmentY;
                    if (fingerDistance > (fingerActionSensitivity * fingerActionSensitivity))
                    {
                        Debug.Log(flickres);
                        fingerTouchState = FINGER_STATE_ADD;
                        if (Mathf.Abs(fingerSegmentX) > Mathf.Abs(fingerSegmentY))
                        {
                            fingerSegmentY = 0;
                        }
                        else
                        {
                            fingerSegmentX = 0;
                        }
                        if (fingerSegmentX == 0)
                        {
                            if (fingerSegmentY > 0)
                            {
                                Debug.Log("up");
                                if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 2)
                                {
                                    Destroy(curnote);
                                    noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position);
                                }
                            }
                            else
                            {
                                Debug.Log("down");
                                if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 4)
                                {
                                    Destroy(curnote);
                                    noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position);
                                }
                            }
                        }
                        else if (fingerSegmentY == 0)
                        {
                            if (fingerSegmentX > 0)
                            {
                                Debug.Log("right");
                                animator.SetBool("onMoveRight", true);
                                if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 1)
                                {
                                    Destroy(curnote);
                                    noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position);
                                }
                            }
                            else
                            {
                                Debug.Log("left");
                                animator.SetBool("onMoveLeft", true);
                                if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 3)
                                {
                                    Destroy(curnote);
                                    noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position);
                                }
                            }
                        }
                    }
                }
            }
            if (Input.GetMouseButtonUp(0))
            {
                fingerTouchState = FINGER_STATE_NULL;
                onplayermove     = false;
                animator.SetBool("onMoveRight", false);
                animator.SetBool("onMoveLeft", false);
            }
            if (Input.GetKeyDown(KeyCode.Space))
            {
                ray = new Ray(player.transform.position - new Vector3(0.50f, 0, 0), Vector3.forward);
                if (Physics.Raycast(ray, out hit))
                {
                    hitpoint = hit.point;
                    obj      = hit.collider.gameObject;
                    if (hit.transform.tag == "ClickNote")
                    {
                        animator.SetBool("onBlockNormal", true);
                        NoteResultType res = CheckClickResult(hitpoint.z);
                        Debug.Log(res);
                        if (res != NoteResultType.Unknown)
                        {
                            Destroy(hit.collider.gameObject);
                            GUIhp.UpdateHP(-0.002f);
                            noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position, getColor(res));
                        }
                    }
                }
            }
            else
            {
                animator.SetBool("onBlockNormal", false);
            }
            if (Input.GetKeyDown(KeyCode.W) || Input.GetKeyDown(KeyCode.A) || Input.GetKeyDown(KeyCode.S) || Input.GetKeyDown(KeyCode.D))
            {
                if (Input.GetKeyDown(KeyCode.W))
                {
                    curkey = KeyCode.W;
                }
                if (Input.GetKeyDown(KeyCode.A))
                {
                    curkey = KeyCode.A;
                }
                if (Input.GetKeyDown(KeyCode.S))
                {
                    curkey = KeyCode.S;
                }
                if (Input.GetKeyDown(KeyCode.D))
                {
                    curkey = KeyCode.D;
                }
                ray = new Ray(player.transform.position - new Vector3(0.50f, 0, 0), Vector3.forward);
                if (Physics.Raycast(ray, out hit))
                {
                    hitpoint = hit.point;
                    obj      = hit.collider.gameObject;
                    if (hit.transform.tag == "FlickNote")
                    {
                        animator.SetBool("onBlockUp", true);
                        flickres = CheckClickResult(hitpoint.z);
                        if (flickres != NoteResultType.Unknown)
                        {
                            curnote = obj;
                        }
                        Debug.Log(flickres);
                        switch (curkey)
                        {
                        case KeyCode.D:
                            if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 1)
                            {
                                GUIhp.UpdateHP(-0.003f);
                                Destroy(curnote);
                                noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position);
                            }
                            break;

                        case KeyCode.W:
                            if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 2)
                            {
                                GUIhp.UpdateHP(-0.003f);
                                Destroy(curnote);
                                noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position);
                            }
                            break;

                        case KeyCode.A:
                            if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 3)
                            {
                                GUIhp.UpdateHP(-0.003f);
                                Destroy(curnote);
                                noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position);
                            }
                            break;

                        case KeyCode.S:
                            if (curnote && curnote.GetComponent <FlickNoteAct>().flickdir == 4)
                            {
                                GUIhp.UpdateHP(-0.0031f);
                                Destroy(curnote);
                                noteeffectcontroller.GetComponent <NoteEffectCotroller>().instance.effect(obj.transform.position);
                            }
                            break;
                        }
                    }
                }
            }
            else
            {
                animator.SetBool("onBlockUp", false);
            }
        }
    }