Beispiel #1
0
    //計算処理
    private void serchTag()
    {
        EnemyList.RemoveAll(a => !a);

        if (EnemyList.Count == 0)
        {
            return;
        }

        float     d = Vector3.SqrMagnitude(transform.position - EnemyList[0].position);
        Transform e = EnemyList[0];

        for (int i = 1; i < EnemyList.Count; i++)
        {
            float _d = Vector3.SqrMagnitude(transform.position - EnemyList[i].position);

            if (_d < d)
            {
                d = _d;
                e = EnemyList[i];
            }
        }

        if (Input.GetMouseButton(0))
        {
            AudioManager.Instance.PlaySE("eat");
            eatClick = true;
            enemMark = e.GetComponent <EnemyEatMark>();
            if (enemMark != null)
            {
                enemMark.EnableMark();
            }
        }
    }
Beispiel #2
0
    void OnTriggerStay(Collider other)
    {
        // 範囲内に入ったものが、敵以外なら処理から抜ける
        if (other.gameObject.tag != "Enemy")
        {
            return;
        }

        /* 敵ならば、プレイヤーの大きさと
         * その敵の大きさを比較する */
        // 自分のほうが大きければ、捕食可能
        if (other.transform.lossyScale.x < this.transform.lossyScale.x)
        {
            //Debug.Log("捕食可能");
            canEat = true;

            enemyScale = other.transform.lossyScale.x;
            upScale    = other.transform.localScale.x / UpScaleDivision; // 敵のスケールを割る
            enemyPos   = other.transform;
            //if (Input.GetMouseButton(0))
            //{
            //    AudioManager.Instance.PlaySE("eat");
            //    eatClick = true;
            //    enemMark = other.GetComponent<EnemyEatMark>();
            //    if(enemMark != null) enemMark.EnableMark();
            //}

            //リストにタグEnemyと捕食可能Enemyを追加
            EnemyList.Add(other.transform);
        }
        else // プレイヤーのほうが小さかったら
        {
            enemMark = other.GetComponent <EnemyEatMark>();
            if (enemMark != null)
            {
                enemMark.EnableDangerMark();
            }
            canEat = false;
            //Debug.Log("捕食不可能");
        }
    }
Beispiel #3
0
    public void ChildOnCollisionEnter(Collider col)
    {
        //Debug.Log(canEat);
        if (col.gameObject.tag == "Enemy" && canEat)
        {
            this.gameObject.transform.localScale +=
                new Vector3(upScale, upScale, upScale); // その割ったスケールをプレイヤーに足す
            playerStatus.RecoveryHangry(enemyScale);    // 腹減り度の回復
            smoothFollow.ChangeDistance(upScale / 1.5f);
            eatClick = false;
            canEat   = false;

            enemMark = null;
            Destroy(col.gameObject);
        }
        else if (col.gameObject.tag == "Enemy" && !canEat)
        {   // 敵のほうが大きかったら死亡
            //chara.SetActive(false);
            playerStatus.DeadType(true);
            playerStatus.DamageHangry(150);
        }
    }