如何把一个plane颜色显示为任意多边形

最近一个cocos creator 3D 3.5版本的项目中遇到一个需求,有若干个敌人分散的站位,需要用一个多边形动态的表示出这些人占领的区域,

思路1: 获得敌人的点位置数组,然后使用createMesh创建,
问题: createMesh这个api的indices如何根据position进行动态生成.并且控制面数不能太大

思路2: 获取敌人的点的位置数组,然后对一个plane进行动态着色.
问题: 看了些shader的例子property貌似不能传入动态数组.B站有个官方教程传入一个动态的数组可以画出一个多边形.利用顶点函数打形,然后在片段函数上色.但是是纯裸的webgl调用方式.期望官方出一个cocos creator 3D引擎中的开发和调用方式.
https://www.bilibili.com/video/BV1Cq4y1d726?p=2&vd_source=fbf1407e40493a6297c60463ab836680

有什么更好的方案或者可以借鉴的项目代码,期待大佬们解惑.

1赞

敌人不是几千个的话个人感觉不用在意面数和索引,直接把所有位置传入就好了。如图可以满足你的需求吗?dynamic

1赞

楼上说的对,不用在意这点数量,用思路1。
怎么生成indices,百度“耳切法”,或者百度“用三角形分割多边形”就知道了。