コード例 #1
0
        internal static int GetNeatestVertToMouseRay(Vector3[] meshVertices, Matrix4x4 meshTransform, Camera camera, Vector3 mouseDir)
        {
            VertJobHandle newResultAndHandle = new VertJobHandle();

            ScheduleVertJob(ref newResultAndHandle, meshVertices, meshTransform, camera, mouseDir);
            return(CompleteVertJob(newResultAndHandle));
        }
コード例 #2
0
        private static void ScheduleVertJob(ref VertJobHandle handle, Vector3[] meshVertices, Matrix4x4 meshTransform, Camera camera, Vector3 mouseDir)
        {
            handle.vertices = new NativeArray <Vector3>(array: meshVertices, allocator: Allocator.TempJob);

            closestVertDistanceCriteria = 40000;
            closestVertID = 0;
            FindClosestVertexJob newJob = new FindClosestVertexJob
            {
                vertices        = handle.vertices,
                cameraPos       = camera.transform.position,
                mouseDir        = mouseDir,
                localToWorldMat = meshTransform,
            };

            handle.handle = newJob.Schedule(meshVertices.Length, 32);
        }
コード例 #3
0
 private static int CompleteVertJob(VertJobHandle handle)
 {
     handle.handle.Complete();
     handle.vertices.Dispose();
     return(closestVertID);
 }