2025-07-08 10:46:31 +00:00
|
|
|
|
using Superlazy;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
public class UnitViewHP : UnitViewComponent
|
|
|
|
|
{
|
|
|
|
|
public override void Init()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void Bind()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void Unbind()
|
|
|
|
|
{
|
|
|
|
|
if (Entity.HasChild("ShowHP")) Entity["ShowHP"] = false;
|
|
|
|
|
if (Entity.HasChild("ShowShield")) Entity["ShowShield"] = false;
|
|
|
|
|
if (Entity.HasChild("ShowMaxHP")) Entity["ShowMaxHP"] = false;
|
|
|
|
|
|
|
|
|
|
if (Entity.HasChild("FollowHP")) Entity["FollowHP"] = false;
|
|
|
|
|
if (Entity.HasChild("BeforeHP")) Entity["BeforeHP"] = false;
|
|
|
|
|
if (Entity.HasChild("BeforeHPKeepTime")) Entity["BeforeHPKeepTime"] = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Update()
|
|
|
|
|
{
|
|
|
|
|
if (Entity.HasChild("HP"))
|
|
|
|
|
{
|
|
|
|
|
Entity["ShowHP"] = Entity["HP"];
|
|
|
|
|
Entity["ShowShield"] = Entity["HP"] + Entity["Shield"];
|
|
|
|
|
Entity["ShowMaxHP"] = Entity["ShowShield"] > Entity["MaxHP"] ? Entity["ShowShield"] : Entity["MaxHP"];
|
|
|
|
|
|
|
|
|
|
if (Entity["FollowHP"] < Entity["ShowHP"])
|
|
|
|
|
{
|
|
|
|
|
Entity["FollowHP"] = Entity["ShowHP"];
|
|
|
|
|
Entity["BeforeHPKeepTime"] = 0;
|
|
|
|
|
}
|
|
|
|
|
else if (Entity["FollowHP"] > Entity["ShowHP"])
|
|
|
|
|
{
|
|
|
|
|
if (Entity["BeforeHP"] != Entity["ShowHP"])
|
|
|
|
|
{
|
|
|
|
|
Entity["BeforeHPKeepTime"] = 0;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Entity["BeforeHPKeepTime"] += Time.deltaTime;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Entity["BeforeHPKeepTime"] >= SLSystem.Data["Default"]["HPFollowWaitDelay"])
|
|
|
|
|
{
|
|
|
|
|
Entity["FollowHP"] = Mathf.Lerp(
|
|
|
|
|
Entity["FollowHP"],
|
|
|
|
|
Entity["ShowHP"],
|
|
|
|
|
Time.deltaTime / SLSystem.Data["Default"]["HPFollowDuration"]
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Entity["BeforeHP"] = Entity["ShowHP"];
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (Entity.HasChild("ShowHP")) Entity["ShowHP"] = false;
|
|
|
|
|
if (Entity.HasChild("ShowShield")) Entity["ShowShield"] = false;
|
|
|
|
|
if (Entity.HasChild("ShowMaxHP")) Entity["ShowMaxHP"] = false;
|
|
|
|
|
|
|
|
|
|
if (Entity.HasChild("FollowHP")) Entity["FollowHP"] = false;
|
|
|
|
|
if (Entity.HasChild("BeforeHP")) Entity["BeforeHP"] = false;
|
|
|
|
|
if (Entity.HasChild("BeforeHPKeepTime")) Entity["BeforeHPKeepTime"] = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|