初始化变量并将其值打印在每一帧上

时间:2019-01-28 14:54:43

标签: c# unity3d

我正在尝试为对象实现“健康”属性。我希望游戏开始时的生命值等于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 :(得分: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之类的健康值时,您都会收到有关当前健康水平的控制台消息。