Skip to content

Commit 86439e3

Browse files
Cursor, Pause
1 parent 8aa1b6c commit 86439e3

File tree

2 files changed

+41
-24
lines changed

2 files changed

+41
-24
lines changed

08-Ecosystems/Assets/Scripts/BoidManager.cs

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,60 +2,74 @@
22
using System.Collections.Generic;
33
using UnityEngine;
44

5-
public class BoidManager : MonoBehaviour {
5+
public class BoidManager : MonoBehaviour
6+
{
67

78
const int threadGroupSize = 1024;
89

10+
public bool running = true;
911
public BoidSettings settings;
1012
public ComputeShader compute;
1113
Boid[] boids;
1214

13-
void Start () {
14-
boids = FindObjectsOfType<Boid> ();
15-
foreach (Boid b in boids) {
16-
b.Initialize (settings, null);
15+
void Start()
16+
{
17+
boids = FindObjectsOfType<Boid>();
18+
foreach (Boid b in boids)
19+
{
20+
b.Initialize(settings, null);
1721
}
1822

1923
}
2024

21-
void Update () {
22-
if (boids != null) {
25+
void Update()
26+
{
27+
if (boids != null & running)
28+
{
2329

2430
int numBoids = boids.Length;
2531
var boidData = new BoidData[numBoids];
2632

27-
for (int i = 0; i < boids.Length; i++) {
33+
for (int i = 0; i < boids.Length; i++)
34+
{
2835
boidData[i].position = boids[i].position;
2936
boidData[i].direction = boids[i].forward;
3037
}
3138

32-
var boidBuffer = new ComputeBuffer (numBoids, BoidData.Size);
33-
boidBuffer.SetData (boidData);
39+
var boidBuffer = new ComputeBuffer(numBoids, BoidData.Size);
40+
boidBuffer.SetData(boidData);
3441

35-
compute.SetBuffer (0, "boids", boidBuffer);
36-
compute.SetInt ("numBoids", boids.Length);
37-
compute.SetFloat ("viewRadius", settings.perceptionRadius);
38-
compute.SetFloat ("avoidRadius", settings.avoidanceRadius);
42+
compute.SetBuffer(0, "boids", boidBuffer);
43+
compute.SetInt("numBoids", boids.Length);
44+
compute.SetFloat("viewRadius", settings.perceptionRadius);
45+
compute.SetFloat("avoidRadius", settings.avoidanceRadius);
3946

40-
int threadGroups = Mathf.CeilToInt (numBoids / (float) threadGroupSize);
41-
compute.Dispatch (0, threadGroups, 1, 1);
47+
int threadGroups = Mathf.CeilToInt(numBoids / (float)threadGroupSize);
48+
compute.Dispatch(0, threadGroups, 1, 1);
4249

43-
boidBuffer.GetData (boidData);
50+
boidBuffer.GetData(boidData);
4451

45-
for (int i = 0; i < boids.Length; i++) {
52+
for (int i = 0; i < boids.Length; i++)
53+
{
4654
boids[i].avgFlockHeading = boidData[i].flockHeading;
4755
boids[i].centreOfFlockmates = boidData[i].flockCentre;
4856
boids[i].avgAvoidanceHeading = boidData[i].avoidanceHeading;
4957
boids[i].numPerceivedFlockmates = boidData[i].numFlockmates;
5058

51-
boids[i].UpdateBoid ();
59+
boids[i].UpdateBoid();
5260
}
5361

54-
boidBuffer.Release ();
62+
boidBuffer.Release();
63+
}
64+
65+
if (Input.GetKeyDown(KeyCode.Space))
66+
{
67+
running = !running;
5568
}
5669
}
5770

58-
public struct BoidData {
71+
public struct BoidData
72+
{
5973
public Vector3 position;
6074
public Vector3 direction;
6175

@@ -64,9 +78,11 @@ public struct BoidData {
6478
public Vector3 avoidanceHeading;
6579
public int numFlockmates;
6680

67-
public static int Size {
68-
get {
69-
return sizeof (float) * 3 * 5 + sizeof (int);
81+
public static int Size
82+
{
83+
get
84+
{
85+
return sizeof(float) * 3 * 5 + sizeof(int);
7086
}
7187
}
7288
}

08-Ecosystems/Assets/Scripts/CameraMovement.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class CameraMovement : MonoBehaviour
2525
void Start()
2626
{
2727
Cursor.lockState = CursorLockMode.Locked;
28+
Cursor.visible = false;
2829
// - init -
2930
defaultView();
3031
}

0 commit comments

Comments
 (0)