Beispiel #1
0
    void Update()
    {
        // フレームごとに総合時間から減算
        fTotalTime += Time.deltaTime;

        // キャストした総合時間を秒数に代入
        iSecond = (int)fTotalTime;

        // テキストに秒数を表示
        //tTimer.text = iSecond.ToString("00");

        float gatetime = CLevelManager.Instance.Get_fGateTime();
        float rad      = fTotalTime / gatetime * 360;

        //Debug.Log(fRotationSpeed);

        gSecondHand.transform.eulerAngles = new Vector3(90.0f, 0.0f, -rad);
        //gSecondHand.transform.Rotate(0, 0, rad);

        //if (GameObject.Find(gGate.name + "(Clone)")) {
        //tTimer.text = "00";
        //}

        /* 下限値の設定
         * if (iSecond <= 0) {
         *  tTimer.text = "00";
         *  fTotalTime = 0.0f;
         * }*/

        // 時間が来たらまたはプレイヤsss.ーの意思で回収
        if (fTotalTime >= gatetime || Input.GetKeyDown(KeyCode.Return) || Input.GetButtonDown(stButton0Name))
        {
            // ゲートが二つ出るのを防ぐ
            if (GameObject.Find(gGate.name + "(Clone)") == null)
            {
                List <GameObject> list = csObjectManager.Get_gObjectList();

                if (list.Count > 0)
                {
                    OBJECT_SHAPE order = csOrderManager.Get_Order(0);

                    // 指令の最初のオブジェクトの位置にゲートを出す
                    GameObject first = null;

                    int i;
                    for (i = 0; i < list.Count; i++)
                    {
                        if (list[i].GetComponent <CRotateObject>().Get_Shape() == order)
                        {
                            first = list[i];
                            break;
                        }
                    }

                    if (i < list.Count)
                    {
                        float deg    = first.GetComponent <CRotateObject>().Get_fDegree();
                        float subdeg = first.GetComponent <CRotateObject>().Get_fDegreeSub();
                        deg += 30;
                        Vector3 pos;

                        if (deg >= 330 && deg <= 690)
                        {
                            subdeg = 180;
                        }
                        else
                        {
                            subdeg = 0.0f;
                        }
                        if (deg >= 330 && deg <= 690)
                        {
                            if (deg <= 400 && deg >= 330)
                            {
                                subdeg = 180 + (400 - deg) * 3.0f;
                            }
                        }
                        else
                        {
                            if (deg <= 760 && deg >= 690)
                            {
                                subdeg = (760 - deg) * 3.0f;
                            }
                        }

                        pos.x = 7 * Mathf.Sin((deg + 180) * Mathf.Deg2Rad)
                                + 2 * Mathf.Cos(subdeg * Mathf.Deg2Rad) * Mathf.Sin((deg + 180) * Mathf.Deg2Rad);

                        pos.y = 2 * Mathf.Sin(subdeg * Mathf.Deg2Rad);

                        pos.z = 7 * Mathf.Cos((deg + 180) * Mathf.Deg2Rad)
                                + 2 * Mathf.Cos(subdeg * Mathf.Deg2Rad) * Mathf.Cos((deg + 180) * Mathf.Deg2Rad);

                        GameObject gate = Instantiate(gGate, pos, Quaternion.Euler(0, 90, 0));

                        CGate         cs  = gate.GetComponent <CGate>();
                        CRotateObject cro = first.GetComponent <CRotateObject>();

                        if (deg >= 330 && deg <= 690)
                        {
                            cs.Set_State(RotateState.INSIDE);

                            if (deg <= 400 && deg >= 330)
                            {
                                cs.Set_isInverse(true);
                                cs.Set_fDegreeSub(180 + (400 - deg) * 3.0f);
                            }
                        }
                        else
                        {
                            cs.Set_State(RotateState.OUTSIDE);
                            if (deg <= 760 && deg >= 690)
                            {
                                cs.Set_isInverse(true);
                                cs.Set_fDegreeSub((760 - deg) * 3.0f);
                            }
                        }

                        cs.Set_fDegree(deg);
                    }
                }
            }


            fTotalTime = gatetime;
        }
    }
Beispiel #2
0
    void OnTriggerEnter(Collider col)
    {
        // �ʉ߃I�u�W�F�N�g����
        if (col.gameObject.tag == "RotateObject")
        {
            GetComponent <CCreateEffect>().CreateEffect();

            OBJECT_SHAPE order = csOrderManager.Get_Order(iPassNum);

            // �w�߂ƈ�v
            if (order == col.gameObject.GetComponent <CRotateObject>().Get_Shape())
            {
                iMatchNum++;
                CClearLampManager.Instance.Lighting(iPassNum, Color.green);
            }
            else
            {
                CClearLampManager.Instance.Lighting(iPassNum, Color.red);
            }

            // �ʉ߂����I�u�W�F�N�g��폜
            CObjectManager.Instance.Remove(col.gameObject);
            Destroy(col.gameObject);
            //Debug.Log("hit");

            iPassNum++;

            int ordernum = csOrderManager.Get_iOrderNum();

            // �w�ߐ��̃I�u�W�F�N�g���ʉ߂����烊�Z�b�g
            if (iPassNum == ordernum)
            {
                if (iMatchNum == ordernum)
                {
                    // �N���A�X�^���v����
                    //Instantiate(gClear, new Vector3(20, 0, -10 + iClearNum * 5),
                    //    Quaternion.Euler(0, 180, 0));

                    //========== 2021/5/09
                    // �X�R�A��L�^����̂ɕK�v�Ȃ̂ő����܂����@by���X��
                    CScore.AddScore();
                    CCreateTrail.Create();
                    //-- 2021.5.15�lj� sasaki
                    gPanelGreen.SetActive(true);

                    //Debug.Log("SE!!");
                    aAudioSourceGreen.PlayOneShot(aSEClear);

                    CLevelManager.Instance.UpdateLevel();
                    // �w�ߐ���
                    csOrderManager.CreateOrder(CLevelManager.Instance.Get_iOrderNum());
                    CClearLampManager.Instance.CreateLamp(CLevelManager.Instance.Get_iOrderNum());
                    iClearNum++;
                }
                else
                {
                    //-- 2021.5.15�lj� sasaki
                    gPanelRed.SetActive(true);

                    //Debug.Log("SE!!");
                    aAudioSourceRed.PlayOneShot(aSEMiss);
                }
                // �V�����I�u�W�F�N�g����
                CObjectManager.Instance.Create(ordernum);
                CClearLampManager.Instance.LightingOff();

                csGateTimerController.Reset();
                gGateTimerController.transform.LookAt(new Vector3(0, 0, 10));
                Destroy(this.gameObject);
            }
        }
    }
Beispiel #3
0
    void OnTriggerEnter(Collider col)
    {
        // �ʉ߃I�u�W�F�N�g����
        if (col.gameObject.tag == "RotateObject")
        {
            GetComponent <CCreateEffect>().CreateEffect();

            GameObject   lamp  = csOrderManager.Get_gClearLamp(iPassNum);
            OBJECT_SHAPE order = csOrderManager.Get_Order(iPassNum);

            // �w�߂ƈ�v
            if (order == col.gameObject.GetComponent <CRotateObject>().Get_Shape())
            {
                iMatchNum++;
                lamp.GetComponent <Renderer>().material.color = Color.green;
            }
            else
            {
                lamp.GetComponent <Renderer>().material.color = Color.red;
            }

            // �ʉ߂����I�u�W�F�N�g��폜
            CObjectManager.Instance.Remove(col.gameObject);
            CObjectManager.Instance.AcceleRemove(col.gameObject);
            Destroy(col.gameObject);
            Debug.Log("hit");

            iPassNum++;

            int ordernum = csOrderManager.Get_iOrderNum();

            // �w�ߐ��̃I�u�W�F�N�g���ʉ߂����烊�Z�b�g
            if (iPassNum == ordernum)
            {
                if (iMatchNum == ordernum)
                {
                    // �N���A�X�^���v����
                    //Instantiate(gClear, new Vector3(20, 0, -10 + iClearNum * 5),
                    //    Quaternion.Euler(0, 180, 0));

                    //========== 2021/5/09
                    // �X�R�A��L�^����̂ɕK�v�Ȃ̂ő����܂����@by���X��
                    //CScore.AddScore();
                    CCreateTrail.Create();
                    //-- 2021.5.15�lj� sasaki
                    gPanelGreen.SetActive(true);

                    // �w�ߐ���
                    csOrderManager.CreateOrder(3);
                    iClearNum++;
                }
                else
                {
                    for (int i = 0; i < ordernum; i++)
                    {
                        GameObject l = csOrderManager.Get_gClearLamp(i);
                        l.GetComponent <Renderer>().material.color = Color.white;
                    }
                    //-- 2021.5.15�lj� sasaki
                    gPanelRed.SetActive(true);
                }
                // �V�����I�u�W�F�N�g����
                CObjectManager.Instance.Create(3);

                csGateTimerController.Reset();
                gGateTimerController.transform.LookAt(new Vector3(0, 0, 10));
                Destroy(this.gameObject);
            }
        }
    }