Ejemplo n.º 1
0
    private void makeOne(int x, int y, int len, bool isH)
    {
        int rid = MathUtils.randomBoolean() ? _wall1Rid : _wall2Rid;

        GameObject wall = AssetPoolControl.getAssetAndIncrease(AssetPoolType.SceneEffect, rid);

        wall.SetActive(true);
        wall.transform.SetParent(_wallRoot.transform);

        if (isH)
        {
            wall.transform.position         = new Vector3(Global.mapBlockSize * (x + len * 0.5f), 0, Global.mapBlockSize * (y + 0.5f));
            wall.transform.localScale       = new Vector3(len, 1f, 1f);
            wall.transform.localEulerAngles = new Vector3(0f, 0f, 0);
        }
        else
        {
            wall.transform.position         = new Vector3(Global.mapBlockSize * (x + 0.5f), 0, Global.mapBlockSize * (y + len * 0.5f));
            wall.transform.localScale       = new Vector3(len, 1f, 1f);
            wall.transform.localEulerAngles = new Vector3(0f, 90f, 0);
        }

        _wallList.add(new GWall()
        {
            rid = rid, obj = wall
        });
    }
Ejemplo n.º 2
0
    public override void init()
    {
        base.init();

        //TODO:绑定层级

        _gameObject = AssetPoolControl.getCustomAsset(AssetPoolType.UnitMain, AssetCustomType.UnitMainObj);

        _gameObject.name = "unit_" + _unit.instanceID;
        _gameObject.SetActive(true);
        _gameObject.layer = _unit.isHero ? LayerType.Hero : LayerType.Unit;
        _gameObject.transform.SetParent(_scene.show.getUnitLayer().transform);

        _transform = _gameObject.transform;

        _actionID = MotionType.Idle;

        initMainShow();

        if (_unit.canFight())
        {
            BuffData[] values = _data.fightDataLogic.buff.getBuffDatas().getValues();
            BuffData   bData;

            for (int i = values.Length - 1; i >= 0; --i)
            {
                if ((bData = values[i]) != null)
                {
                    addBuffShow(bData);
                }
            }
        }

        playMotionAbs(_actionID);
    }
Ejemplo n.º 3
0
        public void dispose()
        {
            parent._damageShows.remove(instanceID);
            clearTween();

            AssetPoolControl.unloadOne(AssetPoolType.SceneFrontUI, parent._damageResourceID, gameObject);
            parent._damagePool.back(this);
        }
Ejemplo n.º 4
0
    public override void dispose()
    {
        base.dispose();

        _wallList.forEachAndClear(v =>
        {
            AssetPoolControl.unloadOne(AssetPoolType.SceneEffect, v.rid, v.obj);
        });

        _wallRoot = null;
    }
Ejemplo n.º 5
0
    public override void dispose()
    {
        if (!_effectList.isEmpty())
        {
            SList <UnitEffect> unitEffects = _effectList;
            UnitEffect         effect;

            for (int i = unitEffects.size() - 1; i >= 0; --i)
            {
                effect = unitEffects[i];
                effect.dispose();
                GameC.pool.unitEffectPool.back(effect);
            }

            unitEffects.clear();
        }

        _effectNumDic.clear();

        disposeMainShow();

        //析构GameObject
        _transform = null;

        //TODO:拆掉Part


        _modelLoadTool.clear();

        AssetPoolLoadTool[] values;
        AssetPoolLoadTool   v;

        for (int i = (values = _partLoadToolDic.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                v.clear();
            }
        }

        AssetPoolControl.unloadOne(AssetPoolType.UnitMain, AssetCustomType.UnitMainObj, _gameObject);
        _gameObject = null;

        _actionID    = MotionType.Idle;
        _showModelID = -1;
        _modelReady  = false;
        _partDic.clear();
        _partReady.clear();

        clearMotion();

        base.dispose();
    }
Ejemplo n.º 6
0
    public override void dispose()
    {
        base.dispose();

        if (_model != null)
        {
            _model.doDispose();
        }

        AssetPoolControl.unloadOne(AssetPoolType.UnitHead, _resourceID, _gameObject);
        _gameObject     = null;
        _resourceID     = -1;
        _mainCameraTool = null;
        _camera         = null;
        _dirty          = true;
    }
Ejemplo n.º 7
0
    protected DamageNumShow createDamageNumShow(int damageType, int damageValue)
    {
        DamageNumShow show       = _damagePool.getOne();
        GameObject    gameObject = AssetPoolControl.getAssetAndIncrease(AssetPoolType.SceneFrontUI, _damageResourceID);

        show.instanceID = ++_damageInstanceID;
        show.parent     = this;
        show.gameObject = gameObject;
        gameObject.SetActive(true);
        gameObject.transform.SetParent(_scene.show.getFrontUIRoot());

        _damageShows.put(show.instanceID, show);

        makeDamageNum(gameObject, damageType, damageValue);

        return(show);
    }
Ejemplo n.º 8
0
    public virtual void init()
    {
        _frameIndex      = TimeDriver.instance.setFrame(onFrame);
        _fixedFrameIndex = TimeDriver.instance.setFixedUpdate(onFixedUpdate);

        //pool添加
        AssetPoolControl.registPool(AssetPoolType.UnitMain);
        AssetPoolControl.registPool(AssetPoolType.UnitModel);
        AssetPoolControl.registPool(AssetPoolType.UnitPart);
        AssetPoolControl.registPool(AssetPoolType.UnitHead);
        AssetPoolControl.registPool(AssetPoolType.SceneFrontUI);
        AssetPoolControl.registPool(AssetPoolType.SceneEffect);

        AssetPoolControl.registCustomCreate(AssetCustomType.UnitMainObj, () =>
        {
            return(new GameObject());
        });

        //默认直接去login场景
//		returnToLoginScene();
    }