コード例 #1
0
    private void UpdateWorking()
    {
        bool destroy = false;

        if (_firingSkillObject != null)
        {
            SkillBombBase skillBomb = _firingSkillObject.GetComponent <SkillBombBase>();
            if (skillBomb != null)
            {
                if (skillBomb.isOver)
                {
                    destroy = true;
                }
            }
        }

        if (destroy)
        {
            MonoBehaviour.DestroyImmediate(_firingSkillObject);
            _firingSkillObject = null;


            MonoBehaviour.DestroyImmediate(_targetAreaObject);
            _targetAreaObject = null;

            _state = STATE.IDLE;
            return;
        }
    }
コード例 #2
0
    IEnumerator createBombs()
    {
        DataSkill dataSkill = _skill.GetDataSkill();
        float     range     = dataSkill.hintRange;

        List <Vector3> offsets = new List <Vector3> ();
        int            n       = COUNT;

        for (int i = 0; i < n; ++i)
        {
            float theta  = RandomHelper.Range01();
            float radius = Mathf.Sqrt(RandomHelper.Range01() * RandomHelper.Range01()) * range;

            float   x = radius * Mathf.Cos(2 * Mathf.PI * theta);
            float   z = radius * Mathf.Sin(2 * Mathf.PI * theta);
            Vector3 v = new Vector3(x, 0, z);

            offsets.Add(v);
        }

        /*
         * Vector3[] dropPositionOffsets = new Vector3[]{
         *
         *      new Vector3 (-range * 0.8f, 0, range * 0.2f),
         *      new Vector3 (-range * 0.8f, 0, -range * 0.2f),
         *      new Vector3 (0, -1000, 0),
         *
         *      new Vector3 (-range * 0.4f, 0, range * 0.4f),
         *      new Vector3 (-range * 0.4f, 0, 0),
         *      new Vector3 (-range * 0.4f, 0, -range * 0.4f),
         *      new Vector3 (0, -1000, 0),
         *
         *      new Vector3 (0, 0, +range * 0.6f),
         *      new Vector3 (0, 0, +range * 0.2f),
         *      new Vector3 (0, 0, -range * 0.2f),
         *      new Vector3 (0, 0, -range * 0.6f),
         *      new Vector3 (0, -1000, 0),
         *
         *      new Vector3 (range * 0.4f, 0, range * 0.4f),
         *      new Vector3 (range * 0.4f, 0, 0),
         *      new Vector3 (range * 0.4f, 0, -range * 0.4f),
         *      new Vector3 (0, -1000, 0),
         *
         *      new Vector3 (range * 0.8f, 0, range * 0.2f),
         *      new Vector3 (range * 0.8f, 0, -range * 0.2f),
         *      new Vector3 (0, -1000, 0),
         *
         * };
         */

        for (int i = 0; i < offsets.Count; i++)
        {
            Vector3 offset = offsets[i];

            GameObject bomoObject = ResourceHelper.Load(AppConfig.FOLDER_PROFAB + "skill/BombAirStrike");
            BattleFactory.AddUnitToLayer(bomoObject, BattleConfig.LAYER.BULLET);

            SkillBombBase bomb = bomoObject.GetComponent <SkillBombBase>();
            bomb.Init(_skill, _targetPosition + offset);

            spawnBombs.Add(bomb);

            yield return(new WaitForSeconds(DROP_INTERVAL));

            /*
             * if(offset.y < 0)
             * {
             *      yield return new WaitForSeconds(DROP_INTERVAL_LONG);
             * }
             * else
             * {
             *      yield return new WaitForSeconds(DROP_INTERVAL_SHORT);
             * }
             */
        }

        _isStart = true;
    }