Можно ли изменить свойства у переменной типа GameObject?
я должен создавать объект на координатах 0x, 0y, 30z и чтобы он двигался к игроку (ну то есть к 0 по z), для этого я хочу обратиться к Rigidbody2d.vellocity, но вылезает ошибка т.к вызываю vellocity для GameObject (прошу ответить на вопрос в заголовке, можно или нельзя) вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Spawner : MonoBehaviour
{
public GameObject circle;
void Start()
{
StartCoroutine("spawn");
circle = GetComponent<GameObject>();
// строка снизу ошибку выдаёт
circle.Rigidbody2D.vellocity = new Vector3(0, 0, -1);
}
private IEnumerator spawn()
{
Instantiate(_circle, new Vector3(0,0,30), Quaternion.identity);
yield return new WaitForSeconds(5);
StartCoroutine(spawn());
}
}
Ответы (1 шт):
Автор решения: setagiSan
→ Ссылка
Вы можете получить доступ к любому компоненту объекта, но для этого вам потребуется ссылка на объект. Для этого стоит объявить новую переменную за функцией и заносить в неё ссылку на объект.
public class Spawner : MonoBehaviour {
private GameObject circle;
private Rigitbody2d rb;
void Start() {
StartCoroutine("spawn");
rb = circle.GetComponent<Rigidbody2D>();
rb.vellocity = new Vector3(0, 0, -1);
}
private IEnumerator spawn()
{
circle = Instantiate(_circle, new Vector3(0,0,30), Quaternion.identity);
yield return new WaitForSeconds(5);
StartCoroutine(spawn());
}
}