Package Manager
SKFramework
目前编写了两个类型的区域:
•CylinderArea
:圆柱形区域•ConvexArea
:多边形区域
Cylinder Area - 1
Cylinder Area - 2
•Radius
:圆柱的半径•Height
:圆柱的高度
在Hierarchy层级窗口新建空节点,作为凸边形区域的顶点:
Convex Area Vertex
将以上顶点添加到Vertex Points
顶点数组中:
Convex Area - 1
Height
:凸边形区域的高度
Convex Area - 2
每个顶点的Position Handle
可以拖动编辑。
抽象接口IsInArea
,用于判断目标点是否在区域中,各类型区域都有各自的实现。
public abstract bool IsInArea(Vector3 targetPos);
AreaListener
用于模拟Trigger的OnEnter
、OnStay
、OnExit
事件监听。
例如监听物体target是否进入、停留、退出该区域:
public class Example : MonoBehaviour
{
public Transform target;
void Start()
{
GetComponent<ConvexArea>().Listen(target)
.OnEnter(() => Debug.Log("进入区域"))
.OnStay(() => Debug.Log("停留在该区域"))
.OnExit(() => Debug.Log("退出区域"));
}
}
target停留在区域中时
OnStay
函数一直调用。