public void Run() { if (Input.GetMouseButton(0) && !EventSystem.current.IsPointerOverGameObject()) { var mousePosition = _sceneData.camera.ScreenToWorldPoint(Input.mousePosition); foreach (var index in _filter) { var clock = _filter.Get1(index); mousePosition.z = clock.Bounds.center.z; var mouseOverClock = clock.Bounds.Contains(mousePosition); clock.Transform.GetComponent <SetState>().Set(false); if (mouseOverClock && clock.HandSpeed < clock.SpeedHandBack) { clock.Transform.GetComponent <SetState>().Set(true); _gameState.ActiveClock = _filter.GetEntity(index); if (clock.HandSpeed < clock.SpeedHandBack) { var clockEntity = _filter.GetEntity(index); if (clockEntity.Has <ClockReloadEvent>()) { ref ClockReloadEvent reloadEvent = ref clockEntity.Get <ClockReloadEvent>(); reloadEvent.Timer += 0.001f; } else { _filter.GetEntity(index).Get <ClockReloadEvent>() = new ClockReloadEvent() { Timer = 0.001f }; } } } } }
public void Run() { foreach (var index in _filter) { ref TimerComponent timer = ref _filter.Get2(index); if (timer.Finished) { ref EcsEntity helper = ref _filter.GetEntity(index); var clockEntity = helper.Get <HelperComponent>().Parent; if (clockEntity.Has <ClockReloadEvent>()) { ref ClockReloadEvent reloadEvent = ref clockEntity.Get <ClockReloadEvent>(); reloadEvent.Timer += 0.1f; }