如何使用脚本更改PolygonCollider2D顶点的位置?
答案 0 :(得分:1)
可以访问points
成员。
PolygonCollider2D p; //Just a dummy declaration. You have to actually have a MonoBehaviour set up.
p.points[0] = new Vector2(0, 0);
答案 1 :(得分:0)
这里有效
pc2d.points = new[]{point1, point2, point3};
pc2d.SetPath (0, new[]{ point1, point2, point3 });
答案 2 :(得分:0)
看到其他答案,我认为这将是更完整的,因为另一个仅解决一部分问题,在这里,我将尝试收集另一个答案并做一个完整的答案:
如果您想更改自己的游戏对象的对撞点,则可以执行以下操作:
它像下一个示例一样提供了一组新点,这样,您将更改多边形所具有的所有点,至少在您只想更改点集合路径的一部分之前例如,SetPath (0, new[]{ point1, point2, point3 });
可能仅更改对撞机的路径“ 0”,而不更改其他路径:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class destroy_out_screen : MonoBehaviour
{
public GameObject cameraGO;
void adapt_collider(){
Vector2 point1 = new Vector2(1,1);
Vector2 point2 = new Vector2(0,1);
Vector2 point3 = new Vector2(0,0);
Vector2 point4 = new Vector2(1,0);
gameObject.GetComponent<PolygonCollider2D>().points = new[]{point1,point2,point3,point4};
}
void Start()
{
adapt_collider();
}
}
当然,您首先需要在游戏对象中使用该组件,如下所示:
以及有关此操作的信息:
p.points[0] = new Vector2(0, 0);
根据统一论坛,您无法执行此操作,here我在找到的位置给出了链接
最后,您将获得:
取决于您赋予对撞机的指示顺序。