- Unity Game Development Blueprints
- John P. Doran
- 658字
- 2021-08-05 17:29:03
Adding in points, score, and wave numbers
One of the most important things to do in a game is reward the player and give them a sense of progression. For now, let's reward the player with a score we will display for them and also let the player know exactly which wave he is on. Perform the following steps:
- Create a new GUI Text object by going to the Hierarchy tab and selecting Create | GUI Text.
Note
If you are using the Unity 4.6 beta or higher versions, instead of creating the object in this way, you will need to select GameObject | Create Empty to create an empty object. Once you've done that with the object selected, then click on Component | Rendering | GUIText to add the component there.
- After this, switch to the Game tab, as you will be unable to see GUI Text in the Scene view. Note that the game should still not be started as yet, so don't hit the Play button. Have a look at the following screenshot:
- Change the GUI Text object's name to
Score Counter
. Under the GUI Text component, change the Text toScore: 0
. After that, change the Position of Transform to (0
,1
,0
) to put it on the left-hand side of the screen.GUI elements are placed in viewport space, which means that the space of the GUI is a value from (
0
,0
) in the bottom-left corner to (1
,1
) in the top-right corner. - Though this is technically fine, it would be nice to have some space so that the text isn't completely off the screen. To give us a bit of padding, let's set the Pixel Offset property to (
10
,-10
) to move it 10 pixels toward the right-hand side and 10 pixels down. Note that Pixel Offset uses pixel space. Have a look at the following screenshot: - Now that we have the text set up, let's set the font. Drag-and-drop the Font folder into your project. Then set Font to
OSP-DIN
and Font Size to25
.Note
The font used in this project was created by the OSP Foundry. For more information about their stuff check out http://ospublish.constantvzw.org/foundry/.
- Next, duplicate the Score Counter object by right-clicking and selecting Duplicate. Set this duplicate's name to
Waves Counter
, and change its text toWave: 0
. - Set the Waves Counter object's Position to (
1
,1
,0
). Then set Anchor toupper right
and Pixel Offset to (-10
,-10
). Have a look at the following screenshot: - Now that we have our text files created, let's now have them function correctly! First, let's go into the
GameController
class. Inside, we need to create some new variables as follows:// The values we'll be printing private int score = 0; private int waveNumber = 0; // The actual GUI text public GUIText scoreText; public GUIText waveText;
- Next, we will need to add a function to call whenever our score increases, as follows:
public void IncreaseScore(int increase) { score += increase; scoreText.text = "Score: " + score; }
The
+=
operator will take the current value and add the right-hand side's value to it. - Then, we'll need to call this function inside our
EnemyBehaviour
component. After thecontroller.KilledEnemy()
line, add the following line:controller.IncreaseScore(10);
- Finally, whenever we increase the wave number we need to change its text as well. Back in the
GameController
class after theif(currentNumberOfEnemies <= 0)
line, add the following lines:waveNumber++; waveText.text = "Wave: " + waveNumber;
The
++
operator will take the current value of a number and increment it by 1. - Save all the script files, go back to Inspector, and set the Score Text and Wave Text objects to the proper variables. After that, run the game. Have a look at the following screenshot:
And with that, you can see that everything is working together, killing enemies rewards points, and killing all the enemies in a wave triggers the next wave to start!
- 漫話大數據
- 計算機綜合設計實驗指導
- Hands-On Data Structures and Algorithms with Rust
- 程序員修煉之道:從小工到專家
- Access 2016數據庫教程(微課版·第2版)
- 有趣的二進制:軟件安全與逆向分析
- Voice Application Development for Android
- 企業大數據系統構建實戰:技術、架構、實施與應用
- 數亦有道:Python數據科學指南
- Proxmox VE超融合集群實踐真傳
- 大數據架構商業之路:從業務需求到技術方案
- 跨領域信息交換方法與技術(第二版)
- Oracle數據庫管理、開發與實踐
- Mastering LOB Development for Silverlight 5:A Case Study in Action
- Expert Python Programming(Third Edition)