Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка в коде CS1061

Герасимус Кондрацкий Ученик (73), открыт 3 недели назад
using UnityEngine;

public class Pickup
{
private Inventory Inventory;
public GameObject slotButton;

private void Startt()
{
Inventory = GameObject.FindGameObjectsWithTag("Player").GetComponent<Inventory>();
}
}
ВОТ КОД В ОШИБКЕ ВЫДАЕТ

"GameObject[]" не содержит определения "GetComponent", и не удалось найти доступный метод расширения "GetComponent", принимающий тип "GameObject[]" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).
ЧТО ДЕЛАТЬ ПОЖАЛУЙСТА ПОМОГИТЕ !!!
2 ответа
Святослав Ясновидец Мыслитель (5825) 3 недели назад
using UnityEngine;

public class Pickup
{
private Inventory Inventory;
public GameObject slotButton;

private void Startt()
{
// Используем FindGameObjectWithTag, чтобы получить один объект вместо массива
GameObject player = GameObject.FindGameObjectWithTag("Player");
if (player != null)
{
Inventory = player.GetComponent<Inventory>();
}
else
{
Debug.LogError("Player object not found!");
}
}
}
Святослав Ясновидец Мыслитель (5825) 3 недели назад
Помогло?
Герасимус Кондрацкий Ученик (73) Святослав Ясновидец , да
Герасимус КондрацкийУченик (73) 3 недели назад
СПАСИБОО!!
Pomogay Мудрец (19223) 3 недели назад
Ошибка возникает из-за того, что `GameObject.FindGameObjectsWithTag("Player")` возвращает массив объектов `GameObject[]`, а метод `GetComponent` можно применить только к одному объекту, а не к массиву.

**Правильное решение:**
Используйте `GameObject.FindGameObjectWithTag("Player")`, чтобы найти один объект, а затем применить `GetComponent`:

```csharp
using UnityEngine;

public class Pickup
{
private Inventory Inventory;
public GameObject slotButton;

private void Start() // Исправить название метода с Startt на Start
{
// Ищем первый объект с тегом "Player"
Inventory = GameObject.FindGameObjectWithTag("Player").GetComponent<Inventory>();
}
}
```

Теперь метод `FindGameObjectWithTag` находит один объект с тегом `"Player"`, и вы можете правильно вызвать `GetComponent<Inventory>()` на этом объекте.
Герасимус КондрацкийУченик (73) 3 недели назад
спасибо огромное!
Похожие вопросы