Ejemplo n.º 1
0
    void Start()
    {
        //もぐらたたき処理
        this.UpdateAsObservable().Where(_ => GameStatus.Instance.GetGameStart()).Subscribe(_ =>
        {
            TouchInfo touchInfo = AppUtil.GetTouch();

            if (touchInfo == TouchInfo.Began)
            {
                Ray ray = Camera.main.ScreenPointToRay(AppUtil.GetTouchPosition());
                RaycastHit hit;

                if (Physics.Raycast(ray, out hit, rayDistance))
                {
                    if (hit.collider.gameObject.name.Contains("Mole"))
                    {
                        //SE再生
                        MoleSE.PlayOneShot(MoleSE.clip);
                        //エフェクト生成
                        effectCon.CreateObj(hit.collider.gameObject.transform.position, Quaternion.identity);
                        GameStatus.Instance.Score.Value++;//スコア加算
                        GameStatus.Instance.NowCount--;
                        hit.collider.gameObject.GetComponent <NormalMole>().Hole.IsEmergenceMole.Value = false;
                        hit.collider.gameObject.GetComponent <NormalMole>().Hole = null;
                        hit.collider.gameObject.SetActive(false);//もぐら非表示
                    }
                }
            }
        });
    }
Ejemplo n.º 2
0
 public void Death()
 {
     gameObject.SetActive(false);
     ShotButton.interactable = false;
     SoundController.Instance.PlaySE(PlayerSE, 3);
     effectController.CreateObj(transform.position, Quaternion.identity);
     //ゲームオーバー画面表示
     scoreController.GameOverObj.gameObject.SetActive(true);
     scoreController.GameOverObj.rectTransform.DOAnchorPosY(0, 1.0f);
 }
Ejemplo n.º 3
0
 public void Create()
 {
     if (IsSwingWidth)
     {
         Vector3 point = new Vector3(Random.Range(MinX, MaxX), transform.position.y, transform.position.z);
         poolController.CreateObj(point, Quaternion.identity);
     }
     else
     {
         GameObject obj = poolController.GetPoolObj(transform.position, transform.rotation);
         obj.transform.SetParent(transform);
     }
 }
Ejemplo n.º 4
0
 public override void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.tag == "Meteorite")
     {
         collision.gameObject.SetActive(false);
         gameObject.SetActive(false);
         PlayerStatus.Instance.Score.Value += 10;
         poolEffect.CreateObj(collision.transform.position, Quaternion.identity);
     }
     else if (collision.tag == "Enemy")
     {
         collision.gameObject.SetActive(false);
         gameObject.SetActive(false);
         PlayerStatus.Instance.Score.Value += 20;
         poolEffect.CreateObj(collision.transform.position, Quaternion.identity);
     }
     else if (collision.tag == "Boss")
     {
         gameObject.SetActive(false);
         PlayerStatus.Instance.Damage(collision.gameObject);
         PlayerStatus.Instance.Score.Value += 30;
         collision.GetComponent <BossEnemy>().BossLife.Value--;
     }
 }
Ejemplo n.º 5
0
    void Update()
    {
        //移動処理
        TouchInfo touchInfo = TouchUtil.GetTouch();

        if (touchInfo == TouchInfo.Began && !PlayerStatus.Instance.IsDamage)
        {
            Move();
        }

        //弾丸処理
        if (poolController.IsCreate())
        {
            poolController.CreateObj(poolController.AttachPoint.position, poolController.AttachPoint.rotation);
            SoundController.Instance.PlaySE(PlayerSE, 2);
        }

        //死亡処理
        if (PlayerStatus.Instance.PlayerHp.Value <= 0.0f)
        {
            Death();
        }
    }