public void SetOnToggle(DebugUiToggle selected) { // コールバック if (onSelect != null) { onSelect(selected, _selected); } // 今onのものをoffにする if (_selected != null) { _selected.SetOffFromGroup(); } _selected = selected; }
public DebugUiToggleGroup() { _selected = null; }
void Start() { debugUi = DebugUiManager.Create( mainCamera, textShader, texturedShader, font, 768, 432, 1f, 100); debugUi.Add(new FrameTimeGauge(100f, 20f, null), 0f, 0f, DebugUi.AlignX.Right); var toggle = new DebugUiToggle("Thread"); toggle.onChange = on => { threadEnabled = on; }; debugUi.Add(toggle, 0f, 20f, DebugUi.AlignX.Right); var button = new DebugUiButton("Fire"); button.onClick = () => { Fire(); }; debugUi.Add(button, 0f, -50f, DebugUi.AlignX.Right, DebugUi.AlignY.Bottom); button = new DebugUiButton("Fire16"); button.onClick = () => { Fire(16); }; debugUi.Add(button, 0f, 0f, DebugUi.AlignX.Right, DebugUi.AlignY.Bottom); random = new Random32(0); cameraController = new CameraController(mainCamera); targetOrigin = target.transform.position; beams = new Beam[64]; for (int i = 0; i < beams.Length; i++) { beams[i] = new Beam(); } particles = new Particle[particleCapacity]; for (int i = 0; i < particles.Length; i++) { particles[i].position = new Vector3(1000f, 1000f, -1000f); particles[i].time = -float.MaxValue; } var threadCount = SystemInfo.processorCount; var jobCount = threadCount * 3; threadPool = new ThreadPool(threadCount, jobCount); jobs = new Job[jobCount]; particleRenderers = new ParticleRenderer[jobCount]; int rendererCapacity = (particleCapacity + jobCount - 1) / jobCount; for (int i = 0; i < jobCount; i++) { particleRenderers[i] = Instantiate(particleRendererPrefab, gameObject.transform, false); particleRenderers[i].Initialize(mainCamera, rendererCapacity); jobs[i] = new Job(particles, i, particleRenderers[i]); } Update(); // 初回 LateUpdate(); cameraController.Converge(); }