前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Area Listener 区域监听器

Area Listener 区域监听器

作者头像
CoderZ
发布2022-12-26 21:03:30
3470
发布2022-12-26 21:03:30
举报
文章被收录于专栏:用户10004205的专栏

🎈 Area区域

Package Manager

SKFramework

目前编写了两个类型的区域:

CylinderArea:圆柱形区域•ConvexArea:多边形区域

🔸 Cylinder Area

Cylinder Area - 1

Cylinder Area - 2

Radius:圆柱的半径•Height:圆柱的高度

🔸 Convex Area

在Hierarchy层级窗口新建空节点,作为凸边形区域的顶点:

Convex Area Vertex

将以上顶点添加到Vertex Points顶点数组中:

Convex Area - 1

Height:凸边形区域的高度

Convex Area - 2

每个顶点的Position Handle可以拖动编辑。

🎈 IsInArea接口

抽象接口IsInArea,用于判断目标点是否在区域中,各类型区域都有各自的实现。

代码语言:javascript
复制
public abstract bool IsInArea(Vector3 targetPos);

🎈 AreaListener 区域监听器

AreaListener用于模拟Trigger的OnEnterOnStayOnExit事件监听。

例如监听物体target是否进入、停留、退出该区域:

代码语言:javascript
复制
public class Example : MonoBehaviour
{
    public Transform target;

    void Start()
    {
        GetComponent<ConvexArea>().Listen(target)
            .OnEnter(() => Debug.Log("进入区域"))
            .OnStay(() => Debug.Log("停留在该区域"))
            .OnExit(() => Debug.Log("退出区域"));
    }
}

target停留在区域中时OnStay函数一直调用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 当代野生程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🎈 Area区域
    • 🔸 Cylinder Area
      • 🔸 Convex Area
      • 🎈 IsInArea接口
      • 🎈 AreaListener 区域监听器
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档