public override Vector3 GetRandomPositionInEdge() { Vector3 pos = Vector3.zero; switch (RandomUtility.Index(ActualSize.x, ActualSize.y, ActualSize.z)) { case 0: pos = new Vector3(RandomUtility.Extents(Extents.x), RandomUtility.sign * Extents.y, RandomUtility.sign * Extents.z); break; case 1: pos = new Vector3(RandomUtility.sign * Extents.x, RandomUtility.Extents(Extents.y), RandomUtility.sign * Extents.z); break; case 2: pos = new Vector3(RandomUtility.sign * Extents.x, RandomUtility.sign * Extents.y, RandomUtility.Extents(Extents.z)); break; } return(GetWorldSpacePosition(pos)); }
/// <summary> /// 获取表面上随机的位置 /// </summary> public Vector3 GetRandomPositionInSurface() { Vector3 actualSize = ActualSize; Vector3 pos = Vector3.zero; switch (RandomUtility.Index(actualSize.y * actualSize.z, actualSize.x * actualSize.z, actualSize.x * actualSize.y)) { case 0: pos = new Vector3(RandomUtility.sign * Extents.x, RandomUtility.Extents(Extents.y), RandomUtility.Extents(Extents.z)); break; case 1: pos = new Vector3(RandomUtility.Extents(Extents.x), RandomUtility.sign * Extents.y, RandomUtility.Extents(Extents.z)); break; case 2: pos = new Vector3(RandomUtility.Extents(Extents.x), RandomUtility.Extents(Extents.z), RandomUtility.sign * Extents.z); break; } return(GetWorldSpacePosition(pos)); }