public Vector3[] GetVerteces(Vector3[] vertex, Vector3 basePosition) { NativeArray <Vector3> vectors = CreateNativeArrayFrom(vertex); NativeArray <Vector3> jobResult = new NativeArray <Vector3>(vectors.Length, Allocator.TempJob); CalculatorJob jobData = new CalculatorJob { Vertices = vectors, BasePosition = basePosition, Scale = Scale, Result = jobResult }; JobHandle handle = jobData.Schedule(jobResult.Length, BatchCount); handle.Complete(); Vector3[] result = jobResult.ToArray(); vectors.Dispose(); jobResult.Dispose(); return(result); }
Vector3[] IVertexCalculator.GetVerteces(MeshSettingsModel meshSettings) { float step = meshSettings.UnitsSize / meshSettings.VertexSize; float startPoint = (-meshSettings.UnitsSize * .5f); int rowPointsAmount = meshSettings.VertexSize + 1; int length = rowPointsAmount * rowPointsAmount; NativeArray <float3> jobResult = new NativeArray <float3>(length, Allocator.TempJob); CalculatorJob jobData = new CalculatorJob { Step = step, StartPoint = startPoint, RowPointsAmount = rowPointsAmount, Result = jobResult }; JobHandle handle = jobData.Schedule(jobResult.Length, BatchCount); handle.Complete(); Vector3[] result = CreateArrayFrom(jobResult); jobResult.Dispose(); return(result); }