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...