Exemplo n.º 1
0
        protected override void OnUpdate()
        {
            if (!UpdateState())
            {
                return;
            }

            RaycastInput rayInput = RaycastUtils.RaycastInputFromRay(
                _mainCamera.ScreenPointToRay(Input.mousePosition),
                _filter
                );

            var raycastJob = new RaycastUtils.SingleRaycastJob
            {
                raycastInput = rayInput, physicsWorld = _physicsWorld
            };

            raycastJob.Execute();

            if (!raycastJob.hasHit)
            {
                return;
            }

            NativeEventStream.ThreadWriter writer = _eventSystem.CreateEventWriter <TEvent>();
            writer.Write(EventFromRaycastHit(raycastJob.hit, _state));
            _eventSystem.AddJobHandleForProducer <TEvent>(Dependency);
        }