手动编辑Unity3D对撞机坐标?

Kje*_*lbe 10 collision-detection unity-game-engine unity3d-2dtools

试图创建一个2D游戏,我需要一个精确对称的2D多边形对撞机,所以我想用手/数字设置坐标,而不是使用鼠标.

如何才能做到这一点?

我想游戏可以在启动时调整坐标,但如果可能的话,我宁愿让它们正确的"设计时间".此外,如果我要在启动时以编程方式执行此操作,我会感谢您提供了一个方法或合适的链接来帮助解决这个问题.

Oli*_*via 12

您可以使用PolygonCollider2D.points在脚本中设置碰撞器顶点, 也可以在检查器中启用调试模式并手动输入,但这仅适用于unity 4:

在此输入图像描述

对于Unity 5,您可以使用此解决方法.将脚本放在Editor文件夹下面.

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(PolygonCollider2D))]
public class PolygonCollider2DEditor : Editor
{
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        var collider = (PolygonCollider2D)target;
        var points = collider.points;
        for (int i = 0; i < points.Length; i++)
        {
            points[i] = EditorGUILayout.Vector2Field(i.ToString(), points[i]);
        }
        collider.points = points;
        EditorUtility.SetDirty(target);
    }
}
Run Code Online (Sandbox Code Playgroud)