protected override void OnInitial() { base.OnInitial(); defEquip = XTableMgr.GetTable <DefaultEquip>().GetByUID(2); controller = EntityObject.GetComponent <CharacterController>(); controller.enabled = false; AttachComponent <NativeEquipComponent>(); }
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); }
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>(); }
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); }
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; } } } } }