private static Vector3 CalculateCollisionPoint(TileOrientationTable _tileOrientation, Vector3 _tilePosition) { Vector3 tp = new Vector3(_tilePosition.x, _tilePosition.y, _tilePosition.z); switch (_tileOrientation) { case TileOrientationTable.NOT_INTERESTING_VALUE: break; case TileOrientationTable.MINUS_R: tp += Vector3.right * 612; break; case TileOrientationTable.PLUS_R: tp -= Vector3.right * 612; break; case TileOrientationTable.MINUS_U: tp -= Vector3.forward * 612; break; case TileOrientationTable.PLUS_U: tp += Vector3.forward * 612; break; case TileOrientationTable.MINUS_MINUS_D: tp -= Vector3.forward * 612 - Vector3.right * 612; break; case TileOrientationTable.MINUS_PLUS_D: tp -= Vector3.forward * 612 + Vector3.right * 612; break; case TileOrientationTable.PLUS_MINUS_D: tp += Vector3.forward * 612 - Vector3.right * 612; break; case TileOrientationTable.PLUS_PLUS_D: tp += Vector3.forward * 612 + Vector3.right * 612; break; } return(tp); }
private static Vector2 CalculateRealPosition(TileOrientationTable _tileOrientation, Vector2 _collTileCenter) { Vector2 calcCen = new Vector2(_collTileCenter.x, _collTileCenter.y); switch (_tileOrientation) { case TileOrientationTable.NOT_INTERESTING_VALUE: break; case TileOrientationTable.MINUS_R: calcCen -= Vector2.right; break; case TileOrientationTable.PLUS_R: calcCen += Vector2.right; break; case TileOrientationTable.MINUS_U: calcCen -= Vector2.up; break; case TileOrientationTable.PLUS_U: calcCen += Vector2.up; break; case TileOrientationTable.MINUS_MINUS_D: calcCen -= Vector2.up - Vector2.right; break; case TileOrientationTable.MINUS_PLUS_D: calcCen -= Vector2.up + Vector2.right; break; case TileOrientationTable.PLUS_MINUS_D: calcCen += Vector2.up - Vector2.right; break; case TileOrientationTable.PLUS_PLUS_D: calcCen += Vector2.up - Vector2.right; break; } return(calcCen); }
public CheckNearbyTileResult(bool _isCollided = false) { IsCollided = _isCollided; RealPosition = Vector2.zero; TileOrientationCollided = TileOrientationTable.NOT_INTERESTING_VALUE; }