TH1/Unity/Assets/Scripts/HotfixView/Client/Demo/Opera/OperaComponentSystem.cs
2025-07-17 18:26:28 +08:00

68 lines
2.2 KiB
C#

using UnityEngine;
namespace ET.Client
{
[EntitySystemOf(typeof(OperaComponent))]
[FriendOf(typeof(OperaComponent))]
public static partial class OperaComponentSystem
{
[EntitySystem]
private static void Awake(this OperaComponent self)
{
self.mapMask = LayerMask.GetMask("Map");
}
[EntitySystem]
private static void Update(this OperaComponent self)
{
if (Input.GetMouseButtonDown(1))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 1000, self.mapMask))
{
C2M_PathfindingResult c2MPathfindingResult = C2M_PathfindingResult.Create();
c2MPathfindingResult.Position = hit.point;
self.Root().GetComponent<ClientSenderComponent>().Send(c2MPathfindingResult);
}
}
if (Input.GetKeyDown(KeyCode.Q))
{
self.Test1().Coroutine();
}
if (Input.GetKeyDown(KeyCode.W))
{
self.Test2().Coroutine();
}
if (Input.GetKeyDown(KeyCode.T))
{
C2M_TransferMap c2MTransferMap = C2M_TransferMap.Create();
self.Root().GetComponent<ClientSenderComponent>().Call(c2MTransferMap).Coroutine();
}
}
private static async ETTask Test1(this OperaComponent self)
{
Log.Debug($"Croutine 1 start1 ");
using (await self.Root().GetComponent<CoroutineLockComponent>().Wait(1, 20000, 3000))
{
await self.Root().GetComponent<TimerComponent>().WaitAsync(6000);
}
Log.Debug($"Croutine 1 end1");
}
private static async ETTask Test2(this OperaComponent self)
{
Log.Debug($"Croutine 2 start2");
using (await self.Root().GetComponent<CoroutineLockComponent>().Wait(1, 20000, 3000))
{
await self.Root().GetComponent<TimerComponent>().WaitAsync(1000);
}
Log.Debug($"Croutine 2 end2");
}
}
}