Пример #1
0
 protected override void OnInitial()
 {
     base.OnInitial();
     defEquip           = XTableMgr.GetTable <DefaultEquip>().GetByUID(2);
     controller         = EntityObject.GetComponent <CharacterController>();
     controller.enabled = false;
     AttachComponent <NativeEquipComponent>();
 }
Пример #2
0
    public static string GetDefaultPath(EPartType part, DefaultEquip.RowData data)
    {
        string partPath = "";

        switch (part)
        {
        case EPartType.EFace:
            partPath = data.Face;
            break;

        case EPartType.EHair:
            partPath = data.Hair;
            break;

        case EPartType.EUpperBody:
            partPath = data.Body;
            break;

        case EPartType.ELowerBody:
            partPath = data.Leg;
            break;

        case EPartType.EGloves:
            partPath = data.Glove;
            break;

        case EPartType.EBoots:
            partPath = data.Boots;
            break;

        case EPartType.ESecondaryWeapon:
            partPath = data.SecondWeapon;
            break;

        case EPartType.EMainWeapon:
            partPath = data.Weapon;
            break;

        case EPartType.EWings:
            partPath = data.WingPoint;
            break;

        case EPartType.ETail:
            partPath = data.TailPoint;
            break;
        }
        return(partPath);
    }
Пример #3
0
    public override void OnInitial()
    {
        _eEntity_Type |= EntityType.Role;
        base.OnInitial();
        _layer             = LayerMask.NameToLayer("Role");
        profession         = 1;
        defEquip           = XTableMgr.GetTable <DefaultEquip>().GetByUID(profession + 1);
        controller         = EntityObject.GetComponent <CharacterController>();
        controller.enabled = false;

        AttachComponent <XAIComponent>();
        AttachComponent <XEquipComponent>();
        nav = AttachComponent <XNavComponent>();
        AttachComponent <XSkillComponent>();
        AttachComponent <XBeHitComponent>();
    }
Пример #4
0
    private string GetMountPoint()
    {
        DefaultEquip.RowData data = component.data;
        string point = "";

        switch (part)
        {
        case EPartType.EMainWeapon:
            point = data.WeaponPoint;
            break;

        case EPartType.EWings:
            point = data.WingPoint;
            break;

        case EPartType.ETail:
            point = data.TailPoint;
            break;

        default:
            throw new System.Exception("err");
        }
        return(point);
    }
Пример #5
0
        private void Preview(EquipPart part)
        {
            //1.mesh collection
            List <CombineInstance> ciList = new List <CombineInstance>();

            Texture[]            m_tex = new Texture[8];
            DefaultEquip.RowData data  = XTableMgr.GetTable <DefaultEquip>().GetByUID(m_profession + 1);
            string name = "";

            for (int i = 0; i < part.partPath.Length; ++i)
            {
                string          path = part.partPath[i];
                CombineInstance ci   = new CombineInstance();
                if (string.IsNullOrEmpty(path))
                {
                    path = XEquipUtil.GetDefaultPath((EPartType)i, data);
                }
                else if (name == "")
                {
                    int index = path.LastIndexOf("_");
                    if (index >= 0)
                    {
                        name = path.Substring(0, index);
                    }
                }
                if (!string.IsNullOrEmpty(path))
                {
                    path = "Assets/Resources/Equipments/" + path;
                    Mesh    mesh = AssetDatabase.LoadAssetAtPath <Mesh>(path + AssetType.Asset);
                    Texture tex  = AssetDatabase.LoadAssetAtPath <Texture>(path + AssetType.TGA);
                    if (mesh != null)
                    {
                        ci.mesh  = mesh;
                        m_tex[i] = tex;
                    }
                    if (ci.mesh != null)
                    {
                        ciList.Add(ci);
                    }
                }
            }

            if (ciList.Count > 0)
            {
                if (newGo != null)
                {
                    GameObject.DestroyImmediate(newGo);
                }
                string skinPrfab = "Assets/Resources/Prefabs/" + combineConfig.PrefabName[m_profession] + AssetType.Prefab;
                newGo = GameObject.Instantiate(AssetDatabase.LoadAssetAtPath <Object>(skinPrfab)) as GameObject;
                if (name != "")
                {
                    newGo.name = name;
                }
                newGo.transform.localRotation = Quaternion.Euler(new Vector3(0, 180, 0));

                //2.combine
                Transform           t      = newGo.transform;
                SkinnedMeshRenderer newSmr = t.GetComponent <SkinnedMeshRenderer>();
                newSmr.sharedMesh = new Mesh();
                newSmr.sharedMesh.CombineMeshes(ciList.ToArray(), true, false);

                //3.set material
                Material mat = new Material(Shader.Find("Custom/Skin/RimlightBlend8"));
                for (int i = 0; i < m_tex.Length; ++i)
                {
                    mat.SetTexture("_Tex" + i.ToString(), m_tex[i]);
                }
                newSmr.sharedMaterial = mat;

                if (data.WeaponPoint != null && data.WeaponPoint.Length > 0)
                {
                    string    weapon = data.WeaponPoint[0].ToString();
                    Transform trans  = newGo.transform.Find(weapon);
                    if (trans != null)
                    {
                        string path = part.mainWeapon;
                        if (string.IsNullOrEmpty(path))
                        {
                            path = data.Weapon;
                        }

                        GameObject mainWeapon = AssetDatabase.LoadAssetAtPath <GameObject>("Assets/Resources/Equipments/" + path + AssetType.Prefab);
                        if (mainWeapon != null)
                        {
                            GameObject instance = GameObject.Instantiate(mainWeapon) as GameObject;
                            instance.transform.parent        = trans;
                            instance.transform.localPosition = Vector3.zero;
                            instance.transform.localRotation = Quaternion.identity;
                            instance.transform.localScale    = Vector3.one;
                        }
                    }
                }
            }
        }