public HeightMapSphericalThreePointProvider(Collider c) { Ensure.ArgumentNotNull(c, "c"); var t = c.transform; var scale = t.lossyScale; var sc = c as SphereCollider; var cc = c as CapsuleCollider; if (sc != null) { var scaling = Mathf.Max(scale.x, scale.y, scale.z); _radius = sc.radius * scaling; _points[0] = sc.center; _points[1] = sc.center + new Vector3(0f, 0f, sc.radius * scaling / scale.z); _points[2] = sc.center + new Vector3(0f, 0f, -sc.radius * scaling / scale.z); } else if (cc != null && cc.direction == 1) { var scaling = Mathf.Max(scale.x, scale.z); _radius = cc.radius * scaling; _points[0] = cc.center + new Vector3(0f, Mathf.Min((-cc.height * 0.5f) + (_radius / scale.y), 0f), 0f); _points[1] = cc.center + new Vector3(0f, 0f, cc.radius * scaling / scale.z); _points[2] = cc.center + new Vector3(0f, 0f, -cc.radius * scaling / scale.z); } else { throw new ArgumentException("A Spherical provider only works with sphere or vertical capsule colliders!"); } _pendingHighMaxes = new HighPointList(2, t.TransformPoint(_points[0])); }
public RaycastSphericalThreePointProvider(Collider c) { Ensure.ArgumentNotNull(c, "c"); var t = c.transform; var scale = t.lossyScale; var sc = c as SphereCollider; var cc = c as CapsuleCollider; if (sc != null) { var scaling = Mathf.Max(scale.x, scale.y, scale.z); _radius = sc.radius * scaling; _points[0] = sc.center; _points[1] = sc.center + new Vector3(0f, 0f, sc.radius * scaling / scale.z); _points[2] = sc.center + new Vector3(0f, 0f, -sc.radius * scaling / scale.z); } else if (cc != null && cc.direction == 1) { var scaling = Mathf.Max(scale.x, scale.z); _radius = cc.radius * scaling; _points[0] = cc.center + new Vector3(0f, Mathf.Min((-cc.height * 0.5f) + (_radius / scale.y), 0f), 0f); _points[1] = cc.center + new Vector3(0f, 0f, cc.radius * scaling / scale.z); _points[2] = cc.center + new Vector3(0f, 0f, -cc.radius * scaling / scale.z); } else { throw new ArgumentException("A Spherical provider only works with sphere or vertical capsule colliders!"); } _pendingHighMaxes = new HighPointList(2, t.TransformPoint(_points[0])); }
public RaycastBoxThreePointProvider(Collider c) { Ensure.ArgumentNotNull(c, "c"); var t = c.transform; var m = new ColliderMeasurement(c, false); _points[0] = m.center + new Vector3(0f, -m.extents.y, 0f); _points[1] = m.center + new Vector3(0f, -m.extents.y, m.extents.z); _points[2] = m.center + new Vector3(0f, -m.extents.y, -m.extents.z); _pendingHighMaxes = new HighPointList(2, t.TransformPoint(_points[1])); }
public HeightMapBoxThreePointProvider(Collider c) { Ensure.ArgumentNotNull(c, "c"); var t = c.transform; var m = new ColliderMeasurement(c, false); _points[0] = m.center + new Vector3(0f, -m.extents.y, 0f); _points[1] = m.center + new Vector3(0f, -m.extents.y, m.extents.z); _points[2] = m.center + new Vector3(0f, -m.extents.y, -m.extents.z); _pendingHighMaxes = new HighPointList(2, t.TransformPoint(_points[1])); }
public HeightMapBoxFivePointProvider(Collider c) { Ensure.ArgumentNotNull(c, "c"); var t = c.transform; var m = new ColliderMeasurement(c, false); var yoffset = -m.extents.y; _points[0] = m.center + new Vector3(0f, yoffset, 0f); _points[1] = m.center + new Vector3(m.extents.x, yoffset, -m.extents.z); _points[2] = m.center + new Vector3(-m.extents.x, yoffset, -m.extents.z); _points[3] = m.center + new Vector3(-m.extents.x, yoffset, m.extents.z); _points[4] = m.center + new Vector3(m.extents.x, yoffset, m.extents.z); _pendingHighMaxes = new HighPointList(2, t.TransformPoint(_points[3])); }
/// <summary> /// Initializes a new instance of the <see cref="RaycastBoxFivePointProvider"/> class. /// </summary> /// <param name="c">The collider.</param> public RaycastBoxFivePointProvider(Collider c) { Ensure.ArgumentNotNull(c, "c"); var t = c.transform; var m = new ColliderMeasurement(c, false); var yoffset = -m.extents.y; _points[0] = m.center + new Vector3(0f, yoffset, 0f); _points[1] = m.center + new Vector3(m.extents.x, yoffset, -m.extents.z); _points[2] = m.center + new Vector3(-m.extents.x, yoffset, -m.extents.z); _points[3] = m.center + new Vector3(-m.extents.x, yoffset, m.extents.z); _points[4] = m.center + new Vector3(m.extents.x, yoffset, m.extents.z); _pendingHighMaxes = new HighPointList(2, t.TransformPoint(_points[3])); }