void OnTriggerEnter2D(Collider2D c)
 {
     //Enterなので1体に対して複数回は発生しない
     if (c.gameObject.name.Substring(0, 9) == "charaBase")
     {
         allCharaBase charaB = c.gameObject.GetComponent <allCharaBase> ();
         charaB.setDamage(dealDamade);
     }
 }
    void OnTriggerEnter2D(Collider2D c)
    {
        //void OnTriggerStay2D(Collider2D c){
        if (c.gameObject.name.Substring(0, 9) == "charaBase")
        {
            allCharaBase charaB = c.gameObject.GetComponent <allCharaBase> ();
            charaB.setDamage(dealDamade);

            StartCoroutine(this.colliderDisabled());
        }
    }
예제 #3
0
    IEnumerator mostNearEnemyAttacking()
    {
        Vector3   tmpV;
        float     minLength  = 99999f;
        Transform nearTarget = null;

        //再接近ターゲットの確認
        foreach (Transform t in lastFrameAttackTarget)
        {
            if (t != null)
            {
                tmpV = t.transform.position - this.transform.position;

                if (tmpV.magnitude < minLength)
                {
                    minLength  = tmpV.magnitude;
                    nearTarget = t;
                }
            }
        }

        if (nearTarget == null)
        {
            Debug.Log("isNull!!");
            yield break;
            //稀に破壊されてNullになるため
        }

        allCharaBase charaB = nearTarget.gameObject.GetComponent <allCharaBase> ();

        if (charaB.destroyF == true)
        {
            Debug.Log("isDestoryFlag!!");
            yield break;
        }

        lastFrameAttackTarget.Clear();
        deleyFlag = true;

        if (_animetionPrefabs != null)
        {
            //アニメーションがセットしてある場合
            _animetionPrefabs.enabled = true;
        }

        int tmpDm = 1 + Mathf.FloorToInt(aEB.getAttackingPower() + (Random.value * 2));

        charaB.setDamage(tmpDm);

        if (_attackEffectPrefab != null)
        {
            Instantiate(_attackEffectPrefab, nearTarget.transform.position, Quaternion.identity);
        }

        this.GetComponent <chara_attackEreaVisible>().setVisibleThisCicle();

        //ここで再取得
        thisEnemyAttackDeleySec = aEB.getAttackingDelay();

        StartCoroutine(this.attackDeleyClearer());
    }