Создание GameObject ов в editor через скрипт?
|
|
Necrolich | Дата: Воскресенье, 25 Сентября 2016, 15:31 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Как сделать так, чтобы скрипт спавнил gameObject сразу в едиторе, а не после нажатия play?
Сообщение отредактировал Necrolich - Воскресенье, 25 Сентября 2016, 17:22 |
|
| |
Lertmind | Дата: Воскресенье, 25 Сентября 2016, 17:46 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| Вот хорошая статья по расширению меню, можно добавлять через него Unity Editor Extensions – Menu Items. Например, этот код после нажатия Tools/New GameObject добавит новый GO (скрипт надо класть в папку Editor):
Код using UnityEngine; using UnityEditor;
public class NewBehaviourScript : MonoBehaviour {
[MenuItem("Tools/New GameObject")] private static void NewGameObject() { var go = new GameObject("New GameObject"); go.transform.position = new Vector3(1, 1, 1); } }
Добавлено (25 сентября 2016, 17:46) --------------------------------------------- Там же (в меню справа) есть про расширение Инспектора, если хочешь видеть кнопки там.
Сообщение отредактировал Lertmind - Воскресенье, 25 Сентября 2016, 17:46 |
|
| |
alexsilent | Дата: Четверг, 06 Октября 2016, 15:48 | Сообщение # 3 |
почти ветеран
Сейчас нет на сайте
| Lertmind, жаль там примеры только на СиШарпе, а на ЯваСкрипте есть примеры как создать GameObject с помощью меню из префабов?
|
|
| |
sanchoflat | Дата: Четверг, 06 Октября 2016, 16:02 | Сообщение # 4 |
уже был
Сейчас нет на сайте
| alexsilent, пора переходить на c#)
|
|
| |
alexsilent | Дата: Четверг, 06 Октября 2016, 16:15 | Сообщение # 5 |
почти ветеран
Сейчас нет на сайте
| Цитата sanchoflat ( ) alexsilent, пора переходить на c#) ни в коем разе) там нельзя написать простую фразу типа
Код transform.position.x += 10; её придётся удлинять и проводить какие-то дополнительные танцы с new, я попробовал, так и не понял как написать, запутался, компилятор неустанно указывал всё новые ошибки, и я плюнул на это дело) для меня краткость в скриптах - сокровище)
Сообщение отредактировал alexsilent - Четверг, 06 Октября 2016, 16:20 |
|
| |
Barbatos | Дата: Четверг, 06 Октября 2016, 16:59 | Сообщение # 6 |
3D-моделлер/Руководитель
Сейчас нет на сайте
| alexsilent, Просто объекты которые принимают такие данные как Vector2, Vector3 и Color нужно указывать эти данные полностью по новой. То есть в c# такие вещи как transform.position.x это read only(только дают данные, указывать данные нельзя). Типа у тебя есть объект с значениями позиции xyz координатами(Vector3 это вектор с тремя коордианатами xyz), ты не можешь указать x или y, тебе нужно переписывать все координаты xyz.
Типа transform.position = new Vector3(x,y,z);
А в твоем варианте нужно transform.position = new Vector3(+10, transform.position.y, transform.position.z); Типа переуказываем вектору откуда брать y и z.
Его остатки и на хлеб не намазать. Мой тебе совет Пабло - относись к жизни как к веселухе, но непродолжительной. @Эш
|
|
| |
sanchoflat | Дата: Четверг, 06 Октября 2016, 17:34 | Сообщение # 7 |
уже был
Сейчас нет на сайте
| Цитата alexsilent ( ) ни в коем разе) там нельзя написать простую фразу типа Код transform.position.x += 10;
Можно, немного подлиннее правда - расширяющие методы)
|
|
| |