private void UpdateMatrix() { _quadMatrix = ExtMatrix.GetMatrixTRS(_position, _rotation, _localScale); Vector3 size = Vector3.one; _p1 = _quadMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(-size.x, 0, -size.z) * 0.5f)); _p2 = _quadMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(-size.x, 0, size.z) * 0.5f)); _p3 = _quadMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(size.x, 0, size.z) * 0.5f)); _p4 = _quadMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(size.x, 0, -size.z) * 0.5f)); _v41 = (_p4 - _p1); _v21 = (_p2 - _p1); _lengthX = _v41.magnitude; _lengthY = _v21.magnitude; _v41Squared = _v41.LengthSquared(); _v21Squared = _v21.LengthSquared(); _uP1 = Vector3.Dot(-_v21, _p1); _uP2 = Vector3.Dot(-_v21, _p2); _vP1 = Vector3.Dot(-_v41, _p1); _vP4 = Vector3.Dot(-_v41, _p4); _plane.MoveShape(_position, _quadMatrix.UpFast()); _planeAdjacent1.MoveShape(_p1, -_quadMatrix.ForwardFast()); _planeAdjacent2.MoveShape(_p4, _quadMatrix.RightFast()); _planeAdjacent3.MoveShape(_p3, _quadMatrix.ForwardFast()); _planeAdjacent4.MoveShape(_p1, -_quadMatrix.RightFast()); }
public void DrawWithExtraSize(Color color, Vector3 extraSize, bool drawFace = false, bool drawPoints = false) { #if UNITY_EDITOR Matrix4x4 cubeMatrix = ExtMatrix.GetMatrixTRS(_position, _rotation, _localScale + extraSize); Vector3 size = Vector3.one; Vector3 p1 = cubeMatrix.MultiplyPoint3x4(Vector3.zero + ((-size) * 0.5f)); Vector3 p2 = cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(-size.x, -size.y, size.z) * 0.5f)); Vector3 p3 = cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(size.x, -size.y, size.z) * 0.5f)); Vector3 p4 = cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(size.x, -size.y, -size.z) * 0.5f)); ExtDrawGuizmos.DrawLocalQuad(p1, p2, p3, p4, color, drawFace, drawPoints); #endif }
public void DrawWithExtraSize(Color color, Vector3 extraSize) { #if UNITY_EDITOR Matrix4x4 cubeMatrix = ExtMatrix.GetMatrixTRS(_position, _rotation, _localScale + extraSize); Vector3 size = Vector3.one; Vector3 p1 = cubeMatrix.MultiplyPoint3x4(Vector3.zero + ((-size) * 0.5f)); Vector3 p2 = cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(-size.x, -size.y, size.z) * 0.5f)); Vector3 p3 = cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(size.x, -size.y, size.z) * 0.5f)); Vector3 p4 = cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(size.x, -size.y, -size.z) * 0.5f)); Vector3 p5 = cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(-size.x, size.y, -size.z) * 0.5f)); Vector3 p6 = cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(-size.x, size.y, size.z) * 0.5f)); Vector3 p7 = cubeMatrix.MultiplyPoint3x4(Vector3.zero + ((size) * 0.5f)); Vector3 p8 = cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(size.x, size.y, -size.z) * 0.5f)); ExtDrawGuizmos.DrawLocalCube(p1, p2, p3, p4, p5, p6, p7, p8, color); #endif }
/// /// 6 ------------ 7 /// / | / | /// 5 ------------ 8 | /// | | | | /// | | | | /// | | | | /// | 2 ----------|-- 3 /// |/ | / /// 1 ------------ 4 private void UpdateMatrix() { _cubeMatrix = ExtMatrix.GetMatrixTRS(_position, _rotation, _localScale); Vector3 size = Vector3.one; _p1 = _cubeMatrix.MultiplyPoint3x4(Vector3.zero + ((-size) * 0.5f)); _p2 = _cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(-size.x, -size.y, size.z) * 0.5f)); _p3 = _cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(size.x, -size.y, size.z) * 0.5f)); _p4 = _cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(size.x, -size.y, -size.z) * 0.5f)); _p5 = _cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(-size.x, size.y, -size.z) * 0.5f)); _p6 = _cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(-size.x, size.y, size.z) * 0.5f)); _p7 = _cubeMatrix.MultiplyPoint3x4(Vector3.zero + ((size) * 0.5f)); _p8 = _cubeMatrix.MultiplyPoint3x4(Vector3.zero + (new Vector3(size.x, size.y, -size.z) * 0.5f)); _v41 = (_p4 - _p1); _v21 = (_p2 - _p1); _v51 = (_p5 - _p1); _v41Squared = _v41.LengthSquared(); _v21Squared = _v21.LengthSquared(); _v51Squared = _v51.LengthSquared(); _uP1 = Vector3.Dot(-_v21, _p1); _uP2 = Vector3.Dot(-_v21, _p2); _vP1 = Vector3.Dot(-_v41, _p1); _vP4 = Vector3.Dot(-_v41, _p4); _wP1 = Vector3.Dot(-_v51, _p1); _wP5 = Vector3.Dot(-_v51, _p5); _face1.MoveShape(_p1, _p5, _p4); _face2.MoveShape(_p4, _p8, _p3); _face3.MoveShape(_p5, _p6, _p8); _face4.MoveShape(_p2, _p1, _p3); _face5.MoveShape(_p2, _p6, _p1); _face6.MoveShape(_p3, _p7, _p2); }
private void UpdateMatrix() { _planeMatrix = ExtMatrix.GetMatrixTRS(_position, _rotation, Vector3.one); _plane.MoveShape(_position, _planeMatrix.UpFast()); }