/// <summary> /// 飞行出蹦蹦 /// </summary> private void FlyPet() { DelHandPet(); Pet pet = new Pet(); pet.CreateSkin(m_Skin.tRoot.parent, 1002, "1002", AnimatorState.FlyClick00300, m_LifePrent.m_Core.m_IsPlayer); // IGameRole i = GameRoleFactory.Create(m_Skin.tRoot.parent, 1002, "1002", AnimatorState.FlyClick00300); GameObject goPet = pet.PetSkinCom.tRoot.gameObject; GameObject navelpos = m_Skin.ProPerty.HelpPoint.GetVauleByKey(HelpPointName.NavelPos); if (navelpos != null) { goPet.transform.position = navelpos.transform.position; } U3DUtil.SetZ(goPet.transform.position, -1f); LifeObj lo = goPet.AddComponent <LifeObj>(); m_FlyCollisionInfo.SummonPet = goPet; pet.SetBorn(m_LifePrent, 1002001, 1002, m_LifePrent.m_thisT.position); pet.SetSkin(); //pet.SetMoveState(MoveState.Fly); if (m_LifePrent is Role) { (m_LifePrent as Role).CurPet = pet; } lo.SetLife(pet, pet.PetSkinCom.ProPerty); }
/// <summary> /// 战前NPC对话 /// </summary> private void DoStartTalks(List <CounterPartDialogUnit> ltalk) { if (ltalk.Count == 0) { return; } MyHead.btnCombat.enabled = false; List <int> lNpcID = new List <int>(); List <string> lStrTalks = new List <string>(); List <NpcDirection> lWndDirs = new List <NpcDirection>(); foreach (CounterPartDialogUnit t in ltalk) { lNpcID.Add(t.npcid); lStrTalks.Add(t.talk); lWndDirs.Add((NpcDirection)t.position); } NpcTalksWnd wnd = WndManager.GetDialog <NpcTalksWnd>(); wnd.SetData(lNpcID, lStrTalks, lWndDirs); ViewStageScene scene = SceneM.GetCurIScene() as ViewStageScene; if (scene != null && scene.GoldTransform != null) { Transform tGoldRoom = scene.GoldTransform; LifeObj obj = tGoldRoom.GetComponent <LifeObj>(); if (obj != null) { Vector3 pos = obj.GetLife().GetLifeProp().HelpPoint.GetVauleByKey(BuildHelpPointName.guidePos).transform.position; wnd.SetWndStyle(2, pos); } } }
/// <summary> /// Role 与lifeobj的关联 /// </summary> /// <param name="t">角色对象的Transform</param> /// <param name="Info">角色信息</param> /// <param name="Camp">阵营</param> /// <param name="DataID">战斗环境中的DataID,其他环境填0 就可</param> /// <param name="moveState">运动状态</param> /// <param name="Environment">对象所出环境</param> public static Role ConnectRoleLife(Transform Tstart, AnimatorState state, SoldierInfo Info, LifeMCamp Camp, int DataID, MoveState moveState, Int2 BornPos, LifeEnvironment Environment) { Role RoleLife = new Role(); bool IsPlayer = CmCarbon.GetCamp2Player(Camp); int RoleType = Info.m_modeltype; if (RoleType == 102003) { RoleType = 1020032; } if (RoleType == 200009) { RoleType = 2000092; } RoleLife.CreateSkin(Tstart, RoleType, Info.m_name, state, IsPlayer); RoleLife.SetRoleLife(Info, RoleLife.RoleSkinCom.ProPerty, Environment); LifeObj building = RoleLife.RoleSkinCom.tRoot.gameObject.AddComponent <LifeObj>(); if (building != null) { if (Environment == LifeEnvironment.Combat) { RoleLife.SetLifeCore(new LifeMCore(DataID, IsPlayer, LifeMType.SOLDIER, Camp, moveState)); RoleLife.SetSkin(); } if (moveState == MoveState.Walk) { RoleLife.MoveAI.SetBornPos(BornPos, 0); } building.SetLife(RoleLife as Life, RoleLife.RoleSkinCom.ProPerty); } return(RoleLife); }
/// <summary> /// 获取炮战对象 /// </summary> private Life GetCollisionGo(Collision collision) { Transform T = collision.transform; int collisionGoID = T.gameObject.GetInstanceID(); if (m_listCollisionGoID.Contains(collisionGoID)) { return(null); } //m_listCollisionGoID.Add(collisionGoID); //墙板,建筑等对象 LifeObj l = T.GetComponent <LifeObj>(); if (l == null) { l = T.GetComponentInParent <LifeObj>(); if (l == null) { return(null); } } Life life = l.GetLife(); //角色对象 if (life == null) { Transform t = T.parent; if (t == null) { return(null); } l = t.GetComponent <LifeObj>(); if (t == null) { return(null); } Role w = l.GetLife() as Role; if (w == null) { return(null); } if (w.m_Core.m_Camp == LifeMCamp.DEFENSE) { m_listCollisionGoID.Add(collisionGoID); } return(w as Life); } else { if (life.m_Core.m_Camp == LifeMCamp.DEFENSE) { m_listCollisionGoID.Add(collisionGoID); } return(life); } }
public static Role CreateRole(Transform Tstart, SoldierInfo s, bool isPlayer, Vector3 wordpos, AnimatorState state, bool isplayer) { //Transform t = BattleEnvironmentM.GetLifeMBornNode(true); //IGameRole iRole= GameRoleFactory.Create(t, s.m_modeltype, s.m_name, state); //iRole.GetRolePropertyM().SetCampModel(isPlayer,LifeMCamp.ATTACK); Role RoleLife = new Role(); RoleLife.CreateSkin(Tstart, s.m_modeltype, s.m_name, state, isplayer); RoleLife.RoleSkinCom.tRoot.parent = Tstart; RoleLife.RoleSkinCom.tRoot.position = wordpos; RoleLife.SetRoleLife(s, RoleLife.RoleSkinCom.GetRolePropertyM(), LifeEnvironment.Combat); LifeObj building = RoleLife.RoleSkinCom.tRoot.gameObject.AddComponent <LifeObj>(); building.SetLife(RoleLife as Life, RoleLife.RoleSkinCom.ProPerty); return(RoleLife); }
/// <summary> /// 创建房间 /// </summary> /// <param name="Info">建筑数据</param> /// <param name="DataID">战斗环境中的DataID,其他环境填0 就可</param> /// <param name="Parent">挂载点</param> /// <param name="Parent">环境</param> /// <returns></returns> public static Building CreateBuilding(BuildInfo Info, int DataID, Transform Parent, Vector3 WorldPos, LifeEnvironment Environment) { Life.Environment = Environment; if (Info == null || Parent == null) { return(null); } LifeProperty Property = CreateBuildSkin(Info, Parent, WorldPos); if (Property == null) { return(null); } Building buildlife = ConnectBuildingLife(Property, Info, DataID, Environment); LifeObj building = Property.transform.parent.gameObject.AddComponent <LifeObj>(); if (Property != null && building != null) { building.SetLife(buildlife as Life, Property); } return(buildlife); }
void CreatePet() { HideHandPet(); Pet pet = new Pet(); pet.CreateSkin(BattleEnvironmentM.GetLifeMBornNode(true), 1002, "1002", AnimatorState.FlyClick00300, m_LifePrent.m_Core.m_IsPlayer); //IGameRole i = GameRoleFactory.Create(BattleEnvironmentM.GetLifeMBornNode(true), 1002, "1002", AnimatorState.FlyClick00300); GameObject goPet = pet.PetSkinCom.tRoot.gameObject; goPet.transform.position = m_Skin.ProPerty.HelpPoint.GetVauleByKey(HelpPointName.petFollowPos).transform.position; LifeObj lo = goPet.AddComponent <LifeObj>(); Int2 toGrid = m_LifePrent.GetMapPos(); pet.SetBorn(m_LifePrent, 1002001, 1002, toGrid, m_LifePrent.WalkDir); pet.SetSkin(); if (m_LifePrent is Role) { (m_LifePrent as Role).CurPet = pet; //pet.SetMoveState(MoveState.Walk); // pet.m_petState = Pet1002State.Follow; } lo.SetLife(pet, pet.PetSkinCom.ProPerty); }
/// <summary> /// 创建宠物 /// </summary> private SummonPet CreatePet(int PetDataID, MapGrid StartGrid) { SummonpetInfo info = SummonM.GetSummonPetInfo(PetDataID); SummonPet pet = new SummonPet(); pet.CreateSkin(BattleEnvironmentM.GetLifeMBornNode(true), info.m_modeltype, info.m_modeltype.ToString(), AnimatorState.Empty, true); //IGameRole i = GameRoleFactory.Create(BattleEnvironmentM.GetLifeMBornNode(true), info.m_modeltype, info.m_modeltype.ToString(), AnimatorState.Empty); GameObject go = pet.RoleSkinCom.tRoot.gameObject; Vector3 pos = Vector3.zero; string posname = ""; LifeObj lo = go.AddComponent <LifeObj>(); pet.SetSummonPetLife(info, pet.RoleSkinCom.ProPerty, LifeEnvironment.Combat); pet.SetLifeCore(new LifeMCore(PetDataID, true, LifeMType.SUMMONPET, Camp, MoveState.Walk)); pet.SetSkin(); pet.SetBornPos(StartGrid.GridPos, 0); lo.SetLife(pet, pet.RoleSkinCom.ProPerty); go.transform.parent = BattleEnvironmentM.GetLifeMBornNode(true); Vector3 start = StartGrid.WorldPos; start.z = Camera.main.transform.position.z; go.transform.position = start; return(pet); }