我正在尝试为对象实现“健康”属性。我希望游戏开始时的生命值等于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 () {
}
}
我该怎么做?
答案 0 :(得分:1)
如果要调试每个帧的值,它将起作用:
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
之类的健康值时,您都会收到有关当前健康水平的控制台消息。