GetPooledObject
How do I use Get Pooled Object
Below are practical examples compiled from projects for learning and reference purposes
Featured Snippets
File name: CoinGeneratorScript.cs
Copy
11 public void spawnCoins (Vector3 startPosition) {
12 GameObject coin1 = coinPooler.GetPooledObject ();
13 coin1.transform.position = startPosition;
14 coin1.SetActive (true);
15
16 GameObject coin2 = coinPooler.GetPooledObject ();
17 coin2.transform.position = new Vector3 (startPosition.x - coinDistance, startPosition.y, startPosition.z);
18 coin2.SetActive (true);
19
20 GameObject coin3 = coinPooler.GetPooledObject ();
21 coin3.transform.position = new Vector3 (startPosition.x + coinDistance, startPosition.y, startPosition.z);
22 coin3.SetActive (true);
23
24 GameObject coin4 = coinPooler.GetPooledObject ();
25 coin4.transform.position = new Vector3 (startPosition.x - 2.6f, startPosition.y, startPosition.z);
26 coin4.SetActive (true);
27
28 GameObject coin5 = coinPooler.GetPooledObject ();
29 coin5.transform.position = new Vector3 (startPosition.x - 3.9f, startPosition.y, startPosition.z);
30 coin5.SetActive (true);
31 }
File name: CrateGeneratorScript.cs
Copy
11 public void spawnCrates(Vector3 startPosition) {
12
13 GameObject crate = cratePooler.GetPooledObject ();
14 crate.transform.position = new Vector3 (startPosition.x - 1f, startPosition.y, startPosition.z);
15 crate.SetActive (true);
16
17 }
File name: GenerateGrounds.cs
Copy
48 void Update () {
49 if(transform.position.x < generatePoint.position.x) {
50
51 distance = Random.Range (distanceBetweenMin, distanceBetweenMax);
52
53 groundSelector = Random.Range (0, theObjectPools.Length);
54
55 heightChange = transform.position.y + Random.Range (maxHeightChange, -maxHeightChange);
56
57 if (heightChange > maxHeight) {
58 heightChange = maxHeight;
59 } else if (heightChange < minHeight) {
60 heightChange = minHeight;
61 }
62
63 transform.position = new Vector3 (transform.position.x + (groundWidth[groundSelector] / 2) + distance, heightChange, transform.position.z);
64
65 GameObject newPlatform = theObjectPools[groundSelector].GetPooledObject ();
66 newPlatform.transform.position = transform.position;
67 newPlatform.transform.rotation = transform.rotation;
68 newPlatform.SetActive (true);
69
70 if(Random.Range(0f, 100f) < randomCoins) {
71 coinGenerator.spawnCoins (new Vector3 (transform.position.x, transform.position.y + 3f, transform.position.z));
72 }
73
74 if(Random.Range(0f, 100f) < randomCrates) {
75 cratesGenerator.spawnCrates (new Vector3 (transform.position.x, transform.position.y + 1.3f, transform.position.z));
76 }
77
78 transform.position = new Vector3 (transform.position.x + (groundWidth[groundSelector] / 2) + distance, transform.position.y, transform.position.z);
79
80 }
81 }
File name: ObjectPooler.cs
Copy
23 public GameObject GetPooledObject () {
24 for(int i = 0; i < pooledObjects.Count; i++) {
25 if(!pooledObjects[i].activeInHierarchy) {
26 return pooledObjects[i];
27 }
28 }
29
30 GameObject obj = (GameObject)Instantiate (pooledObject);
31 obj.SetActive (false);
32 pooledObjects.Add (obj);
33
34 return obj;
35 }
GetPooledObject 100 lượt xem
Gõ tìm kiếm nhanh...