public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        BipedIKAnimator csa = (BipedIKAnimator)target;

        GUILayout.BeginVertical("Box");

        if (GUILayout.Button("Set Default Weights Setting1"))
        {
            csa.SetDefaultWeightsSetting1(csa.containBones("Main/RootCopy/Root_M/BackA_M"));
        }
        if (GUILayout.Button("Set Default Weights Setting2"))
        {
            csa.SetDefaultWeightsSetting2(csa.containBones("Main/RootCopy/Root_M/BackA_M"));
        }
        if (GUILayout.Button("Set Default Weights Setting3"))
        {
            csa.SetDefaultWeightsSetting3(csa.containBones("Main/RootCopy/Root_M/BackA_M"));
        }
        if (GUILayout.Button("Load Bone Blend Config"))
        {
            string path = EditorUtility.OpenFilePanel("Load Bone Blend Config", Application.dataPath, "bfg");
            csa.LoadSetting(path);
        }

        if (GUILayout.Button("Save Bone Blend Config"))
        {
            string path = EditorUtility.SaveFilePanel("Save Bone Blend Config", Application.dataPath, "", "bfg");
            csa.SaveSetting(path);
        }

        GUILayout.EndVertical();
    }
    public static void OnBipedReset(BipedIKAnimator bipedikanimator)
    {
        string myname  = bipedikanimator.gameObject.name;
        string subname = myname.Substring(0, myname.Length - 1);
        string nameA   = subname + "A";
        string nameB   = subname + "B";
        string nameC   = subname + "C";

        bipedikanimator.goA = GameObject.Find(nameA);
        bipedikanimator.goB = GameObject.Find(nameB);

        if (bipedikanimator.goA == null)
        {
            GameObject prefab = (GameObject)PrefabUtility.GetPrefabParent(bipedikanimator.gameObject);
            if (prefab != null)
            {
                bipedikanimator.goA      = (GameObject)GameObject.Instantiate(prefab);
                bipedikanimator.goA.name = nameA;
                bipedikanimator.goA.transform.position = bipedikanimator.gameObject.transform.position + new Vector3(-1, 0, 0);
            }
        }

        if (bipedikanimator.goB == null)
        {
            GameObject prefab = (GameObject)PrefabUtility.GetPrefabParent(bipedikanimator.gameObject);
            if (prefab != null)
            {
                bipedikanimator.goB      = (GameObject)GameObject.Instantiate(prefab);
                bipedikanimator.goB.name = nameB;
                bipedikanimator.goB.transform.position = bipedikanimator.gameObject.transform.position + new Vector3(1, 0, 0);
            }
        }

        bipedikanimator.gameObject.name = nameC;
    }
Beispiel #3
0
    public static void EnableSkinInstance(SkinInstance instance)
    {
        if (null == instance)
        {
            return;
        }
        if (!instance.isValid)
        {
            return;
        }
        if (instance.playEntityStaticEffect)
        {
            instance.playEntityStaticEffect.Stop();
        }

        if (instance.switchEffectWithHeroDistance)
        {
            instance.switchEffectWithHeroDistance.DisableAll();
        }
        instance.SkinObj.SetActive(true);

        BipedIKAnimator anc = instance.SkinObj.GetComponent <BipedIKAnimator>();

        if (anc != null)
        {
            if (anc.goA != null)
            {
                anc.goA.SetActive(true);
            }
            if (anc.goB != null)
            {
                anc.goB.SetActive(true);
            }
        }
    }
Beispiel #4
0
    public void Clear()
    {
        isBeCached = false;
        if (m_MainAnimator)
        {
            m_MainAnimator.runtimeAnimatorController = orginalAnimatorController;
        }

        m_nSkinID            = -1;
        m_SkinObj            = null;
        m_SkinObj_B          = null;
        m_SkinObj_A          = null;
        m_MainAnimator       = null;
        m_AnimatorB          = null;
        m_bipedIKAnimator    = null;
        m_creatureProperty   = null;
        m_ReferencedSkinCtrl = null;
        m_SkinnedMeshRenderList.Clear();
        m_MeshRenderList.Clear();
        m_AllRenders.Clear();
        m_cameraProperty      = null;
        m_characterController = null;
        m_entitySkinConfig    = null;

        if (m_playEntityStaticEffect)
        {
            m_playEntityStaticEffect.Clear();
        }

        if (m_switchEffectWithHeroDistance)
        {
            m_switchEffectWithHeroDistance.Clear();
        }

        m_playEntityStaticEffect       = null;
        m_switchEffectWithHeroDistance = null;
        m_sidekickEntity = null;
        m_SkinDataObj    = null;
        foreach (RenderVisibleHelper vis in m_VisibleHelperList)
        {
            vis.hostSkin = null;
            var temp1 = vis;
            ResNode.DestroyRes(ref temp1);
        }
        ResNode.DestroyRes(ref m_bindEffect_A);
        ResNode.DestroyRes(ref m_bindEffect_B);
        ResNode.DestroyRes(ref m_bindSound);
        ResNode.DestroyRes(ref m_overrideController);
        m_VisibleHelperList.Clear();

        ResNode.DestroyRes(ref m_characterShadow);
        ClearAlpha();
        ClearBonesMap();
        m_isLoadFinish = false;
    }
Beispiel #5
0
    public static void DisableSkinInstance(SkinInstance instance)
    {
        if (null == instance)
        {
            return;
        }
        if (!instance.isValid)
        {
            return;
        }
        Skin sk = null;

        m_SkinMap.TryGetValue(instance.nSkinID, out sk);
        sk.ApplyOrginalData(instance);
        if (instance.playEntityStaticEffect)
        {
            instance.playEntityStaticEffect.Stop();
        }

        if (instance.switchEffectWithHeroDistance)
        {
            instance.switchEffectWithHeroDistance.DisableAll();
        }
        instance.SkinObj.SetActive(false);
        instance.SetVisible(true);            //重置可见性
        instance.SetBindEffectEnabled(false); //重置绑定特效
        BipedIKAnimator anc = instance.SkinObj.GetComponent <BipedIKAnimator>();

        if (anc != null)
        {
            if (anc.goA != null)
            {
                anc.goA.SetActive(false);
            }
            if (anc.goB != null)
            {
                anc.goB.SetActive(false);
            }
        }
    }