Example #1
0
    void WeaponAssetLoaded(AssetBundle asset, ParamData data)
    {
        CallBackPack pack = loadedPack_[data.iParam];

        if (pack.actorObj_ == null)
        {
            return;
        }

        Transform bindPoint = null;

        if (EntityAssetsData.GetData((int)pack.weaponAssetId_).bindPoint_.Contains("L"))
        {
            bindPoint = pack.actorObj_.GetComponent <WeaponHand>().weaponLeftHand_;
        }
        else
        {
            bindPoint = pack.actorObj_.GetComponent <WeaponHand>().weaponRightHand_;
        }

        pack.weaponObj_ = (GameObject)GameObject.Instantiate(asset.mainAsset, bindPoint.position, bindPoint.rotation) as GameObject;
        WeaponAssetMgr.DeleteAsset(asset, false);
        pack.weaponObj_.transform.parent = bindPoint;
        pack.actorObj_.GetComponent <UpdateEquiptListener>().SetWeapon(pack.weaponObj_, pack.data_, pack.layerName_);

        NGUITools.SetLayer(pack.actorObj_, LayerMask.NameToLayer(pack.layerName_));
        NGUITools.SetChildLayer(pack.actorObj_.transform, LayerMask.NameToLayer(pack.layerName_));
        if (pack.actorCallBack_ != null)
        {
            pack.actorCallBack_(pack.actorObj_, pack.data_);
        }
        loadedPack_.Remove(pack.uid_);
        pack.actorObj_.SetActive(true);
    }
Example #2
0
    void ActorAssetLoaded(AssetBundle asset, ParamData data)
    {
        CallBackPack pack = loadedPack_[data.iParam];

        pack.actorObj_ = (GameObject)GameObject.Instantiate(asset.mainAsset) as GameObject;
        //PlayerAsseMgr.DeleteAsset(asset, false);
        //不忽略武器更新
        if (!data.bParam)
        {
            UpdateEquiptListener ueListener = pack.actorObj_.AddComponent <UpdateEquiptListener>();
            ueListener.data_ = pack.data_ == null ? null : pack.data_.Clone();
            if (pack.data_ != null && pack.data_.bParam)
            {
                ueListener.data_.iParam = 0;
            }
            if (pack.hasDress_)
            {
                ueListener.dressAssId_ = (int)pack.playerAssetId_;
            }
            ueListener.layerName_ = pack.layerName_;
            ueListener.SetWeapon(pack.weaponObj_, ueListener.data_, pack.layerName_);
            if (!GlobalValue.isBattleScene(StageMgr.Scene_name))
            {
                GamePlayer.Instance.WearEquipEvent += new WearEquipEventHandler(ueListener.UpdateHandler);
                GamePlayer.Instance.DelEquipEvent  += new DelEquipEventHandler(ueListener.RemoveWeaponHandler);
            }
        }

        Transform shadow = pack.actorObj_.transform.FindChild("Plane01");

        if (shadow != null)
        {
            shadow.gameObject.SetActive(pack.layerName_.Equals("Default"));
        }

        if (!pack.hasWeapon_)
        {
            NGUITools.SetLayer(pack.actorObj_, LayerMask.NameToLayer(pack.layerName_));
            NGUITools.SetChildLayer(pack.actorObj_.transform, LayerMask.NameToLayer(pack.layerName_));
            if (pack.actorCallBack_ != null)
            {
                pack.actorCallBack_(pack.actorObj_, pack.data_);
            }
            loadedPack_.Remove(pack.uid_);
        }
        else
        {
            pack.actorObj_.SetActive(false);
            WeaponAssetMgr.LoadAsset(pack.hasDress_? pack.playerAssetId_: (ENTITY_ID)0, pack.weaponAssetId_, WeaponAssetLoaded, new ParamData(pack.uid_));
        }
    }
Example #3
0
    public void UpdateHandler(ENTITY_ID weaponAssetId)
    {
        if ((int)weaponAssetId == 0)
        {
            return;
        }

        weaponAssId_ = weaponAssetId;
        WeaponAssetMgr.LoadAsset((ENTITY_ID)dressAssId_, weaponAssId_, (AssetBundle bundle, ParamData data) =>
        {
            if (hasDestroy)
            {
                WeaponAssetMgr.DeleteAsset(bundle, false);
                return;
            }
            if (weapon_ != null)
            {
                Destroy(weapon_);
                weapon_ = null;
            }
            if (EntityAssetsData.GetData((int)weaponAssetId).bindPoint_.Contains("L"))
            {
                bindPoint_ = gameObject.GetComponent <WeaponHand>().weaponLeftHand_;
            }
            else
            {
                bindPoint_ = gameObject.GetComponent <WeaponHand>().weaponRightHand_;
            }

            weapon_ = (GameObject)GameObject.Instantiate(bundle.mainAsset, bindPoint_.position, bindPoint_.rotation) as GameObject;
            WeaponAssetMgr.DeleteAsset(bundle, false);
            weapon_.transform.parent = bindPoint_;
            //weapon_.transform.localScale = Vector3.one;
            NGUITools.SetChildLayer(transform, LayerMask.NameToLayer(layerName_));
        }, null);
    }