Воскресенье, 10 Ноября 2024, 18:06

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Создание 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;


Можно, немного подлиннее правда - расширяющие методы)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг