Есть скрипт Movie который служит для управления player'ом и в нем же прописано кол-во здоровья. Нужно вывести кол-во хп на Canvas в Text. Делаю это через скрипт Game.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Game : MonoBehaviour
{
public Text Zdor;
public Text Level;
public Text Point;
public string mytext;
// Update is called once per frame
void Update()
{
Movie hp = gameObject.GetComponent("health") as Movie;
Zdor = hp;
}
}
На скорую руку скрипт, он ищет игрока и скрипт в нем. Кидается на сам Text, который будет выводить:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class HealthScript : MonoBehaviour {
public Movie HP;
// Use this for initialization
void Start () {
HP = GameObject.Find("Player").GetComponent<Movie>();
}
// Update is called once per frame
void Update () {
gameObject.GetComponent<Text>().text = HP.health.ToString();
}
}
Проверил на своем - отображает 100 на экране вместо стандартного New Text. Если нужно скрипт на канвасе, то этот Text Zdor так же как и игрока найти, потом передать ему текст:
GameObject.Find("Zdor").GetComponent<Text>().text = HP.health.ToString();
так же с Level и Point.
Класс Movie не указан, так что примерно так:
public class Movie : MonoBehaviour
{
public int hp;
....
}
public class Game : MonoBehaviour
{
public Text Zdor;
public Text Level;
public Text Point;
public string mytext;
Movie movie;
void Start(){
// Не нужно получать компонент в Update, каждый кадр - сделайте это один раз в Start или Awake.
movie = gameObject.GetComponent("health") as Movie;
}
// Update is called once per frame
void Update()
{
Zdor.text = movie.hp;
}
}
Конечно, если все правильно инициализировано.
Для чтения:
https://docs.unity3d.com/ScriptReference/UI.Text-text.html
https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/types/#custom-types
https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/keywords/reference-types
Виртуальный выделенный сервер (VDS) становится отличным выбором
Делаю службу для своих серверов с поднятой впн, нужно брать номер подсети и работать с ним
У меня есть класс
Нужно заспавнить префаб противника в рандомной точке за областью экранаКак можно реализовать?