Salah satu metode sederhana untuk meningkatkan skor di Unity adalah dengan waktu.
Misalnya, dengan menambahkan jumlah poin yang tetap untuk setiap detik permainan yang dilewati.
Biasanya, Anda dapat menggunakan sistem skor berbasis waktu seperti ini untuk permainan yang mengharuskan Anda bertahan hidup selama mungkin, untuk mengukur berapa lama seorang pemain berhasil melakukan sesuatu, seperti memegang suatu objek misalnya, atau hampir kapan pun Anda ingin mengukur kinerja pemain dengan berapa lama mereka berhasil melakukan sesuatu.
Jadi bagaimana Anda bisa menggunakan waktu untuk mengukur poin?
Sederhananya, ini melibatkan pengukuran waktu yang telah berlalu, dengan menjumlahkan Delta Time setiap frame dan kemudian mengalikan jumlah tersebut dengan nilai poin.
Seperti ini:
Increase_score_over_time.cs
1using System.Collections;
2using System.Collections.Generic;
3using UnityEngine;
4using UnityEngine.UI;
5
6public class Increase_score_over_time : MonoBehaviour
7{
8 public Text texttime;
9 public float score;
10 public float pointsPerSecond=20;
11 public float runtime;
12
13 // Start is called before the first frame update
14 void Start()
15 {
16
17 }
18
19 // Update is called once per frame
20 void Update()
21 {
22 runtime += Time.deltaTime;
23 score = runtime * pointsPerSecond;
24 texttime.text = string.Format ("Your Score: {0:00000}", + score);
25 }
26
27
28}
Mengalikan nilai poin dengan waktu delta, yang merupakan jumlah waktu yang telah berlalu sejak frame terakhir, menghitung skor pada tingkat yang konsisten.
Dalam hal ini, pada 20 poin per detik.
Tetapi bagaimana jika jumlah waktu yang berlalu bukanlah yang terpenting dalam permainan Anda?
Bagaimana jika, alih-alih mengukur berapa lama seorang pemain melakukan sesuatu, Anda ingin mengukur seberapa cepat mereka melakukannya?
Alih-alih menghitung skor pemain berdasarkan jumlah waktu yang telah berlalu, Anda mungkin ingin memberikan poin kepada pemain untuk waktu yang tersisa.
Ini adalah mekanisme umum di game platform lama, di mana tahapan sering dibatasi waktu dan pemain mendapat poin ekstra untuk berapa banyak waktu yang tersisa pada jam.
Ini bekerja dengan cara yang mirip dengan menghitung skor untuk jumlah waktu yang telah berlalu kecuali bahwa sementara, sebelumnya, skor dihitung setiap detik permainan masih berjalan, Anda biasanya akan menghitung skor sisa waktu di akhir level. sebagai gantinya.
Seperti ini:
Score_by_remaining_time.cs
1using System.Collections;
2using System.Collections.Generic;
3using UnityEngine;
4using UnityEngine.UI;
5
6public class Score_by_remaining_time : MonoBehaviour
7{
8 public Text texttime;
9 public float score;
10 public float pointsPerSecond=20;
11 public float timeRemaining;
12
13 // Start is called before the first frame update
14 void Start()
15 {
16
17 }
18
19 // Update is called once per frame
20 void Update()
21 {
22 timeRemaining -= Time.deltaTime;
23 score = timeRemaining * pointsPerSecond;
24 texttime.text = string.Format ("Your Score: {0:00000}", + score);
25 }
26
27
28}
Selamat mencoba..
Cara Instal Unity 3D Menggunakan Unity Hub
Cara Instal Unity Hub Dan Mendapatkan Lisensi Gratis Unity 3D
Cara Membuat Project baru Game Android Dengan Unity 3D - Membuat Hello World
Cara Mengganti Kode Editor Yang Akan Digunakan Pada Unity 3D
Mengenal Fungsi Operasi Untuk Statistik Pada Microsoft Office Excel 2010
Cara Membuat Huruf Atau Tulisan Di WhatsApp Menjadi Coretan Atau Tercoret
Cara Instal CodeIgniter 4 Menggunakan Composer
Mengubah pengaturan Startup Corel Draw X6
Mengenal Bagian Bagian Corel Draw X6
Kode Transfer Bank Di Indonesia