예제 #1
0
 private void GetInstantiateWing(int wingId, WingBody dataWing, Action <GameObject> loaded)
 {
     if (string.IsNullOrEmpty(dataWing.prefabPath))
     {
         if (loaded != null)
         {
             loaded.Invoke(null);
         }
         return;
     }
     this.LoadAsset(wingId, dataWing.prefabPath, EquipCustomization.EquipType.Wing, delegate(bool isSuccess)
     {
         if (!isSuccess)
         {
             if (loaded != null)
             {
                 loaded.Invoke(null);
             }
             return;
         }
         if (loaded != null)
         {
             loaded.Invoke(EquipCustomizationTool.GetInstantiate(dataWing.prefabPath));
         }
     });
 }
예제 #2
0
 private void InstantiateEquipWeapon(int equipId, EquipBody dataEB, Action <GameObject, GameObject> loaded)
 {
     if (string.IsNullOrEmpty(dataEB.prefabPath))
     {
         if (loaded != null)
         {
             loaded.Invoke(null, null);
         }
         return;
     }
     this.LoadAsset(equipId, dataEB.prefabPath, EquipCustomization.EquipType.Equip, delegate(bool isSuccess)
     {
         if (!isSuccess)
         {
             if (loaded != null)
             {
                 loaded.Invoke(null, null);
             }
             return;
         }
         if (string.IsNullOrEmpty(dataEB.prefabPath2))
         {
             if (loaded != null)
             {
                 loaded.Invoke(EquipCustomizationTool.GetInstantiate(dataEB.prefabPath), null);
             }
             return;
         }
         this.LoadAsset(equipId, dataEB.prefabPath2, EquipCustomization.EquipType.Equip, delegate(bool isSuccess2)
         {
             if (!isSuccess2)
             {
                 if (loaded != null)
                 {
                     loaded.Invoke(EquipCustomizationTool.GetInstantiate(dataEB.prefabPath), null);
                 }
                 return;
             }
             if (loaded != null)
             {
                 loaded.Invoke(EquipCustomizationTool.GetInstantiate(dataEB.prefabPath), EquipCustomizationTool.GetInstantiate(dataEB.prefabPath2));
             }
         });
     });
 }
예제 #3
0
 private void DoEquipClothes(int equipId, EquipBody dataEB, Action <bool> finished)
 {
     EquipCustomizationTool.GetInstantiateClothes(dataEB, delegate(SkinnedMeshRenderer renderer)
     {
         if (this.ActorTarget == null)
         {
             finished.Invoke(false);
             return;
         }
         if (equipId != this.mClothesId)
         {
             finished.Invoke(false);
             return;
         }
         Transform transform = XUtility.RecursiveFindTransform(this.ActorTarget.get_transform(), dataEB.slot);
         if (transform == null)
         {
             Debug.LogError("slot is no find, GameData.EquipBody id = " + dataEB.id);
             finished.Invoke(false);
             return;
         }
         SkinnedMeshRenderer component = transform.GetComponent <SkinnedMeshRenderer>();
         if (renderer != null)
         {
             component.set_sharedMesh(renderer.get_sharedMesh());
             List <Transform> list = new List <Transform>();
             for (int i = 0; i < renderer.get_bones().Length; i++)
             {
                 Transform transform2 = XUtility.RecursiveFindTransform(this.ActorTarget.get_transform(), renderer.get_bones()[i].get_name());
                 list.Add(transform2);
             }
             component.set_bones(list.ToArray());
             component.set_shadowCastingMode(0);
             component.set_receiveShadows(false);
             component.set_useLightProbes(false);
             component.set_material(renderer.get_sharedMaterial());
         }
         if (finished != null)
         {
             finished.Invoke(true);
         }
     });
 }
예제 #4
0
 private void DoEquipWeapons(int equipId, EquipBody dataEB, Action <bool> finished)
 {
     this.InstantiateEquipWeapon(equipId, dataEB, delegate(GameObject weapon1, GameObject weapon2)
     {
         if (this.ActorTarget == null)
         {
             this.ClearWeaponTemp(weapon1, weapon2);
             finished.Invoke(false);
             return;
         }
         if (!this.VerifyWeapon(equipId))
         {
             this.ClearWeaponTemp(weapon1, weapon2);
             finished.Invoke(false);
             return;
         }
         if (weapon1 == null)
         {
             this.ClearWeaponTemp(weapon1, weapon2);
             finished.Invoke(false);
             return;
         }
         this.ClearWeapons();
         if (weapon1 != null)
         {
             EquipCustomizationTool.SetLayer(weapon1, this.ActorTarget);
             ShadowController.SetShadowModelRender2Child(this.ActorTarget.get_transform(), weapon1.get_transform(), false);
             this.m_goWeapons.Add(weapon1);
             this.SetWeapon2Slot(this.GetWeaponSlotRealName(dataEB.slot), true);
         }
         if (weapon2 != null)
         {
             EquipCustomizationTool.SetLayer(weapon2, this.ActorTarget);
             ShadowController.SetShadowModelRender2Child(this.ActorTarget.get_transform(), weapon2.get_transform(), false);
             this.m_goWeapons.Add(weapon2);
             this.SetWeapon2Slot(this.GetWeaponSlotRealName(dataEB.slot), true);
         }
         if (finished != null)
         {
             finished.Invoke(weapon1 != null);
         }
     });
 }
예제 #5
0
 private void InstantiateEquipWing(int wingId, WingBody dataWing, Action <bool> finished)
 {
     this.GetInstantiateWing(wingId, dataWing, delegate(GameObject goInstantiate1)
     {
         if (this.ActorTarget == null)
         {
             finished.Invoke(false);
             return;
         }
         if (!this.VerifyWing(wingId))
         {
             if (goInstantiate1 != null)
             {
                 Object.Destroy(goInstantiate1);
             }
             finished.Invoke(false);
             return;
         }
         if (goInstantiate1 == null)
         {
             finished.Invoke(false);
             return;
         }
         this.ClearWing();
         if (goInstantiate1 != null)
         {
             EquipCustomizationTool.SetLayer(goInstantiate1, this.ActorTarget);
             ShadowController.SetShadowModelRender2Child(this.ActorTarget.get_transform(), goInstantiate1.get_transform(), false);
             this.m_goWing = goInstantiate1;
             this.SetWing2Slot();
         }
         if (finished != null)
         {
             finished.Invoke(goInstantiate1 != null);
         }
     });
 }