コード例 #1
0
            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;
                        }
                    }
                }
            }
コード例 #2
0
 public void OnLoadPartObjectSucess(SceneObjectEntity entity, UnityObject unityObj)
 {
     if (!Vertify(entity, unityObj))
     {
         CheckLoadingState(entity);
         return;
     }
     entity.multiUnityObject.CacheAssetObject(unityObj);
     if (unityObj.AsGameObject != null)
     {
         var partAssetData = entity.weaponAttachment.PartAssetDict[unityObj.Address];
         partAssetData.PartLocation = WeaponTypeConvertUtil.GetLocationByPartType((EWeaponPartType)partAssetData.PartSlotType);
         partAssetData.UnityObject  = unityObj;
         entity.weaponAttachment.PartAssetDict[unityObj.Address] = partAssetData;
         AppearanceUtils.EnableRender(unityObj.AsGameObject);
     }
     CheckLoadingState(entity);
 }