} //Тип ресурса, находящегося в залежах public Deposit(Vector3 Center, Resource Resource) { DepositResource = Resource; _Center = Center; switch (DepositResource.Figure) { case DepositFigure.Ellips: { IsPointInFigure = Functions.IsCoordinatesIntoEllips; _Params = new FigureParams(Random.Range(4, 7), Random.Range(4, 7), Random.Range(4, 7)); break; } case DepositFigure.WideEllips: { IsPointInFigure = Functions.IsCoordinatesIntoEllips; _Params = new FigureParams(Mathf.Pow(Random.Range(4, 7), Random.Range(2, 4)), Random.Range(4, 7), Mathf.Pow(Random.Range(4, 7), Random.Range(2, 4))); break; } case DepositFigure.Sphere: default: { IsPointInFigure = Functions.IsCoordinatesIntoASphere; _Params = new FigureParams(Random.Range(4, 7)); break; } } //Надо присваивать делегат в зависимости от параметров ресурса }
/// <summary> /// Построить всю горку. /// </summary> /// <param name="iPart">Интерфейс компонента.</param> /// <param name="figureParams">Параметры фигуры.</param> public void Build(ksPart iPart, FigureParams figureParams) { _figureParams = figureParams; _iPart = iPart; const int slideThickness = 4; CreatePlatform(); CreateStartSlide(slideThickness); CreateSlide(slideThickness); CreateEndSlide(slideThickness); CreateSlideBorder(slideThickness); CreatePillar(6, 60); CreateStairsBorder(15); CreateStairs(); }
public static bool IsCoordinatesIntoEllips(Vector3 Coordinates, Vector3 EllipsCenter, FigureParams Parameters) { return (Mathf.Pow(Coordinates.x - EllipsCenter.x, 2) / Parameters.XScale + Mathf.Pow(Coordinates.y - EllipsCenter.y, 2) / Parameters.YScale + Mathf.Pow(Coordinates.z - EllipsCenter.z, 2) / Parameters.ZScale <= 1); }
public void InitContact() { _figureParams = new FigureParams(); }
public static bool IsCoordinatesIntoASphere(Vector3 Coordinates, Vector3 SphereCenter, FigureParams Parameters) { return(Mathf.Pow(Coordinates.x - SphereCenter.x, 2) + Mathf.Pow(Coordinates.y - SphereCenter.y, 2) + Mathf.Pow(Coordinates.z - SphereCenter.z, 2) <= Parameters.Radius); }