public void Attach(WeaponPartLocation partLocation, object partObj, object weaponObj) { var partGo = partObj as GameObject; var weaponGo = weaponObj as GameObject; #if !UnitTest if (Logger.IsDebugEnabled) { Logger.DebugFormat("attach {0} to {1} in {2}", partGo.name, weaponGo.name, partLocation); } #endif if (partLocation != WeaponPartLocation.EndOfTheWorld) { _boneMount.MountWeaponAttachment(partGo, weaponGo, partLocation); } else { #if !UnitTest Logger.ErrorFormat("Location is illegal with item location {0}", partLocation); #endif } ShowWeapon(weaponGo); }
private void AssembleWeapon(SceneObjectEntity entity) { var weaponGo = entity.multiUnityObject.FirstAsset; if (entity.hasWeaponAttachment) { var dic = entity.weaponAttachment.AttachmentDic; foreach (var pair in dic) { var attachGo = entity.multiUnityObject.LoadedAssets[pair.Key]; var location = WeaponPartLocation.EndOfTheWorld; location = WeaponTypeConvertUtil.GetLocationByPartType((EWeaponPartType)pair.Value); if (location != WeaponPartLocation.EndOfTheWorld) { _boneMount.MountWeaponAttachment(attachGo, weaponGo, location); } else { Logger.ErrorFormat("Location is illegal with item type {0}", pair.Value); } } var effectDic = entity.weaponAttachment.EffectDic; if (effectDic.Count > 0) { foreach (var effect in effectDic) { var attachGo = entity.multiUnityObject.LoadedAssets[effect]; attachGo.AsGameObject.transform.position = entity.position.Value; } } } }
private void AssembleWeapon(SceneObjectEntity entity) { var weaponGo = entity.multiUnityObject.FirstAsset; var partAssetDict = entity.weaponAttachment.PartAssetDict; //var attachResList = entity.weaponAttachment.AttachResList; // if (attachResList.Count > 0 && attachResList[0] is Material) // { // Material newMat = GameObject.Instantiate(attachResList[0] as Material); // var renderAssy = weaponGo.GetComponentsInChildren<MeshRenderer>(); // foreach (var render in renderAssy) // { // render.sharedMaterial = newMat; // render.enabled = true; // } // } foreach (var keyPartAssetData in partAssetDict) { if (keyPartAssetData.Value.UnityObject && keyPartAssetData.Value.PartLocation != WeaponPartLocation.EndOfTheWorld) { boneMountUtil.MountWeaponAttachment(keyPartAssetData.Value.UnityObject, weaponGo, keyPartAssetData.Value.PartLocation); } else { SceneObjectLoadSystem.Logger.ErrorFormat("Location is illegal with item type {0}", keyPartAssetData.Value); } // entity.weaponAttachment.EffectAssetList.ForEach( // effectGo => // { // if (effectGo != null && effectGo.AsGameObject) // effectGo.AsGameObject.transform.position = entity.position.Value; // }); } }