Cara Meningkatkan Score Berdasarkan Waktu Di Unity 3D

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.


Baca juga:
tutorial lengkap cara menggunakan unity disini

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?



Bagaimana mengukur skor berdasarkan waktu yang tersisa

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}


  • Untuk menampilkan, buatlah sebuah Text object di Hierarchy
  • Lalu ubah nama Text Object tersebut misal menjadi 'Score view tx'
  • Pada bagian Inspector tambahkan komponen dengan cara tekan tombol 'Add Component'
  • Lalu pilih 'Script'
  • Lalu pilih Script yang akan kita masukan ke dalam komponent. (Score_by_remaining_time.cs atau Increase_score_over_time.cs)
  • Atau juga dapat langsung mengetikkan pada bagian search nama komponen yang akan dimasukkan.
  • Pada bagian Script yang telah kita masukkan tadi di Inspector untuk 'texttime' masukkan atau pilih 'Score view tx' yang telah kita buat tadi di Hierarchy.
  • saat kita play nilai dari 'Score view tx' akan berubah mengikuti waktu.

Selamat mencoba..

Dictionary Plus+ ©2022