110 lines
2.6 KiB
C#
110 lines
2.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
using System.Text;
|
|
using UnityEngine;
|
|
|
|
using Thousandto.Core.RootSystem;
|
|
using Thousandto.Core.Base;
|
|
|
|
namespace Thousandto.Code.Logic
|
|
{
|
|
//LocalPlayer的根--也用于保存LocalPlayer
|
|
public static class LocalPlayerRoot
|
|
{
|
|
#region//常量
|
|
//创建的实例名字
|
|
private const String CN_NAME = "[LocalPlayer]";
|
|
#endregion
|
|
|
|
//主角的对象
|
|
private static ulong _localPlayerID = 0;
|
|
private static LocalPlayer _localPlayer = null;
|
|
private static Transform _root = null;
|
|
private static int _curMountId = 0;
|
|
|
|
public static LocalPlayer LocalPlayer
|
|
{
|
|
get
|
|
{
|
|
return _localPlayer;
|
|
}
|
|
}
|
|
|
|
public static ulong LocalPlayerID
|
|
{
|
|
get
|
|
{
|
|
return _localPlayerID;
|
|
}
|
|
}
|
|
public static int CurMountId
|
|
{
|
|
get
|
|
{
|
|
return _curMountId;
|
|
}
|
|
set
|
|
{
|
|
_curMountId = value;
|
|
}
|
|
}
|
|
|
|
//设置本地玩家ID
|
|
public static void SetLocalPlayerID(ulong id)
|
|
{
|
|
_localPlayerID = id;
|
|
}
|
|
|
|
//设置LocalPlayer
|
|
public static void SetLocalPlayer(LocalPlayer player)
|
|
{
|
|
if (_localPlayer != player)
|
|
{
|
|
if (_localPlayer != null)
|
|
{
|
|
_localPlayer.Uninitialize();
|
|
}
|
|
|
|
_localPlayer = player;
|
|
if (_localPlayer != null)
|
|
{
|
|
_localPlayerID = _localPlayer.ID;
|
|
if (_localPlayer.Skin != null && _localPlayer.Skin.IsValid)
|
|
{
|
|
_localPlayer.Skin.SetParent(GetRoot());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void Uninitialize()
|
|
{
|
|
_localPlayerID = 0;
|
|
if (_localPlayer != null)
|
|
{
|
|
_localPlayer.Uninitialize();
|
|
_localPlayer = null;
|
|
}
|
|
if (_root != null)
|
|
{
|
|
GameObject.Destroy(_root.gameObject);
|
|
_root = null;
|
|
}
|
|
|
|
}
|
|
|
|
private static Transform GetRoot()
|
|
{
|
|
if (_root == null)
|
|
{
|
|
var go = new GameObject(CN_NAME);
|
|
_root = go.transform;
|
|
_root.parent = AppRoot.Transform;
|
|
}
|
|
return _root;
|
|
}
|
|
|
|
}
|
|
}
|