Инициализируйте переменную и напечатайте ее значение в каждом кадре - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь реализовать свойство "здоровье" для объекта.Я хочу, чтобы здоровье равнялось 100 в начале игры, и печатаю здоровье в каждом кадре, чтобы можно было отлаживать.

Вот мой код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class healthScript : MonoBehaviour {

    // Use this for initialization
    void Start () {

        public int health = 0;
    }

    // Update is called once per frame
    void Update () {

    }
}

Как я могу это сделать?

1 Ответ

0 голосов
/ 28 января 2019

Если вы хотите отлаживать значение каждого кадра, это будет работать:

public class healthScript : MonoBehaviour
{
   //Variable declaration
   private int _health;

   // Use this for initialization
   void Start()
   {
        _health = 100;
   }

    // Update is called once per frame
    void Update () {
        Debug.Log(_health);
    }
}

Ваша ошибка состояла в том, что вы определили свою переменную внутри метода Start, поэтому она видна только внутри этого метода.Но когда вы определяете переменную внутри класса, но вне какого-либо метода, это видно внутри всего класса.Но что касается переменных, видимых внутри и снаружи класса, где они объявлены, см. manual о модификаторах доступа.

Но я могу предложить вам более удобный способ:

public class healthScript : MonoBehaviour
{
    //Property
    public int Health
    {
        get { return _health; }
        set
        {
            _health = value;
            Debug.Log("Health changed to value: " + _health);
        }
    }

    //Variable declaration
    private int _health = 100;
}

В этом случае вы используете свойства для отладки значения вашего здоровья.Поэтому каждый раз, когда вы меняете значение здоровья, подобное этому Health = someIntValue, вы получите консольное сообщение о вашем текущем уровне здоровья.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...