Unity C# 判断点是否在正六边形内

前端之家收集整理的这篇文章主要介绍了Unity C# 判断点是否在正六边形内前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

《高效判断点是否在正六边形蜂窝内的方法

C#代码

4037f;  // √3/2
private const float sideLength = 10;          // 六边形边长
private const float hexWidth = sideLength * sqrt3_2; // 六边形宽度 √3/2 x L
private const float hexHeight = sideLength * 2;      // 六边形高度 2L

// 平面直角坐标系中 检测某点与(x,y)为中心点的六边形 是否发生碰撞
public bool HitHex(Vector2 point,Vector2 cellPoint) {
float x = Mathf.Abs(point.x - cellPoint.x);
float y = Mathf.Abs(point.y - cellPoint.y);
float l = sideLength;
float w = hexWidth;
float r3 = sqrt3;
return y <= l && x < w && l - y > x / r3;
}

猜你在找的程序笔记相关文章