Я новичок в Unity, так что go легко для меня. :)
Я добавил игровой объект с компонентом текстового поля (через TextMeshProUGUI
) на экран в моей голове. Я хочу использовать это для отображения различной статистики для отладки во время игры.
Затем я создал скрипт, который я добавил как компонент к тому же игровому объекту, который содержит мой текстовый компонент. Это лучшая практика? Не уверен, как еще я мог бы заставить сценарий выполняться.
После того, как я создал свой сценарий, мне нужно было найти текстовый компонент, а также некоторые другие компоненты в моей сцене, чтобы я мог отобразить отладочную информацию. Ниже вы можете увидеть, как я это сделал ... немного грязно искать всю сцену, чтобы найти эти вещи. Хотелось бы узнать, как долго программисты Unity go об этом!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class PlayerDebugStatistics:MonoBehaviour {
TextMeshProUGUI playerDebugStatisticsText;
PlayerCharacterController playerCharacterController;
Health playerHealth;
private void Start() {
// First find the object in the scene named "PlayerDebugStatisticsText" and then get it's TextMeshProUGUI component
this.playerDebugStatisticsText = GameObject.Find("PlayerDebugStatisticsText").GetComponent<TextMeshProUGUI>();
// Get the player character controller
this.playerCharacterController = GameObject.FindObjectOfType<PlayerCharacterController>();
// Get the player health from the player character controller
this.playerHealth = playerCharacterController.GetComponent<Health>();
}
void Update() {
// Update the text every frame
this.playerDebugStatisticsText.SetText(string.Format("{0:N2}", this.playerHealth.currentHealth));
}
}