- Unity 5.x By Example
- Alan Thorn
- 371字
- 2021-07-16 12:36:52
Counting coins
The coin collection game wouldn't really be much of a game if there were only one coin. The central idea is that a level should feature many coins, all of which the player should collect before a timer expires. Now, to know whether all coins have been collected, we'll need to know how many coins there are in total in the scene. After all, if we don't know how many coins there are, then we can't know if we've collected them all. So, our first task in scripting is to configure the Coin
class so that we can know the total number of coins in the scene at any moment easily. Consider Code Sample 2.3, which adapts the Coin
class to achieve this:
//------------------------- using UnityEngine; using System.Collections; //------------------------- public class Coin : MonoBehaviour { //------------------------- //Keeps track of total coin count in scene public static int CoinCount = 0; //------------------------- // Use this for initialization void Start () { //Object created, increment coin count ++Coin.CoinCount; } //------------------------- //Called when object is destroyed void OnDestroy() { //Decrement coin count --Coin.CoinCount; //Check remaining coins if(Coin.CoinCount <= 0) { //We have won } } //------------------------- } //-------------------------
Code Sample 2.3
The following points summarize the code sample:
- The
Coin
class maintains a static member variable,CoinCount
, which, being static, is shared across all instances of the class. This variable keeps count of the total number of coins in the scene and each instance has access to it. - The
Start
function is called once perCoin
instance when the object is created in the Scene. For coins that are present when the scene begins, theStart
event is called at scene startup. This function increments theCoinCount
variable by one per instance, thus keeping count of all coins. - The
OnDestroy
function is called once per instance when the object is destroyed. This decrements theCoinCount
variable, reducing the count for each coin destroyed.
Altogether, Code Sample 2.3 maintains a CoinCount
variable. In short, this variable allows us to always keep track of the total coin count. We can query it easily to determine how many coins remain. This is good, but is only the first step towards completing the coin collection functionality.
- Data Visualization with D3 4.x Cookbook(Second Edition)
- AngularJS入門與進階
- 程序員面試白皮書
- DevOps with Kubernetes
- 自制編譯器
- Mastering Selenium WebDriver
- Python語言程序設計
- 程序是怎樣跑起來的(第3版)
- Unity UI Cookbook
- C語言程序設計習題與實驗指導
- Deep Learning with R Cookbook
- ASP.NET 4.0 Web程序設計
- 玩轉.NET Micro Framework移植:基于STM32F10x處理器
- Mudbox 2013 Cookbook
- Spring Data JPA從入門到精通