У меня есть пара скриптов, которые я пишу на C#, в которых один сценарий вызывает метод из другого сценария. Тем не менее, я получаю следующее сообщение об ошибке:Доступ к методу в одном скрипте из другого скрипта
Member 'PlayerActions.Attack()' cannot be accessed with an instance reference; qualify it with a type name instead
Вот где метод я хочу назвать проживает:
public class PlayerActions:MonoBehaviour{
public static void Attack(){
Debug.Log("Attacking");
}
}
Вот где я пытаюсь вызвать метод:
public class Combat:MonoBehaviour{
PlayerActions playerActions;
void Start(){
playerActions = GetComponent<PlayerActions>();
playerActions.Attack();
}
}
Оба сценария прикреплены к одному и тому же игровому объекту.
Может ли кто-нибудь сказать мне, как исправить ошибку, о которой я упоминал выше, и почему я действительно получаю сообщение об ошибке? Я всегда думал, что вам нужно ссылаться на класс, к которому вы пытаетесь получить доступ, но из того, что я понимаю, эта ошибка указала иначе.
Почему вы не пытаетесь выбрасывать «статический» модификатор? 'public void Attack()' –
Да - сделайте то, что он говорит. Используйте имя типа вместо экземпляра, поскольку это статический метод. – pstrjds
@ CùĐứcHiếu Я сделал это правильно, когда вы делали комментарий, и он исправил это. ЕСЛИ вы хотите, сделайте этот ответ, и я пометю его как принятый. – Robert