Esempio n. 1
0
 public void SetOnToggle(DebugUiToggle selected)
 {
     // コールバック
     if (onSelect != null)
     {
         onSelect(selected, _selected);
     }
     // 今onのものをoffにする
     if (_selected != null)
     {
         _selected.SetOffFromGroup();
     }
     _selected = selected;
 }
Esempio n. 2
0
 public DebugUiToggleGroup()
 {
     _selected = null;
 }
Esempio n. 3
0
    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();
    }