@DeadDeveloper

GetComponent(); Объясните?

В общем, сейчас почему-то в любом скрипте C# в Unity не работает GetComponent<GameObject>();
Скрипт висит на Cube, объект находиться на игровой сцене, как перестала работать эта функция сделал скрипт. Но значение переменной всё также null.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestGetComponent : MonoBehaviour {
    private GameObject HeroObject;
    private void Start()
    {
        HeroObject = GetComponent<GameObject>();
    }
    private void Update()
    {
        Debug.Log(HeroObject);
    }
}

P.S. Поправочка, не работает именно HeroObject = GetComponent<GameObject>();
Если написать HeroObject = this.GameObject;То всё ок.
Или если к примеру:
private Animator ch_anim;
private void Start()
{
ch_anim = GetComponetn<Animator>();
}

то тоже всё ок.
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
DanceM
@DanceM
Кто хочет -ищет способ, кто не хочет -ищет причину
Вы пытаетесь получить компонент GameObject... только нет в Unity такого компонента, вообще как-бы, GameObject не компонент.

Ищите Transform, через него обращайтесь к GameObject. Например:
heroObject = GetComponent<Transform>().gameObject;

PS: но на самом деле, вам в данном скрипте это не нужно, все проще:
heroObject = gameObject; // сокращенно от heroObject = this.gameObject;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы