Esempio n. 1
0
    public static Transform FindWidgetOnUI(int widgetId, bool activeSelf = true)
    {
        Transform result = null;
        string    text   = WidgetSystem.FindNameOfUIByWidget(widgetId);

        string[] array = WidgetSystem.FindNameOfWidgetById(widgetId);
        if (!string.IsNullOrEmpty(text) && array != null && array.Length >= 1)
        {
            UIBase uIIfExist = UIManagerControl.Instance.GetUIIfExist(text);
            if (uIIfExist != null)
            {
                if (activeSelf && !uIIfExist.get_gameObject().get_activeSelf())
                {
                    return(null);
                }
                if (array.Length == 1)
                {
                    result = WidgetSystem.FindTransformOfuibase(uIIfExist, GameDataUtils.SplitString4Dot0(array[0]));
                }
                else if (array.Length == 2)
                {
                    Transform transform = WidgetSystem.FindTransformOfuibase(uIIfExist, GameDataUtils.SplitString4Dot0(array[0]));
                    if (transform != null)
                    {
                        result = XUtility.RecursiveFindTransform(transform, GameDataUtils.SplitString4Dot0(array[1]));
                    }
                }
            }
        }
        return(result);
    }
 private void SetWeapon2Slot(string realSlot, bool resetlocal)
 {
     if (string.IsNullOrEmpty(realSlot))
     {
         return;
     }
     this.CurrentSlot = realSlot;
     if (this.m_goWeapons.get_Count() >= 1)
     {
         Transform transform = null;
         if (realSlot != string.Empty)
         {
             transform = XUtility.RecursiveFindTransform(this.ActorTarget.get_transform(), realSlot);
             if (transform == null)
             {
                 return;
             }
         }
         GameObject gameObject = this.m_goWeapons.get_Item(0);
         if (gameObject != null)
         {
             Vector3 localScale = gameObject.get_transform().get_localScale();
             Vector3 position   = gameObject.get_transform().get_position();
             gameObject.get_transform().set_parent(transform);
             gameObject.get_transform().set_position(position);
             if (resetlocal)
             {
                 gameObject.get_transform().set_localPosition(Vector3.get_zero());
                 gameObject.get_transform().set_localEulerAngles(Vector3.get_zero());
                 gameObject.get_transform().set_localScale(localScale);
             }
         }
     }
     if (this.m_goWeapons.get_Count() >= 2)
     {
         Transform transform2 = null;
         if (realSlot != string.Empty)
         {
             transform2 = XUtility.RecursiveFindTransform(this.ActorTarget.get_transform(), realSlot + "2");
             if (transform2 == null)
             {
                 return;
             }
         }
         GameObject gameObject2 = this.m_goWeapons.get_Item(1);
         if (gameObject2 != null)
         {
             Vector3 localScale2 = gameObject2.get_transform().get_localScale();
             Vector3 position2   = gameObject2.get_transform().get_position();
             gameObject2.get_transform().set_parent(transform2);
             gameObject2.get_transform().set_position(position2);
             if (resetlocal)
             {
                 gameObject2.get_transform().set_localPosition(Vector3.get_zero());
                 gameObject2.get_transform().set_localEulerAngles(Vector3.get_zero());
                 gameObject2.get_transform().set_localScale(localScale2);
             }
         }
     }
 }
Esempio n. 3
0
    public static GameObject RecursiveFindGameObject(Transform root, string name)
    {
        Transform transform = XUtility.RecursiveFindTransform(root.get_transform(), name);

        if (transform != null)
        {
            return(transform.get_gameObject());
        }
        return(null);
    }
Esempio n. 4
0
    public static Transform FindTransformOfuibase(UIBase uiBase, string widgetName)
    {
        Transform transform = uiBase.FindTransform(widgetName);

        if (transform != null)
        {
            return(transform);
        }
        return(XUtility.RecursiveFindTransform(uiBase.get_transform(), widgetName));
    }
Esempio n. 5
0
    public void FindWidget()
    {
        UIBase uIIfExist = UIManagerControl.Instance.GetUIIfExist(this.uiName);

        if (uIIfExist != null && uIIfExist.get_gameObject().get_activeSelf())
        {
            Transform transform = XUtility.RecursiveFindTransform(uIIfExist.get_transform(), this.widgetName);
            if (transform != null)
            {
                DepthOfGuide depthOfGuide = transform.get_gameObject().AddUniqueComponent <DepthOfGuide>();
                depthOfGuide.set_enabled(true);
                depthOfGuide.GuideOn();
            }
        }
    }
Esempio n. 6
0
    private void DoChangeSMR(ref SkinnedMeshRenderer dst_smr, ref SkinnedMeshRenderer src_smr)
    {
        dst_smr.set_sharedMesh(src_smr.get_sharedMesh());
        List <Transform> list = new List <Transform>();

        for (int i = 0; i < src_smr.get_bones().Length; i++)
        {
            Transform transform = XUtility.RecursiveFindTransform(base.get_transform(), src_smr.get_bones()[i].get_name());
            list.Add(transform);
        }
        dst_smr.set_bones(list.ToArray());
        dst_smr.set_shadowCastingMode(0);
        dst_smr.set_receiveShadows(false);
        dst_smr.set_useLightProbes(false);
    }
Esempio n. 7
0
    public static Transform RecursiveFindTransform(Transform root, string name)
    {
        Transform transform = root.FindChild(name);

        if (transform == null)
        {
            for (int i = 0; i < root.get_childCount(); i++)
            {
                transform = XUtility.RecursiveFindTransform(root.GetChild(i), name);
                if (transform != null)
                {
                    return(transform);
                }
            }
        }
        return(transform);
    }
Esempio n. 8
0
    public static float GetTop(Transform trans, string name)
    {
        if (trans == null)
        {
            return(0f);
        }
        Transform transform = XUtility.RecursiveFindTransform(trans, name);

        if (transform != null)
        {
            return(transform.get_position().y - trans.get_position().y);
        }
        if (trans.GetComponent <CharacterController>() != null)
        {
            return(trans.GetComponent <CharacterController>().get_height() * 0.5f * trans.get_localScale().y);
        }
        return(0f);
    }
    private void SetWing2Slot()
    {
        Transform transform = XUtility.RecursiveFindTransform(this.ActorTarget.get_transform(), this.GetWingSlotRealName());

        if (transform == null)
        {
            return;
        }
        if (this.m_goWing != null)
        {
            Vector3 localScale = this.m_goWing.get_transform().get_localScale();
            Vector3 position   = this.m_goWing.get_transform().get_position();
            this.m_goWing.get_transform().set_parent(transform);
            this.m_goWing.get_transform().set_position(position);
            this.m_goWing.get_transform().set_localPosition(Vector3.get_zero());
            this.m_goWing.get_transform().set_localEulerAngles(Vector3.get_zero());
            this.m_goWing.get_transform().set_localScale(localScale);
        }
    }
Esempio n. 10
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);
         }
     });
 }
Esempio n. 11
0
 public static void GetInstantiateClothes(EquipBody dataEB, Action <SkinnedMeshRenderer> loaded)
 {
     if (string.IsNullOrEmpty(dataEB.mesh))
     {
         if (loaded != null)
         {
             loaded.Invoke(null);
         }
         return;
     }
     AssetManager.LoadEquipCustomizationAsset(dataEB.mesh.Replace("\\", "/"), delegate(Object meshAsset)
     {
         if (meshAsset == null)
         {
             if (loaded != null)
             {
                 loaded.Invoke(null);
             }
             return;
         }
         GameObject gameObject = meshAsset as GameObject;
         if (gameObject != null)
         {
             Transform transform = XUtility.RecursiveFindTransform(gameObject.get_transform(), dataEB.slot);
             if (transform != null)
             {
                 SkinnedMeshRenderer component = transform.GetComponent <SkinnedMeshRenderer>();
                 if (loaded != null)
                 {
                     loaded.Invoke(component);
                 }
                 return;
             }
         }
         if (loaded != null)
         {
             loaded.Invoke(null);
         }
     });
 }
Esempio n. 12
0
    public void AddSlots()
    {
        if (this.src_go == null)
        {
            Debug.LogError("请指定源预设");
            return;
        }
        GameObject gameObject = Object.Instantiate(this.src_go) as GameObject;

        for (int i = 0; i < this.slot_name_list.Length; i++)
        {
            string    text      = this.slot_name_list[i];
            Transform transform = XUtility.RecursiveFindTransform(gameObject.get_transform(), text);
            if (!(transform == null))
            {
                Transform transform2 = XUtility.RecursiveFindTransform(base.get_transform(), text);
                if (transform2 == null)
                {
                    Transform parent = transform.get_parent();
                    if (!(parent == null))
                    {
                        Transform transform3 = XUtility.RecursiveFindTransform(base.get_transform(), parent.get_name());
                        if (!(transform3 == null))
                        {
                            transform2 = new GameObject(text).get_transform();
                            transform2.SetParent(transform3);
                            transform2.set_localPosition(transform.get_localPosition());
                            transform2.set_localRotation(transform.get_localRotation());
                            transform2.set_localScale(transform.get_localScale());
                        }
                    }
                }
            }
        }
        Object.DestroyImmediate(gameObject);
    }
Esempio n. 13
0
    private void JustPlayfxOnScene(int uid, int templateId, Transform host, Vector3 position, Quaternion rotation, float speed, float scale, int time, bool syncNode, int bulletLife, Action <Actor, XPoint, ActorParent> bulletCallback, Action finishCallback, Action <ActorFX> loadCallback = null, bool sound3D = true, float rate = 1f, FXClassification fxClassification = FXClassification.Normal)
    {
        if (templateId == 900)
        {
            Debug.Log("JustPlayfxOnScene: " + DateTime.get_Now());
        }
        ActorFX actorFX = FXPool.Instance.Get(templateId, fxClassification == FXClassification.LowLod);

        if (actorFX == null)
        {
            return;
        }
        Fx fx = DataReader <Fx> .Get(templateId);

        if (fx == null || string.IsNullOrEmpty(fx.path))
        {
            return;
        }
        this.m_fxs.set_Item(uid, actorFX);
        actorFX.IsLodLow = (fxClassification == FXClassification.LowLod);
        actorFX.AwakeSelf();
        actorFX.uid = uid;
        if (host != null)
        {
            string text = fx.hook;
            if (fx.hook == "weapon_slot" && EntityWorld.Instance.EntSelf != null && !EntityWorld.Instance.EntSelf.IsInBattle)
            {
                text += "_city";
            }
            if (fx.hook == "weapon_slot2" && EntityWorld.Instance.EntSelf != null && !EntityWorld.Instance.EntSelf.IsInBattle)
            {
                text = "weapon_slot_city2";
            }
            if (syncNode)
            {
                if (string.IsNullOrEmpty(text))
                {
                    actorFX.Host = host;
                }
                else
                {
                    Transform transform = XUtility.RecursiveFindTransform(host, text);
                    if (transform == null)
                    {
                        Debug.LogError("mountPoint is null, mountPoint name = " + text);
                    }
                    actorFX.Host = transform;
                }
            }
            else if (string.IsNullOrEmpty(text))
            {
                if (fx.type1 == 3)
                {
                    actorFX.get_transform().set_position(host.get_position());
                }
                else
                {
                    if (actorFX.get_transform().get_parent() != host)
                    {
                        actorFX.get_transform().set_parent(host);
                    }
                    actorFX.get_transform().set_localPosition(position);
                    actorFX.get_transform().set_localRotation(rotation);
                }
            }
            else
            {
                Transform transform2 = XUtility.RecursiveFindTransform(host, text);
                if (fx.type1 == 3)
                {
                    actorFX.get_transform().set_position(transform2.get_position());
                }
                else
                {
                    if (actorFX.get_transform().get_parent() != transform2)
                    {
                        actorFX.get_transform().set_parent(transform2);
                    }
                    actorFX.get_transform().set_localPosition(position);
                    actorFX.get_transform().set_localRotation(rotation);
                }
            }
            actorFX.IsSyncNode = syncNode;
            actorFX.HostRoot   = host;
        }
        else
        {
            actorFX.get_transform().set_position(position);
            actorFX.get_transform().set_rotation(rotation);
        }
        actorFX.Scale = scale;
        actorFX.Speed = speed;
        actorFX.SetFrameRate(rate, false);
        Delay component = actorFX.get_gameObject().GetComponent <Delay>();

        if (component != null)
        {
            component.TriggerDelay();
        }
        else
        {
            actorFX.get_gameObject().SetActive(true);
        }
        actorFX.finishCallback = finishCallback;
        if (bulletCallback != null)
        {
            actorFX.bulletLife     = bulletLife;
            actorFX.bulletCallback = bulletCallback;
        }
        if (time <= 0)
        {
            time = fx.time;
        }
        if (time > 0)
        {
            actorFX.AutoDestroy = false;
            actorFX.SetTimer(time);
        }
        if (SoundManager.Instance != null)
        {
            if (sound3D)
            {
                AudioPlayer audioPlayer = actorFX.get_gameObject().AddUniqueComponent <AudioPlayer>();
                audioPlayer.RoleId = (long)actorFX.InstanceID;
                SoundManager.Instance.PlayPlayer(audioPlayer, fx.audio);
            }
            else
            {
                SoundManager.PlayUI(fx.audio, false);
            }
        }
        this.ResizeIfNeed(uid);
        this.SetSpeedIfNeed(uid);
        if (loadCallback != null)
        {
            loadCallback.Invoke(actorFX);
        }
        if (FXManager.IsPetBorn)
        {
            LayerSystem.SetGameObjectLayer(actorFX.get_gameObject(), "CameraRange", 1);
        }
    }