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); }
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_)); } }
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); }