using vnxbqy.UI;
|
using UnityEngine;
|
|
public class GA_NpcTouchKilled : GActorNpcNoFight
|
{
|
private bool m_Touched = false;
|
|
private HeadUpName m_HeadUpName;
|
// 用于触发点击的组件
|
private H0406_tagNPCAppear m_H0406;
|
|
protected override void OnInit(GameNetPackBasic package)
|
{
|
base.OnInit(package);
|
|
m_H0406 = package as H0406_tagNPCAppear;
|
|
if (m_H0406 == null)
|
{
|
Debug.LogErrorFormat("Npc 执行初始化时, 传入的包错误...{0}", package.GetType());
|
}
|
|
m_Touched = false;
|
// 初始化坐标
|
AdjustPos(m_H0406.PosX, m_H0406.PosY);
|
|
// 功能NPC需要读取配置朝向
|
GAStaticDefine.NPCLocation _npcLocation;
|
if (GAStaticDefine.TryGetMapNPCLocation(NpcConfig.NPCID, out _npcLocation))
|
{
|
Rotation = MathUtility.GetClientRotationFromAngle(_npcLocation.face);
|
}
|
else
|
{
|
Rotation = Quaternion.Euler(0, UnityEngine.Random.Range(0, 360), 0);
|
}
|
|
GAStaticDefine.NpcID2ServerInstID[NpcConfig.NPCID] = ServerInstID;
|
}
|
|
protected override void OnUnit()
|
{
|
m_H0406 = null;
|
|
ReleaseName();
|
|
base.OnUnit();
|
}
|
|
protected sealed override void OnLateUpdate() { }
|
protected sealed override void OnFixedUpdate()
|
{
|
if (!m_Touched)
|
{
|
GA_Hero _hero = PlayerDatas.Instance.hero;
|
if (_hero != null)
|
{
|
float _distSqrt = MathUtility.DistanceSqrtXZ(_hero.Pos, Pos);
|
if (_distSqrt < 1f)
|
{
|
CA224_tagCMTouchNPC _proto = new CA224_tagCMTouchNPC
|
{
|
ObjID = ServerInstID
|
};
|
if (CrossServerUtility.IsCrossServer())
|
{
|
GameNetSystem.Instance.SendToCrossServer(_proto);
|
}
|
else
|
{
|
GameNetSystem.Instance.SendInfo(_proto);
|
}
|
m_Touched = true;
|
}
|
}
|
}
|
}
|
protected sealed override void OnUpdate() { }
|
|
public sealed override void Die() { }
|
public sealed override void Hurt() { }
|
public sealed override void HurtDown() { }
|
|
public sealed override void RequestLifeBar() { }
|
public sealed override void ReleaseLifeBar() { }
|
|
public sealed override void RequestName()
|
{
|
ReleaseName();
|
|
HeadUpName.Pattern _pattern = HeadUpName.Pattern.FunctionNPC;
|
|
m_HeadUpName = HeadUpName.RequireHeadUpName(_pattern, MP_Name, 0, CameraController.Instance.CameraObject);
|
|
m_HeadUpName.SetNPCName(NpcConfig.charName);
|
|
}
|
|
public sealed override void ReleaseName()
|
{
|
if (m_HeadUpName)
|
{
|
m_HeadUpName.target = null;
|
HeadUpName.Recycle(m_HeadUpName);
|
m_HeadUpName = null;
|
}
|
}
|
|
public sealed override void OnSelect() { }
|
|
public sealed override void OnUnSelect() { }
|
|
public sealed override bool CanBeSelected()
|
{
|
return false;
|
}
|
|
public sealed override void OnClick()
|
{
|
throw new System.NotImplementedException();
|
}
|
}
|