Files
plugin-library/Assets/Main/Script/Runtime/HotUpdate/PointController.cs

77 lines
2.4 KiB
C#
Raw Normal View History

2025-05-23 18:26:47 +08:00
using System;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using Main;
using Stary.Evo;
using UnityEngine;
using YooAsset;
namespace Main
{
public class PointController : MonoBehaviour, IController
{
public ZoneController ZoneController;
private SphereCollider sphereCollider;
private IUnRegister _onTriggerEnterUnRegister;
private IUnRegister _onTriggerExitUnRegister;
public void Init(ZoneController ZoneController, PointData pointData)
{
this.ZoneController = ZoneController;
name = pointData.name;
//根据数据设置zone 碰撞盒
transform.localPosition = pointData.position;
transform.localRotation = Quaternion.Euler(pointData.rotation);
transform.localScale = pointData.scale;
sphereCollider = this.transform.GetOrAddComponent<SphereCollider>();
_onTriggerEnterUnRegister = this.OnTriggerEnterEvent(OnPointTriggerEnterEvent);
_onTriggerExitUnRegister = this.OnTriggerExitEvent(OnPointriggerExitEvent);
this.gameObject.SetActive(false);
}
public void OnPointTriggerEnterEvent(Collider collider)
{
if (collider.gameObject.CompareTag("MainCamera"))
{
// ZoneController.OpenPoint(this);
Debug.Log("OnPointTriggerEnterEvent");
}
}
public void OnPointriggerExitEvent(Collider collider)
{
if (collider.gameObject.CompareTag("MainCamera"))
{
// ZoneController.OpenPoint(this);
Debug.Log("OnPointTriggerEnterEvent");
}
}
public IArchitecture GetArchitecture()
{
return MainArchitecture.Interface;
}
}
public class ZoneColliderEntity
{
public string Name { get; set; }
public BoxCollider ZoneCollider { get; set; }
public Func<Collider> EntorComplete { get; set; }
public Func<Collider> ExitComplete { get; set; }
public PointColliderEntity[] PointColliderEntities { get; set; }
}
public class PointColliderEntity
{
public string Name { get; set; }
public bool IsTrigger { get; set; }
public SphereCollider PointCollider { get; set; }
public Func<Collider> EntorComplete { get; set; }
}
}