FindObjectsOfType говорит, что имя не существует в текущем контексте - PullRequest
0 голосов
/ 27 марта 2020

Я создаю мод меню для игры под названием Ravenfield. Это инъекционная DLL. Мне нужно изменить некоторые вещи об игроке, например, скорость, здоровье и т. Д. c и * c, и для этого мне нужно найти объект игрока, который содержит все это. С помощью dnSpy мне удалось найти класс игрока, который называется «Актер». Когда я пытаюсь найти его в public void Start(), набрав Player = FindObjectsOfType<Actor>();, он говорит: «Имя« Player »не существует в текущем контексте». Я добавил к своим ссылкам и UnityEngine.dll, и Assembly-CSharp.

Я не очень хорошо спал, и я вроде как мозговой автомат, поэтому, если кто-нибудь сможет мне помочь с этим, я буду признателен это очень много. :)

Код:

using UnityEngine;

namespace Ravenhack
{
    class Main : MonoBehaviour
    {
        public void Start()
        {
            Player = FindObjectOfType<Actor>();
        }
        public void Update()
        {
            if (Input.GetKeyDown(KeyCode.F4))
            {
                Player.SetHealth(100f); //FindObjectOfType<Actor>().SetHealth(100f);
            }

            if (Input.GetKeyDown(KeyCode.Delete))
            {
                Loader.Unload();
            }
        }
        public void OnGUI()
        {
            GUI.Label(new Rect(Screen.width / 2, Screen.height / 2, 350f, 550f), "RAVENHACK 1.1");
        }
    }
}

1 Ответ

1 голос
/ 27 марта 2020

Ни у класса, который вы определили, ни у класса, который вы унаследовали (MonoBehaviour), нет свойства или поля с именем Player.

По крайней мере, вам нужно, чтобы ваш класс работал, - строка ниже:

private Actor Player { get; set; }

Но вы должны прочитать больше об этих темах: C# свойства, доступность и инкапсуляция

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