角色基类
This commit is contained in:
parent
81fb6e0f19
commit
3dbe973e8d
Binary file not shown.
BIN
Assets/GameAssets/Font/TTF/IPix.ttf
Normal file
BIN
Assets/GameAssets/Font/TTF/IPix.ttf
Normal file
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d268a2524403b7d47a51f417c95e3d5e
|
||||
guid: 1016016d0d135b24a9b513a0f6a1cb03
|
||||
TrueTypeFontImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 4
|
||||
@ -9,9 +9,8 @@ TrueTypeFontImporter:
|
||||
characterPadding: 1
|
||||
includeFontData: 1
|
||||
fontNames:
|
||||
- STZhongsong
|
||||
fallbackFontReferences:
|
||||
- {fileID: 12800000, guid: 71e3074360d836348811af020e1ac258, type: 3}
|
||||
- IPix
|
||||
fallbackFontReferences: []
|
||||
customCharacters:
|
||||
fontRenderingMode: 0
|
||||
ascentCalculationMode: 1
|
Binary file not shown.
859
Assets/Scripts/Main/CustomsComponent/UserMgrComponent.cs
Normal file
859
Assets/Scripts/Main/CustomsComponent/UserMgrComponent.cs
Normal file
@ -0,0 +1,859 @@
|
||||
//using Axibug;
|
||||
//using Axibug.Event;
|
||||
//using Axibug.Resources;
|
||||
//using Axibug.Runtime;
|
||||
//using Game.Config;
|
||||
//using System;
|
||||
//using System.Collections;
|
||||
//using System.Collections.Generic;
|
||||
//using System.Linq;
|
||||
//using UnityEngine;
|
||||
|
||||
//namespace Game
|
||||
//{
|
||||
// public class UserMgrComponent : GameComponent
|
||||
// {
|
||||
// private Queue<S_ROLE_BASE> temp_RemoveUser = new Queue<S_ROLE_BASE>();//需要移除的玩家列表
|
||||
// private Queue<Int32> temp_RemoveRequest = new Queue<Int32>();//请求数据列表
|
||||
|
||||
// //key:职业+性别 比如:ss_w
|
||||
// private Dictionary<string, Queue<GameObject>> userPool = new Dictionary<string, Queue<GameObject>>();
|
||||
|
||||
// private float temp_CheckTime = 0;
|
||||
// private float temp_RequestTime = 0;
|
||||
|
||||
// private S_ROLE_SELF myrole { get { return UserData.role; } }
|
||||
|
||||
|
||||
// private void Start()
|
||||
// {
|
||||
// //AppEntry.Event.Subscribe(UserMoveEventArgs.EventId, OnUserMoveEvent);
|
||||
// //AppEntry.Event.Subscribe(UserPlayerSkillEventArgs.EventId, OnUserPlayerSkill);
|
||||
// //AppEntry.Event.Subscribe(RoleDeadEventArgs.EventId, OnRoleDead);
|
||||
// //AppEntry.Event.Subscribe(RoleReviveEventArgs.EventId, OnRoleRevive);
|
||||
// //AppEntry.Event.Subscribe(RoleLevelupEventArgs.EventId, OnRoleLevelUp);
|
||||
// //AppEntry.Event.Subscribe(AddRoleBufferEvent.EventId, AddBuffer);
|
||||
// //AppEntry.Event.Subscribe(RemoveRoleBufferEvent.EventId, RemoveBuffer);
|
||||
// }
|
||||
|
||||
// public GameObject Accquire(string myKey, S_ROLE_BASE role)
|
||||
// {
|
||||
// if (!userPool.ContainsKey(myKey))
|
||||
// return null;
|
||||
|
||||
// Queue<GameObject> gos = userPool[myKey];
|
||||
// if (gos.Count == 0)
|
||||
// return null;
|
||||
|
||||
// GameObject go = gos.Dequeue();
|
||||
// go.SetActive(true);
|
||||
// //role.userview.go = go;
|
||||
// role.userview.rolePrefabGo = go;
|
||||
// return go;
|
||||
// }
|
||||
|
||||
// public void Release(S_ROLE_BASE role)
|
||||
// {
|
||||
// string strJob = Common.GetStrJob((byte)role.innate.job);
|
||||
// string strSex = Common.GetStrSex(role.innate.sex);
|
||||
// string myKey = $"{strJob}_{strSex}";
|
||||
|
||||
|
||||
// // 清理玩家信息条
|
||||
// BattleEntitysInfoCtrl.Instance.DisposeUserInfo(role.mem.userindex);
|
||||
|
||||
// Queue<GameObject> gos = null;
|
||||
// if (userPool.ContainsKey(myKey))
|
||||
// gos = userPool[myKey];
|
||||
// else
|
||||
// {
|
||||
// gos = new Queue<GameObject>();
|
||||
// userPool.Add(myKey, gos);
|
||||
// }
|
||||
|
||||
// if(role.userview.go != null)
|
||||
// {
|
||||
// /*
|
||||
// gos.Enqueue(role.userview.go);
|
||||
// role.userview.go.SetActive(false);
|
||||
// role.userview.go = null;
|
||||
// */
|
||||
|
||||
// gos.Enqueue(role.userview.rolePrefabGo);
|
||||
// role.userview.go.SetActive(false);
|
||||
// }
|
||||
|
||||
// role.userview.Release();
|
||||
// AppEntry.Event.FireNow(null, CharReleaseEventArgs.Create(role.dataSet.GetCharIndex(), E_NODE_TYPE.N_ROLE));
|
||||
|
||||
|
||||
// }
|
||||
|
||||
// public void CreateMainPlayer(S_ROLE_SELF myrole)
|
||||
// {
|
||||
// if (myrole == null)
|
||||
// return;
|
||||
|
||||
// //初始化便捷数据类
|
||||
// MainPlayerDataSet mainDataSet = new MainPlayerDataSet();
|
||||
// mainDataSet.Init(myrole);
|
||||
// myrole.dataSet = mainDataSet;
|
||||
|
||||
// CreateRole((byte)myrole.innate.job, myrole, true);
|
||||
// }
|
||||
|
||||
// public void CreateRole(byte job, S_ROLE_BASE role, bool isMainPlayer=false)
|
||||
// {
|
||||
// if (!isMainPlayer)
|
||||
// {
|
||||
// //产生时,标记角色格子占据
|
||||
// HotfixEntry.Map.SetRoleCell(role.mem.userindex, (int)role.status.pos.x, (int)role.status.pos.z, E_NODE_TYPE.N_ROLE);
|
||||
// }
|
||||
|
||||
// //RoleTop.transform.localRotation = Quaternion.EulerRotation(60, 0, 0);
|
||||
|
||||
// string strJob = Common.GetStrJob(job);
|
||||
// string strSex = Common.GetStrSex(role.innate.sex);
|
||||
|
||||
// string myKey = $"{strJob}_{strSex}";
|
||||
// //@Test 测试模型用
|
||||
// string path = Utility.Path.GetPlayerPath(myKey, myKey+"_Test");
|
||||
|
||||
// //还没写完, 待测试
|
||||
// GameObject go = Accquire(myKey, role);
|
||||
// if(go == null)
|
||||
// {
|
||||
// //ch
|
||||
// GameObject RoleTop = new GameObject();
|
||||
// if (isMainPlayer)
|
||||
// {
|
||||
// RoleTop.transform.parent = HotfixEntry.MainPlayer.transform;
|
||||
// RoleTop.transform.localPosition = Vector3.zero;
|
||||
// }
|
||||
// else
|
||||
// RoleTop.transform.parent = HotfixEntry.UserMgr.transform;
|
||||
|
||||
// HotfixEntry.Resources.Clone(path, CreateCallback, RoleTop.transform, role, myKey.ToLower());
|
||||
// return;
|
||||
// }
|
||||
|
||||
// role.userview.go = go;
|
||||
// role.userview.ResetGameObject(go);
|
||||
// }
|
||||
|
||||
|
||||
// protected void CreateCallback(UnityEngine.Object obj, CallbackType err, object userData)
|
||||
// {
|
||||
// if (err != CallbackType.Success)
|
||||
// {
|
||||
// Log.Error("创建角色失败");
|
||||
// return;
|
||||
// }
|
||||
|
||||
// if (userData == null)
|
||||
// return;
|
||||
|
||||
// S_ROLE_BASE role = (S_ROLE_BASE)userData;
|
||||
// if (role as S_ROLE_SELF != null)
|
||||
// HotfixEntry.MainPlayer.myView.InitGameObject(obj as GameObject);
|
||||
// else
|
||||
// {
|
||||
// role.userview.InitGameObject(obj as GameObject);
|
||||
// }
|
||||
// }
|
||||
|
||||
// /// <summary>
|
||||
// /// 主角色换装
|
||||
// /// </summary>
|
||||
// /// <param name="roleView"></param>
|
||||
// /// <param name="job"></param>
|
||||
// /// <param name="SubJob">二级职业,如DZ_M_DD刀盾模型中,末尾的"DD"</param>
|
||||
// public void MainPlayerChangeEquipment(byte job,string SubJob)
|
||||
// {
|
||||
// MyView myview = HotfixEntry.MainPlayer.myView;
|
||||
// ChangeEquipment(myview, myview.myrole,job,SubJob);
|
||||
// }
|
||||
|
||||
// protected void ChangeEquipmentCallback(UnityEngine.Object obj, CallbackType err, object userData)
|
||||
// {
|
||||
// if (err != CallbackType.Success)
|
||||
// {
|
||||
// Log.Error("创建角色失败");
|
||||
// return;
|
||||
// }
|
||||
// if (userData == null)
|
||||
// return;
|
||||
|
||||
// S_ROLE_BASE role = (S_ROLE_BASE)userData;
|
||||
|
||||
// GameObject Oldobj = role.characterview.rolePrefabGo.gameObject;
|
||||
// GameObject Newobj = (obj as GameObject);
|
||||
// role.characterview.rolePrefabGo = Newobj;
|
||||
|
||||
// //重置Movement,而不是创建
|
||||
// if (role as S_ROLE_SELF != null)
|
||||
// {
|
||||
// HotfixEntry.MainPlayer.myView.InitMovement(obj as GameObject);
|
||||
// }
|
||||
// else
|
||||
// role.userview.InitMovement(obj as GameObject);
|
||||
|
||||
// Newobj.transform.localPosition = Oldobj.transform.localPosition;
|
||||
// Newobj.transform.localRotation = Oldobj.transform.localRotation;
|
||||
|
||||
// //完全替换后再销毁原角色,保证时序靠后
|
||||
// Destroy(Oldobj);
|
||||
// }
|
||||
|
||||
// //角色移动
|
||||
// private void OnUserMoveEvent(object sender, LogicEventArgs e)
|
||||
// {
|
||||
// UserMoveEventArgs move = (UserMoveEventArgs)e;
|
||||
// if (move == null)
|
||||
// throw new GameException("UserMoveEventArgs is null");
|
||||
|
||||
// var role = UserData.findRoleData(move.userIndex);
|
||||
// if(role == null)
|
||||
// throw new GameException("the role is null");
|
||||
|
||||
// role.userview.StartMove(move.speed, role.status.face);
|
||||
|
||||
// //更新下玩家的大格子
|
||||
// HotfixEntry.Map.UpdateUserBC(role);
|
||||
// }
|
||||
|
||||
// //角色播放技能
|
||||
// private void OnUserPlayerSkill(object sender, LogicEventArgs e)
|
||||
// {
|
||||
// UserPlayerSkillEventArgs skill = (UserPlayerSkillEventArgs)e;
|
||||
// if (skill == null)
|
||||
// throw new GameException("UserPlayerSkillEventArgs is null");
|
||||
|
||||
// int clientId = ConstClass.GetClientSkillID(skill.skillid, skill.skilllevel);
|
||||
// SkillData script = HotfixEntry.Luban.GetSkill(clientId);
|
||||
// if (script == null)
|
||||
// throw new GameException($"the skillid:[{clientId}] is null");
|
||||
|
||||
// Transform source = null;
|
||||
// Transform target = null;
|
||||
// Vector3 targetPos = Vector3.zero;
|
||||
|
||||
|
||||
// CellNode cell = null;
|
||||
|
||||
// switch (skill.lock_type)
|
||||
// {
|
||||
// case (byte)Lock_Type.LOCK_PLAYER:
|
||||
// {
|
||||
// var role = UserData.findRoleData(skill.lockIndex);
|
||||
// if (role == null || role.userview == null)
|
||||
// throw new GameException($"the lockIndex:{skill.lockIndex} is null");
|
||||
|
||||
// cell = role.userview.CurCell;
|
||||
// target = role.userview.rolePrefabGo.transform;
|
||||
// targetPos = role.userview.rolePrefabGo.transform.position;
|
||||
// }
|
||||
// break;
|
||||
// case (byte)Lock_Type.LOCK_MONSTER:
|
||||
// {
|
||||
// var robot = RobotData.findRobotData(skill.lockIndex);
|
||||
// if (robot == null || robot.data == null)
|
||||
// throw new GameException($"the lockIndex:{skill.lockIndex} is null");
|
||||
|
||||
// cell = robot.view.CurCell;
|
||||
// target = robot.view.rolePrefabGo.transform;
|
||||
// targetPos = robot.view.rolePrefabGo.transform.position;
|
||||
// }
|
||||
// break;
|
||||
// }
|
||||
|
||||
// if (cell == null)
|
||||
// return;
|
||||
|
||||
// //修改特效发送source和taget的位置
|
||||
// if (skill.userIndex == myrole.mem.userindex)
|
||||
// {
|
||||
// HotfixEntry.MainPlayer.myView.Attack(cell, script.Motion);
|
||||
// myrole.move.state = 1;
|
||||
// source = HotfixEntry.MainPlayer.myView.rolePrefabGo.transform;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// S_ROLE_BASE role = UserData.findRoleData(skill.userIndex);
|
||||
// if (role == null)
|
||||
// throw new GameException("the role is null");
|
||||
|
||||
// role.userview.Attack(role.userview.CurCell, script.Motion, false);
|
||||
// source = role.userview.rolePrefabGo.transform;
|
||||
// }
|
||||
|
||||
|
||||
// //播放技能特效
|
||||
// string path = string.Empty;
|
||||
// //如果有技能动作,则播放
|
||||
// if (!string.IsNullOrEmpty(script.BindEffect) && script.BindEffect != "0")
|
||||
// {
|
||||
// path = Utility.Path.GetPrefabPath("Effects", script.BindEffect);
|
||||
// HotfixEntry.EffectMgr.PlayAttackEffect(path, source);
|
||||
// }
|
||||
|
||||
// if (!string.IsNullOrEmpty(script.WorldEffect) && script.WorldEffect != "0")
|
||||
// {
|
||||
// path = Utility.Path.GetPrefabPath("Effects", script.WorldEffect);
|
||||
// HotfixEntry.EffectMgr.PlayWorldEffect(path, targetPos);
|
||||
// }
|
||||
|
||||
// if (!string.IsNullOrEmpty(script.BallisticEffect) && script.BallisticEffect != "0")
|
||||
// {
|
||||
// path = Utility.Path.GetPrefabPath("Effects", script.BallisticEffect);
|
||||
// StartCoroutine(DelayPlayerEffect(script.EffectDelayTime, path, source, target));
|
||||
|
||||
// }
|
||||
|
||||
// Log.Debug($"播放技能:ID={clientId}, 动作={script.Motion}, 绑定特效={script.BindEffect}, 世界特效={script.WorldEffect}, 弹道特效={script.BallisticEffect}, 被击特效={script.HitEffect}");
|
||||
// }
|
||||
|
||||
// IEnumerator DelayPlayerEffect(int delay, string path, Transform source, Transform target)
|
||||
// {
|
||||
// yield return new WaitForSeconds(delay / 1000.0f);
|
||||
|
||||
// HotfixEntry.EffectMgr.PlayBallisticEffect(path, source, target);
|
||||
// }
|
||||
|
||||
// //角色死亡
|
||||
// public void OnRoleDead(object sender, LogicEventArgs e)
|
||||
// {
|
||||
// RoleDeadEventArgs dead = (RoleDeadEventArgs)e;
|
||||
// if (dead == null)
|
||||
// throw new GameException("RoleDeadEventArgs is null");
|
||||
|
||||
// S_ROLE_BASE role = null;
|
||||
|
||||
// if (dead.roleIndex == myrole.mem.userindex)
|
||||
// {
|
||||
// role = myrole;
|
||||
|
||||
// //HotfixEntry.MainPlayer.myView.SetAnimation("Dead", true);
|
||||
// myrole.myView.movement.characterAnimator.PlayDead();
|
||||
|
||||
// HotfixEntry.UI.OpenUI<DeathPanelUI>();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// role = UserData.findRoleData(dead.roleIndex);
|
||||
|
||||
// if (role == null)
|
||||
// throw new GameException("the role is null");
|
||||
|
||||
// //role.userview.SetAnimation("Dead", true);
|
||||
// role.userview.movement.characterAnimator.PlayDead();
|
||||
// HotfixEntry.Map.ClearRoleCellData(dead.roleIndex, E_NODE_TYPE.N_ROLE);
|
||||
// }
|
||||
|
||||
// switch ((Lock_Type)role.tmp.lockData.lock_type)
|
||||
// {
|
||||
// case Lock_Type.LOCK_PLAYER://玩家
|
||||
// {
|
||||
// var lockRole = UserData.findRoleData(role.tmp.lockData.lock_index);
|
||||
// if (lockRole == null || lockRole.userview == null || lockRole.userview.go == null)
|
||||
// return;
|
||||
|
||||
// lockRole.userview.SetSublightOff();
|
||||
// }
|
||||
// break;
|
||||
// case Lock_Type.LOCK_MONSTER://怪物
|
||||
// {
|
||||
// var lockRobot = RobotData.findRobotData(role.tmp.lockData.lock_index);
|
||||
// if (lockRobot == null || lockRobot.view == null || lockRobot.view.go == null)
|
||||
// return;
|
||||
|
||||
// lockRobot.view.SetSublightOff();
|
||||
// }
|
||||
// break;
|
||||
// }
|
||||
|
||||
// role.tmp.lockData.lock_state = 0;
|
||||
// role.tmp.lockData.lock_index = -1;
|
||||
|
||||
// }
|
||||
|
||||
// //角色复活
|
||||
// public void OnRoleRevive(object sender, LogicEventArgs e)
|
||||
// {
|
||||
// RoleReviveEventArgs revive = (RoleReviveEventArgs)e;
|
||||
// if (revive == null)
|
||||
// throw new GameException("RoleReviveEventArgs is null");
|
||||
|
||||
// //传送
|
||||
// if (revive.userIndex == myrole.mem.userindex)
|
||||
// {
|
||||
// myrole.myView.movement.characterAnimator.DeadToIdle();
|
||||
|
||||
// AppEntry.Event.Fire(null, BattleRoleMovingEventArgs.Create(myrole.myDataSet.GetCharIndex(),E_NODE_TYPE.N_MAINPLAYER));
|
||||
|
||||
// HotfixEntry.MainPlayer.myView.TeleportingToPos(revive.pos);
|
||||
// myrole.status.state = (int)CharacterState.Living;
|
||||
// return;
|
||||
// }
|
||||
|
||||
// S_ROLE_BASE role = UserData.findRoleData(revive.userIndex);
|
||||
|
||||
// if (role == null)
|
||||
// throw new GameException("the role is null");
|
||||
|
||||
// role.userview.movement.characterAnimator.DeadToIdle();
|
||||
// role.userview.TeleportingToPos(revive.pos);
|
||||
// role.status.state = (int)CharacterState.Living;
|
||||
// }
|
||||
|
||||
// //角色升级
|
||||
// public void OnRoleLevelUp(object sender, LogicEventArgs e)
|
||||
// {
|
||||
// RoleLevelupEventArgs msg = (RoleLevelupEventArgs)e;
|
||||
// if (msg == null)
|
||||
// throw new GameException("RoleLevelupEventArgs is null");
|
||||
|
||||
// S_ROLE_BASE role = null;
|
||||
// if (msg.roleIndex == myrole.mem.userindex)
|
||||
// {
|
||||
// //如果升级的是自己
|
||||
// role = myrole;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// role = UserData.findRoleData(msg.roleIndex);
|
||||
|
||||
// if (role == null)
|
||||
// throw new GameException("the role is null");
|
||||
// }
|
||||
|
||||
// role.exp.level = msg.currentLevel;
|
||||
// Log.Warning($"角色提升到{role.exp.level}级");
|
||||
// }
|
||||
|
||||
// //角色播放buff
|
||||
// public void AddBuffer(object sender, LogicEventArgs e)
|
||||
// {
|
||||
// //播放特效
|
||||
// AddRoleBufferEvent msg = (AddRoleBufferEvent)e;
|
||||
// if (msg == null)
|
||||
// throw new GameException("AddRoleBufferEvent is null");
|
||||
|
||||
// if (msg.roleIndex != myrole.mem.userindex)
|
||||
// return;
|
||||
|
||||
// AppEntry.Event.Fire(this, AddBufferIconEvent.Create(msg.buffId));
|
||||
// }
|
||||
|
||||
// //角色删除buff
|
||||
// public void RemoveBuffer(object sender, LogicEventArgs e)
|
||||
// {
|
||||
// //删除特效
|
||||
// RemoveRoleBufferEvent msg = (RemoveRoleBufferEvent)e;
|
||||
// if (msg == null)
|
||||
// throw new GameException("AddRoleBufferEvent is null");
|
||||
|
||||
// if (msg.roleIndex != myrole.mem.userindex)
|
||||
// return;
|
||||
|
||||
// AppEntry.Event.Fire(this, RemoveBufferIconEvent.Create(msg.buffId));
|
||||
// }
|
||||
|
||||
// // Update is called once per frame
|
||||
// void Update()
|
||||
// {
|
||||
// #region
|
||||
// if (Input.GetKeyDown(KeyCode.O))
|
||||
// {
|
||||
// CaoCaoLog.Debug("测试换装到,DD");
|
||||
// MainPlayerChangeEquipment((byte)eJob.Warrior, "DD");
|
||||
// }
|
||||
// if (Input.GetKeyDown(KeyCode.P))
|
||||
// {
|
||||
// CaoCaoLog.Debug("测试换装到,KD");
|
||||
// MainPlayerChangeEquipment((byte)eJob.Warrior, "KD");
|
||||
// }
|
||||
// if (Input.GetKeyDown(KeyCode.U))
|
||||
// {
|
||||
// CaoCaoLog.Debug("测试升级");
|
||||
// UIMgr.Instance.OpenUI<TipShowLevelUpUI>();
|
||||
// }
|
||||
// if (Input.GetKeyDown(KeyCode.Y))
|
||||
// {
|
||||
// HotfixEntry.UI.OpenUI<AttrPointTipsUI>();
|
||||
// }
|
||||
// if (Input.GetKeyDown(KeyCode.T))
|
||||
// {
|
||||
// HotfixEntry.UI.OpenUI<TaskMainUI>();
|
||||
// }
|
||||
// //if (Input.GetKeyDown(KeyCode.M))
|
||||
// //{
|
||||
// // if (!HotfixEntry.UI.IsOpen<FullMapUI>())
|
||||
// // HotfixEntry.UI.OpenUI<FullMapUI>();
|
||||
// //}
|
||||
// #endregion
|
||||
|
||||
// if (HotfixEntry.MainPlayer.myView == null)
|
||||
// return;
|
||||
|
||||
// if (!UserData.role.isEntryWorld)
|
||||
// return;
|
||||
|
||||
|
||||
// //1、同步自己的移动 三大策略发送移动数据
|
||||
// SyncMove();
|
||||
// UserBuffManager.renderBuff();
|
||||
|
||||
// UpdateUserCell();
|
||||
|
||||
// //2、更新其他玩家显示 200毫秒检查一次
|
||||
// float ftime = Time.time - temp_CheckTime;
|
||||
// if (ftime > 0.2f)
|
||||
// {
|
||||
// temp_CheckTime = Time.time;
|
||||
// UpdateUserRect();
|
||||
// return;
|
||||
// }
|
||||
|
||||
// //3、更新其他玩家信息
|
||||
// foreach (var r in UserData.onlines)
|
||||
// {
|
||||
// var role = r.Value;
|
||||
// if (role.userview == null)
|
||||
// continue;
|
||||
|
||||
// if (role.userview.go == null)
|
||||
// continue;
|
||||
|
||||
// if (role.status.state == (int)CharacterState.Dead)
|
||||
// continue;
|
||||
|
||||
// role.userview.Update();
|
||||
// }
|
||||
|
||||
// //4、排队申请其他玩家和怪物数据 节约服务器性能 把峰值平摊在逐帧
|
||||
// float ftime2 = Time.time - temp_RequestTime;
|
||||
// if (ftime2 > 0.05f)
|
||||
// {
|
||||
// temp_RequestTime = Time.time;
|
||||
// UpdateRequestRoleData();
|
||||
// UpdateRequestRobotData();
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// private void UpdateUserCell()
|
||||
// {
|
||||
// int[] keys = UserData.onlines.Keys.ToArray();
|
||||
|
||||
// for (int i = 0; i < keys.Length; i++)
|
||||
// {
|
||||
// S_ROLE_BASE user = UserData.onlines[keys[i]];
|
||||
// if (user.mem.userindex != HotfixEntry.MainPlayer.myDataSet.GetCharIndex() && user.status.state < (byte)CharacterState.Dead && user.life.curHP > 0)
|
||||
// {
|
||||
// //产生时,标记角色格子占据
|
||||
// HotfixEntry.Map.SetRoleCell(keys[i], user.userview.go.transform.position, E_NODE_TYPE.N_ROLE);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// //更新请求玩家数据列表或者怪物数据列表
|
||||
// private void UpdateRequestRoleData()
|
||||
// {
|
||||
// if (UserData.requestRoleDatas.Count == 0)
|
||||
// return;
|
||||
|
||||
// Int32 count = 0;
|
||||
// foreach (var r in UserData.requestRoleDatas)
|
||||
// {
|
||||
// int index = r.Value;
|
||||
// temp_RemoveRequest.Enqueue(index);
|
||||
// ++count;
|
||||
// if (count >= UserData.MAX_REQUEST_ROLE_COUNT)
|
||||
// break;
|
||||
// }
|
||||
|
||||
// //清理玩家
|
||||
// while (temp_RemoveRequest.Count > 0)
|
||||
// {
|
||||
// Int32 userindex = temp_RemoveRequest.Dequeue();
|
||||
// //移除其他玩家
|
||||
// UserData.removeRequestRoledata(userindex);
|
||||
// //发送请求其他玩家详细数据
|
||||
// AppEntryWorld.send_700(userindex);
|
||||
// //var entryWorld = HotfixEntry.Resources.m_Assembly.GetType("Game.HotFix.AppEntryWorld");
|
||||
// //var start = entryWorld.GetMethod("send_700");
|
||||
// //start?.Invoke(null, new object[] { userindex });
|
||||
|
||||
|
||||
// //AppEntryWorld.send_700(userindex);
|
||||
// }
|
||||
|
||||
// temp_RemoveRequest.Clear();
|
||||
// }
|
||||
|
||||
// //更新请求玩家数据列表或者怪物数据列表
|
||||
// private void UpdateRequestRobotData()
|
||||
// {
|
||||
// if (UserData.requestRobotDatas.Count == 0)
|
||||
// return;
|
||||
|
||||
// Int32 count = 0;
|
||||
// foreach (var r in UserData.requestRobotDatas)
|
||||
// {
|
||||
// int index = r.Value;
|
||||
// temp_RemoveRequest.Enqueue(index);
|
||||
// ++count;
|
||||
// if (count >= UserData.MAX_REQUEST_ROBOT_COUNT)
|
||||
// break;
|
||||
// }
|
||||
// //清理玩家
|
||||
// while (temp_RemoveRequest.Count > 0)
|
||||
// {
|
||||
// Int32 robotindex = temp_RemoveRequest.Dequeue();
|
||||
// //移除其他玩家
|
||||
// UserData.removeRequestRobotdata(robotindex);
|
||||
|
||||
// //var app = HotfixEntry.Resources.m_Assembly.GetType("Game.HotFix.AppRobot");
|
||||
// //var method = app.GetMethod("send_8000");
|
||||
// //method?.Invoke(null, new object[] { robotindex });
|
||||
|
||||
// //发送请求怪物详细数据
|
||||
// AppRobot.send_8000(robotindex);
|
||||
// }
|
||||
|
||||
// temp_RemoveRequest.Clear();
|
||||
// }
|
||||
|
||||
// //玩家离开世界
|
||||
// public void LeaveWorld(S_ROLE_BASE role)
|
||||
// {
|
||||
// if (role == null)
|
||||
// return;
|
||||
|
||||
// //释放角色,清楚角色格子占据数据
|
||||
// HotfixEntry.Map.ClearRoleCellData(role.mem.userindex, E_NODE_TYPE.N_ROLE);
|
||||
|
||||
// //0、清理锁定
|
||||
// ClearLock(role, null);
|
||||
|
||||
// //1、释放显示资源
|
||||
// if (role.userview != null)
|
||||
// {
|
||||
// //role.userview.Release();
|
||||
// Release(role);
|
||||
// UserData.pushUserView(role.userview);
|
||||
// role.userview = null;
|
||||
|
||||
// //清除便捷数据类
|
||||
// UserData.pushRoleDataSet(role.dataSet);
|
||||
// role.dataSet = null;
|
||||
// }
|
||||
|
||||
// //2、释放数据
|
||||
// UserData.removeRoleData(role.mem.userindex);//从玩家数据中移除
|
||||
// UserData.pushRoleData(role);//放回对象回收池 重复利用
|
||||
|
||||
// }
|
||||
|
||||
// public void ClearLock(S_ROLE_BASE role, S_ROBOT_BASE robot)
|
||||
// {
|
||||
// bool islock = false;
|
||||
// if (role == null && robot == null)
|
||||
// {
|
||||
// islock = true;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// switch ((Lock_Type)UserData.role.tmp.lockData.lock_type)
|
||||
// {
|
||||
// case Lock_Type.LOCK_PLAYER:
|
||||
// if (role != null)
|
||||
// if (role.mem.userindex == UserData.role.tmp.lockData.lock_index)
|
||||
// islock = true;
|
||||
// break;
|
||||
// case Lock_Type.LOCK_MONSTER:
|
||||
// if (robot != null)
|
||||
// if (robot.data.robotindex == UserData.role.tmp.lockData.lock_index)
|
||||
// islock = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (!islock)
|
||||
// return;
|
||||
|
||||
// if (UserData.role.tmp.lockData.lock_type > 0)
|
||||
// {
|
||||
// //FGUIManager.GetFUI(FGUIType.BattlePanel).GetComponent<UIBattleComponent>().HideSelectObjInfo();
|
||||
// //GameObject.Destroy(MyUserData.lockeffect);
|
||||
// }
|
||||
|
||||
// UserData.role.tmp.lockData.Init();
|
||||
// }
|
||||
|
||||
// //同步移动 状态同步
|
||||
// //三种策略 1、状态发送变化 2、方向发生了变化 3、距离发生了变化
|
||||
// public void SyncMove()
|
||||
// {
|
||||
// float face = HotfixEntry.MainPlayer.myView.movement.CurRotate;
|
||||
|
||||
// //1、状态发生变化
|
||||
// if (myrole.move.state != myrole.move.oldstate)
|
||||
// {
|
||||
// myrole.move.oldstate = myrole.move.state;
|
||||
// SendMove();
|
||||
// return;
|
||||
// }
|
||||
|
||||
// if (myrole.move.state == 0)
|
||||
// return;
|
||||
|
||||
// //2、验证距离
|
||||
// float ftime = Time.time - myrole.move.syncTime;
|
||||
// if (ftime > 0.2f)
|
||||
// {
|
||||
// //距离格子中心点0.2才算
|
||||
// Vector3 centerPos = HotfixEntry.Map.GetPosByCell(HotfixEntry.MainPlayer.myView.movement.CurCell.X, HotfixEntry.MainPlayer.myView.movement.CurCell.Y);
|
||||
// float centerDis = Vector3.Distance(HotfixEntry.MainPlayer.myView.Pos, centerPos);
|
||||
// if (centerDis >= 0.2f)
|
||||
// return;
|
||||
|
||||
|
||||
// Vector3 tPos = new Vector3(HotfixEntry.MainPlayer.myView.movement.CurCell.X, 0, HotfixEntry.MainPlayer.myView.movement.CurCell.Y);
|
||||
// float distance = Vector3.Distance(myrole.move.pos, tPos);
|
||||
// if (distance >= 0.8f)
|
||||
// {
|
||||
// SendMove();
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
// else if (ftime > 0.1f)
|
||||
// {
|
||||
// //3、角度发生了变化
|
||||
// float angle = Math.Abs(myrole.move.face - face);
|
||||
// if (angle >= 5)
|
||||
// {
|
||||
// SendMove();
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// public void SendMove()
|
||||
// {
|
||||
// float face = HotfixEntry.MainPlayer.myView.movement.CurRotate;
|
||||
|
||||
// myrole.move.syncTime = Time.time;
|
||||
// myrole.move.face = face;
|
||||
|
||||
// //发送数据
|
||||
// if (myrole.move.state == 0)
|
||||
// AppMove.send_1000(face, 0, myrole.status.pos, myrole.status.pos);
|
||||
// else
|
||||
// {
|
||||
// myrole.move.pos = new Vector3(HotfixEntry.MainPlayer.myView.movement.CurCell.X, 0, HotfixEntry.MainPlayer.myView.movement.CurCell.Y);
|
||||
// //Log.Debug($"发送路径:起始点:[{myrole.status.pos}], 结束点:[{myrole.move.pos}]");
|
||||
// AppMove.send_1000(face, HotfixEntry.MainPlayer.myView.movement.speed, myrole.status.pos, myrole.move.pos);
|
||||
// myrole.status.pos = new Vector3(HotfixEntry.MainPlayer.myView.movement.CurCell.X, 0, HotfixEntry.MainPlayer.myView.movement.CurCell.Y);
|
||||
|
||||
// }
|
||||
|
||||
// HotfixEntry.Map.UpdateUserBC(myrole);
|
||||
|
||||
// }
|
||||
|
||||
|
||||
// //更新删除玩家显示
|
||||
// //玩家三大策略 1、收到服务器玩家离开信息删除ok 2、不在主控玩家九宫格范围删除 3、心跳包时间超时删除
|
||||
// private void UpdateUserRect()
|
||||
// {
|
||||
// foreach (var r in UserData.onlines)
|
||||
// {
|
||||
// var role = r.Value;
|
||||
// if (role.userview == null)
|
||||
// continue;
|
||||
|
||||
// if (role.userview.go == null)
|
||||
// continue;
|
||||
|
||||
// role.userview.Update();
|
||||
|
||||
// //1、验证大格子是不是在主控玩家九宫格区域内
|
||||
// if (!myrole.bc.edge.IsRect(role.bc.grid_big.row, role.bc.grid_big.col))
|
||||
// {
|
||||
// //需要删除
|
||||
// temp_RemoveUser.Enqueue(role);
|
||||
|
||||
// Debug.Log("玩家不在九宫格范围..." + role.mem.userId);
|
||||
// continue;
|
||||
// }
|
||||
// //2、心跳时间验证 超过60秒 认为这个玩家是个死链接 删除
|
||||
// float ftime = Time.time - role.tmp.heartTime;
|
||||
// if (ftime > 60)
|
||||
// {
|
||||
// //需要删除
|
||||
// temp_RemoveUser.Enqueue(role);
|
||||
// Debug.Log("玩家hearttime...删除" + role.mem.userId);
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
|
||||
// //清理玩家
|
||||
// while (temp_RemoveUser.Count > 0)
|
||||
// {
|
||||
// var role = temp_RemoveUser.Dequeue();
|
||||
// //移除其他玩家
|
||||
// if (UserData.onlines.ContainsKey(role.mem.userindex))
|
||||
// {
|
||||
// UserData.onlines.Remove(role.mem.userindex);
|
||||
// }
|
||||
// //玩家离开世界
|
||||
// LeaveWorld(role);
|
||||
// }
|
||||
// temp_RemoveUser.Clear();
|
||||
// }
|
||||
|
||||
// public List<S_ROLE_BASE> GetRoleListInRadius(int cellNum, int curRobotIndex = -1)
|
||||
// {
|
||||
// CellNode cur = HotfixEntry.MainPlayer.myView.CurCell;
|
||||
// List<S_ROLE_BASE> roles = new List<S_ROLE_BASE>();
|
||||
|
||||
// foreach (var r in UserData.onlines)
|
||||
// {
|
||||
// var role = r.Value;
|
||||
// if (role.userview == null)
|
||||
// continue;
|
||||
|
||||
// var roleCell = role.userview.CurCell;
|
||||
|
||||
// float count = Vector2Int.Distance(new Vector2Int(cur.X, cur.Y), new Vector2Int(roleCell.X, roleCell.Y));
|
||||
// //超过距离,过滤
|
||||
// if (count > cellNum)
|
||||
// continue;
|
||||
|
||||
|
||||
// //当前已选中怪,过滤, 并且取消选中状态
|
||||
// if (role.mem.userindex == curRobotIndex)
|
||||
// continue;
|
||||
|
||||
// roles.Add(role);
|
||||
// }
|
||||
|
||||
// return roles;
|
||||
// }
|
||||
|
||||
// public void SetAllSublightOff()
|
||||
// {
|
||||
// foreach (var r in UserData.onlines)
|
||||
// {
|
||||
// var role = r.Value;
|
||||
// if (role.userview == null)
|
||||
// continue;
|
||||
|
||||
// role.userview.SetSublightOff();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 43144cb712dca51408ee7f9be700a154
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -3,6 +3,29 @@ using UnityEngine;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
|
||||
//主控玩家角色数据
|
||||
public class S_ROLE_SELF : S_ROLE_DATA_BASE
|
||||
{
|
||||
public S_ROLE_ECON econ;//经济
|
||||
|
||||
public S_ROLE_MOVE move;
|
||||
public S_ROLE_SELF(int RoleID)
|
||||
{
|
||||
RoleType = E_NODE_TYPE.N_MAINPLAYER;
|
||||
move = new S_ROLE_MOVE();
|
||||
econ = new S_ROLE_ECON();
|
||||
}
|
||||
|
||||
override public void Init()
|
||||
{
|
||||
base.Init();
|
||||
exp.Init();
|
||||
move.Init();
|
||||
econ.Init();
|
||||
}
|
||||
}
|
||||
|
||||
//½ÇÉ«¾Ñé
|
||||
public class S_ROLE_EXP
|
||||
{
|
||||
@ -20,13 +43,9 @@ namespace Game
|
||||
public class S_ROLE_ECON
|
||||
{
|
||||
public long gold;//½ð±Ò
|
||||
public long vcoin;//元宝
|
||||
public long silverCoin;//银币
|
||||
public void Init()
|
||||
{
|
||||
gold = 0;
|
||||
vcoin = 0;
|
||||
silverCoin = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -173,25 +192,4 @@ namespace Game
|
||||
pos.x = 0; pos.y = 0; pos.z = 0;
|
||||
}
|
||||
}
|
||||
|
||||
//主控玩家角色数据
|
||||
public class S_ROLE_SELF : S_ROLE_BASE
|
||||
{
|
||||
public S_ROLE_ECON econ;//经济
|
||||
|
||||
public S_ROLE_MOVE move;
|
||||
public S_ROLE_SELF()
|
||||
{
|
||||
move = new S_ROLE_MOVE();
|
||||
econ = new S_ROLE_ECON();
|
||||
}
|
||||
override public void Init()
|
||||
{
|
||||
base.Init();
|
||||
exp.Init();
|
||||
move.Init();
|
||||
econ.Init();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,27 +1,29 @@
|
||||
namespace Game
|
||||
{
|
||||
//玩家角色数据
|
||||
public class S_ROLE_BASE
|
||||
public class S_ROLE_DATA_BASE
|
||||
{
|
||||
public E_NODE_TYPE RoleType;
|
||||
|
||||
//玩家数据
|
||||
public S_ROLE_INNATE innate;//先天属性
|
||||
public S_ROLE_STATUS status;//状态
|
||||
public S_ROLE_LIFE life;//生命
|
||||
public S_ROLE_EXP exp;//经验
|
||||
public S_ROLE_BATTLEATTR_1ST battleattr1st;//1级战斗属性
|
||||
public S_ROLE_BATTLEATTR battleattr;
|
||||
//public S_ROLE_BATTLEATTR_1ST battleattr1st;//1¼¶Õ½¶·ÊôÐÔ
|
||||
//public S_ROLE_BATTLEATTR battleattr;
|
||||
|
||||
public bool isEntryWorld;
|
||||
|
||||
public S_ROLE_BASE()
|
||||
public S_ROLE_DATA_BASE()
|
||||
{
|
||||
innate = new S_ROLE_INNATE();
|
||||
status = new S_ROLE_STATUS();
|
||||
life = new S_ROLE_LIFE();
|
||||
exp = new S_ROLE_EXP();
|
||||
|
||||
battleattr1st = new S_ROLE_BATTLEATTR_1ST();
|
||||
battleattr = new S_ROLE_BATTLEATTR();
|
||||
//battleattr1st = new S_ROLE_BATTLEATTR_1ST();
|
||||
//battleattr = new S_ROLE_BATTLEATTR();
|
||||
|
||||
isEntryWorld = false;
|
||||
}
|
||||
@ -30,10 +32,8 @@ namespace Game
|
||||
{
|
||||
status.Init();
|
||||
life.Init();
|
||||
exp.Init();
|
||||
|
||||
battleattr1st.Init();
|
||||
//exp.Init();
|
||||
//battleattr1st.Init();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
8
Assets/Scripts/Main/Role.meta
Normal file
8
Assets/Scripts/Main/Role.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 863450b96fdef644d89f32a174fcf8b9
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/Scripts/Main/Role/CharacterMachine.meta
Normal file
8
Assets/Scripts/Main/Role/CharacterMachine.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 92dd00f3d5b6be043b7e9496acfaeddb
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,80 @@
|
||||
using Game;
|
||||
using Game.HotFix;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
namespace Game
|
||||
{
|
||||
public class CharacterMachine : ICharMachineBase //是否使用其他基类或是否使用MonoBehaviour 靠外部驱动,按需修改
|
||||
{
|
||||
|
||||
private Animator _animator;
|
||||
|
||||
public bool IsAttacking()
|
||||
{
|
||||
AnimatorStateInfo stateInfo = _animator.GetCurrentAnimatorStateInfo(0);
|
||||
|
||||
if (stateInfo.IsName("Idle01"))
|
||||
return false;
|
||||
|
||||
if (stateInfo.IsName("Run"))
|
||||
return false;
|
||||
|
||||
if (stateInfo.IsName("Hit"))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#region 虚函数实现
|
||||
public void InitMachine(Transform trans)
|
||||
{
|
||||
_animator = trans.GetComponent<Animator>();
|
||||
}
|
||||
|
||||
public void ReleazeMachine()
|
||||
{
|
||||
_animator = null;
|
||||
}
|
||||
public void Update_Logic()
|
||||
{ }
|
||||
|
||||
public void StartRun()
|
||||
{
|
||||
_animator.SetInteger("Speed", 1);
|
||||
}
|
||||
|
||||
public void BackToIdle()
|
||||
{
|
||||
_animator.SetInteger("Speed", 0);
|
||||
}
|
||||
public void DeadToIdle()
|
||||
{
|
||||
_animator.SetBool("Dead", false);
|
||||
}
|
||||
|
||||
|
||||
public void SetAttack(string anim)
|
||||
{
|
||||
_animator.SetBool(anim, true);
|
||||
}
|
||||
|
||||
public void SetOtherAnime(string anim)
|
||||
{
|
||||
_animator.Play(anim);
|
||||
}
|
||||
|
||||
public void PlayDead()
|
||||
{
|
||||
_animator.SetBool("Dead", true);
|
||||
}
|
||||
|
||||
public void StartHit()
|
||||
{
|
||||
_animator.SetBool("Hit", true);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 42d4639d3c8bb9543868f68d9315a75a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,24 @@
|
||||
using Axibug;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
public interface ICharMachineBase
|
||||
{
|
||||
/// <summary>
|
||||
/// ´«ÈëÓж¯»»úµÄ²ã¼¶
|
||||
/// </summary>
|
||||
/// <param name="trans"></param>
|
||||
public abstract void InitMachine(Transform trans);
|
||||
public abstract void ReleazeMachine();
|
||||
public abstract void Update_Logic();
|
||||
public abstract void SetAttack(string anim);
|
||||
public abstract void SetOtherAnime(string anim);
|
||||
public abstract void PlayDead();
|
||||
public abstract void StartHit();
|
||||
public abstract void StartRun();
|
||||
public abstract void BackToIdle();
|
||||
public abstract void DeadToIdle();
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 899a62e98309e3b4cb500fa3faa9e2a4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
24
Assets/Scripts/Main/Role/MainRole.cs
Normal file
24
Assets/Scripts/Main/Role/MainRole.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using Axibug;
|
||||
using Axibug.Runtime;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
public abstract class MainRole : RoleBase
|
||||
{
|
||||
/// <summary>
|
||||
/// ³õʼ»¯
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
public void Init(S_ROLE_SELF data)
|
||||
{
|
||||
base.Init(data);
|
||||
}
|
||||
|
||||
public override void Release()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/Main/Role/MainRole.cs.meta
Normal file
11
Assets/Scripts/Main/Role/MainRole.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 89233ed8a4aa86247be5d5a1de5e66f9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
45
Assets/Scripts/Main/Role/RoleBase.cs
Normal file
45
Assets/Scripts/Main/Role/RoleBase.cs
Normal file
@ -0,0 +1,45 @@
|
||||
using Axibug;
|
||||
using Axibug.Runtime;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
public abstract class RoleBase : MonoBehaviour
|
||||
{
|
||||
protected E_NODE_TYPE mRoleType => mData.RoleType;
|
||||
protected Int64 mRoleID => mData.innate.roleid;
|
||||
|
||||
/// <summary>
|
||||
/// ¶¯»¿ØÖÆÆ÷
|
||||
/// </summary>
|
||||
protected ICharMachineBase Anime;
|
||||
|
||||
protected S_ROLE_DATA_BASE mData;
|
||||
|
||||
/// <summary>
|
||||
/// ³õʼ»¯
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
public virtual void Init(S_ROLE_DATA_BASE data)
|
||||
{
|
||||
mData = data;
|
||||
if (mRoleType == E_NODE_TYPE.N_MAINPLAYER)
|
||||
{
|
||||
Anime = new CharacterMachine();
|
||||
Anime.InitMachine(transform.Find("Model"));
|
||||
}
|
||||
else if (mRoleType == E_NODE_TYPE.N_MONSTER)
|
||||
{
|
||||
|
||||
}
|
||||
else if (mRoleType == E_NODE_TYPE.N_NPC)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public abstract void Release();
|
||||
}
|
||||
}
|
11
Assets/Scripts/Main/Role/RoleBase.cs.meta
Normal file
11
Assets/Scripts/Main/Role/RoleBase.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 16d753beef6b04247956d321f0cc9a9b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -115,7 +115,7 @@
|
||||
<Compile Include="Assets\Scripts\Main\UI\UIYYControl\UITimer.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\UI\Native\NativeConfirmUI.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\Procedure\ProcedureSplash.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\Definition\DataStruct\Role\S_ROLE_BASE.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\Definition\DataStruct\Role\S_ROLE_DATA_BASE.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\UI\UIYYControl\UIPolygon.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\Base\AppEntry.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\BuiltinData\BuiltinDataComponent.cs" />
|
||||
@ -124,6 +124,11 @@
|
||||
<Compile Include="Assets\Scripts\Main\CustomsComponent\InputComponent.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\UI\UIMgr\UIAutoAdjustWidth.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\Procedure\ProcedureInitSystem.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\CustomsComponent\UserMgrComponent.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\Role\RoleBase.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\Role\CharacterMachine\ICharMachineBase.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\Role\CharacterMachine\CharacterMachine.cs" />
|
||||
<Compile Include="Assets\Scripts\Main\Role\MainRole.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Assets\Scripts\Main\Game.asmdef" />
|
||||
|
Loading…
Reference in New Issue
Block a user