예제 #1
0
    // Update is called once per frame
    void Spawn()
    {
        randTarget = Random.Range(0, 2);
        randPos.x  = Random.Range(-8, 8);
        randPos.y  = Random.Range(-4, 3.5f);

        if (randTarget == 1)
        {
            targetPooler.SpawnFromPool("Target", randPos, Quaternion.identity);
        }
        else
        {
            targetPooler.SpawnFromPool("HighValue", randPos, Quaternion.identity);
        }
    }
예제 #2
0
    void Update()
    {
        #region 觸控控制
        for (int i = 0; i < Input.touchCount; i++)
        {
            Vector3 touchPosition = Camera.main.ScreenToWorldPoint(Input.touches[i].position);

            RaycastHit2D hit = Physics2D.Raycast(touchPosition, Camera.main.transform.forward);

            if (hit.collider != null)
            {
                if (Input.touches[i].phase == TouchPhase.Began)
                {
                    if (hit.collider.GetComponent <TouchObject>() != null)
                    {
                        hit.collider.GetComponent <TouchObject>().EnterHit();
                    }
                    if (hit.collider.GetComponent <Boss>() != null)
                    {
                        hit.collider.GetComponent <Boss>().EnterHit(hit.point);
                    }
                }
            }
        }
        #endregion

        #region 打擊物件
        if (!BossFight)
        {
            t += Time.deltaTime;
            if (t >= frequency && isPlaying)
            {
                int r = Random.Range(0, Holes.Length);
                targetPooler.SpawnFromPool("Client1", Holes[r].transform.position);

                t = 0;
            }
        }
        #endregion

        #region UI數值顯示
        scoreText.text = "Score : " + score.ToString();

        if (isPlaying)
        {
            playTime -= Time.deltaTime;
            if (playTime <= 0)
            {
                playTime = timeLimit;
                StageClear();
            }
        }

        if (!BossFight)
        {
            timerText.text = ((int)playTime).ToString();
        }
        else
        {
            timerText.text = "";
        }

        if (playTime <= 10 && goal - score > 0)
        {
            goalLeftAlert.text = (goal - score).ToString() + " Left";
        }
        else
        {
            goalLeftAlert.text = "";
        }
        #endregion
    }