Exemplo n.º 1
0
        public static void BeginCollectingVertData(this LeapGraphicRenderer renderer)
        {
            Camera targetCamera    = renderer.GetComponentInChildren <Camera>();
            var    renderingMethod = renderer.groups[0].renderingMethod as LeapMesherBase;
            var    material        = renderingMethod.material;

            var graphic = renderer.groups[0].graphics[0] as LeapMeshGraphicBase;

            graphic.RefreshMeshData();
            var mesh = graphic.mesh;

            _buffer = new ComputeBuffer(mesh.vertexCount, sizeof(float) * 3);
            material.SetBuffer("_FinalVertexPositions", _buffer);

            Graphics.ClearRandomWriteTargets();
            Graphics.SetRandomWriteTarget(1, _buffer);

            targetCamera.allowMSAA = false;
            targetCamera.enabled   = true;
        }
        public static Vector3[] FinishCollectingVertData(this LeapGraphicRenderer renderer)
        {
            Camera targetCamera    = renderer.GetComponentInChildren <Camera>();
            var    renderingMethod = renderer.groups[0].renderingMethod as LeapMesherBase;
            var    material        = renderingMethod.material;

            var graphic = renderer.groups[0].graphics[0] as LeapMeshGraphicBase;

            graphic.RefreshMeshData();
            var mesh = graphic.mesh;

            Vector3[] array = new Vector3[mesh.vertexCount];
            _buffer.GetData(array);

            Graphics.ClearRandomWriteTargets();

            _buffer.Release();
            targetCamera.enabled = false;

            return(array);
        }
        private void OnTriggerExit(Collider other)
        {
            if (other.gameObject.layer == layerMask)
            {
                LeapGraphicRenderer rendererCandidate = other.GetComponent <LeapGraphicRenderer>();

                if (rendererCandidate != null && rendererCandidate != GlobalSpace.Instance.GraphicRenderer)
                {
                    changer.ChangeSpaces(GlobalSpace.Instance.GraphicRenderer);

                    //transform.SetParent(GlobalSpace.Instance.GraphicRenderer.transform);

                    //currentRenderer = GlobalSpace.Instance.GraphicRenderer;
                    //for (int i = 0; i < allGraphics.Length; i++)
                    //{
                    //    // find the render group by name
                    //    LeapGraphicGroup group = GlobalSpace.Instance.GraphicRenderer.FindGroup(allGraphicsInfo[i].favoriteGroupName);
                    //    allGraphics[i].TryDetach();
                    //    group.TryAddGraphic(allGraphics[i]);
                    //}
                }
            }
        }