Как можно в Unity, определить точки вокруг объекта, по кругу? Хотелось создать астероидный пояс, астероиды на расстоянии 100 единиц, через каждые 20 градусов.

Принятый ответ

Если знаешь как работает sin/cos то будет просто, хватаем координаты и через цикл задаем сколько нужно объектов, для упрощения:
int count = 100; //кол-во
float rad = 20; //радиус

void Start () {
	for (int i = 0; i < count; i++) {
		GameObject newObj = Instantiate (prefab.gameObject);
		Vector3 newPos = transform.position;
	
		float step = (Math.PI * 2) / count; // отступ
		newPos.x = centerX + Math.sin (step * i) * rad; // по оси X
		newPos.z = centerZ + Math.cos (step * i ) * rad; // по оси Z
		newPos.y = 0; // по оси Y - тобиш высота
	
		newObj.transform.position = newPos;
	}
}
Можно попариться c аналогом, примерно так же через цикл, тупо зная отступ делаешь спавн
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
48
5 лет назад
Отредактирован N7 Molot
0
Если знаешь как работает sin/cos то будет просто, хватаем координаты и через цикл задаем сколько нужно объектов, для упрощения:
int count = 100; //кол-во
float rad = 20; //радиус

void Start () {
	for (int i = 0; i < count; i++) {
		GameObject newObj = Instantiate (prefab.gameObject);
		Vector3 newPos = transform.position;
	
		float step = (Math.PI * 2) / count; // отступ
		newPos.x = centerX + Math.sin (step * i) * rad; // по оси X
		newPos.z = centerZ + Math.cos (step * i ) * rad; // по оси Z
		newPos.y = 0; // по оси Y - тобиш высота
	
		newObj.transform.position = newPos;
	}
}
Можно попариться c аналогом, примерно так же через цикл, тупо зная отступ делаешь спавн
Принятый ответ
0
9
5 лет назад
0
Спасибо чувак, я объяснил неправильно, надо было чтобы появилось кольцо
Но благодаря тебе я понял
И нашел ответ
Все дело в син и кос они оказываются принимают радианы а не градусы, пришлось сначала их перевели
Все равно спасибо что ответил
0
48
5 лет назад
0
Чтобы оставить комментарий, пожалуйста, войдите на сайт.