C# ошибка: элемент '<method>' недоступен со ссылкой на экземпляр - PullRequest
0 голосов
/ 02 апреля 2020

Я смотрел на другое руководство по этому поводу, но это не помогло. вот мои сценарии: (C#)

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

public class Player : MonoBehaviour
{

    public static int money;
    public static float health;

    void Update()
    {
        money = Money.money;
        health = HeathBar.slider.value;
    }

}

другой:

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

[System.Serializable]
public class PlayerData
{

    public static float health;
    public static int money;
    public float[] position;

    public PlayerData (Player player)
    {
        money = player.money;
        health = player.health;

        position = new float[3];
        position[0] = player.transform.position.x;
        position[1] = player.transform.position.y;
        position[2] = player.transform.position.z;
    }

}

когда я смотрю в консоль, я вижу 2 ошибки: "Member" Player.health «невозможно получить доступ с помощью ссылки на экземпляр; вместо этого укажите его имя типа» «Участник« Player.money »не доступен с помощью ссылки на экземпляр; вместо этого укажите его имя типа»

1 Ответ

0 голосов
/ 12 апреля 2020

Причина, по которой ваш код не будет компилироваться, заключается в том, что вы обращаетесь к static members Player.money и Player.health внутри конструктора для вашего PlayerData класса из экземпляра класса Player.

Переменная static совместно используется между всеми экземплярами класса, что означает, что каждый экземпляр вашего Player класса использует одинаковые значения money и health.

См. здесь для получения дополнительной информации.

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