DredWulf
@DredWulf

Как я могу поместить компонент игрового объекта в переменную?

Так как компонент Rigidbody2D игрового объекта я использую часто, решил поместить его в переменную, возможно ли это? Мой код почему-то не работает:

во первых не получается создать такую переменную как свойство класса
public class PingPong : MonoBehaviour
{
    public Transform ball;
   Rigidbody2D ballRb = ball.GetComponent<Rigidbody2D>() //тут ошибка

void Start(){
Rigidbody2D ballRb = ball.GetComponent<Rigidbody2D>() //тут тоже не работает
}
}


мне нужно сохранить компонент Rigidbody2D в переменную для многоразового использования через эту переменную
  • Вопрос задан
  • 31 просмотр
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos Куратор тега Unity
Ну достаточно почитать ошибку. На самом деле.
Ответ написан
Комментировать
Fallervood
@Fallervood
Это сработает если данный скрипт будет висеть на объекте вместе с RigidBody2D
public class PingPong : MonoBehaviour
{
    public Transform ball;
    Rigidbody2D ballRb; // Объявляем переменную ballRb с типом RigidBody2D, на этом этапе, она пустая

    void Start()
    {
        // Присвоение переменной локального (который висит вместе со скриптом) RigidBody2D
        ballRb = GetComponent<Rigidbody2D>(); 
    }
}


Если же Вам нужно взять его отдельно из объекта ball

public class PingPong : MonoBehaviour
{
    public GameObject ball; //  Переменная должна быть игровым объектом
    Rigidbody2D ballRb; // Объявляем переменную ballRb с типом RigidBody2D, на этом этапе, она пустая

    void Start()
    {
        // Присвоение переменной от объекта ball RigidBody2D
        ballRb = ball.GetComponent<Rigidbody2D>(); 
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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