Помогите с генерированьем обьекта - Форум Игроделов
Чт, 02 Май 2024, 04:45 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Помогите с генерированьем обьекта
Помогите с генерированьем обьекта
AlexCreateДата: Чт, 25 Июн 2015, 03:08 | Сообщение # 1
Нет аватара
 
Сообщений: 14
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте. Хочу написать скрипт, что один и тот же объект генерировался примерно каждую секунду рандомно + чтобы появлялся он на высоте -6.27 и достигал 2.24 и пропадал и ещё к этому же не заходил границы появления X -8.78 и X 8.78. Поможете?
 
СообщениеЗдравствуйте. Хочу написать скрипт, что один и тот же объект генерировался примерно каждую секунду рандомно + чтобы появлялся он на высоте -6.27 и достигал 2.24 и пропадал и ещё к этому же не заходил границы появления X -8.78 и X 8.78. Поможете?

Автор - AlexCreate
Дата добавления - 25 Июн 2015 в 03:08
QNicolyaДата: Чт, 25 Июн 2015, 08:09 | Сообщение # 2
God gave Rock'N'Roll to you
 
Сообщений: 3369
Награды: 3
Репутация: 352
Статус: Offline
Код
void FooThatStartsEverySecond(GameObject gameObject)  
    {  
       Random rand = new Random(); // объявляем новый рандом  
       Vector3 position = ((rand.NextDouble * 8.78) - 8.78, -6.27, putHereZCoord); // генерируем координаты:  
    /** x: rand.NextDouble возвращает случайное число от 0 до 1.0, потому имеем диапазон от [-8.78; +8.78]  
     ** y: -6.27  
     ** z: в putHereZCoord напишешь необходимую Z координату   
     **/  
        Quaternion rotation; //Здесь создай кватернион для поворота объекта  
       Instantiate(gameObject, position, rotation); // создаем сам объект на сцене по нужным координатам и повороту  
     
      Translate(gameObject.transform.x, 2.24, gameObject.transform.z); // собственно, двигаем  
  }


Возможно, это не совсем правильно, но работать должно smile


Если человек вас обманул - он мошенник, если он вас обманул дважды - вы дурак.
 
Сообщение
Код
void FooThatStartsEverySecond(GameObject gameObject)  
    {  
       Random rand = new Random(); // объявляем новый рандом  
       Vector3 position = ((rand.NextDouble * 8.78) - 8.78, -6.27, putHereZCoord); // генерируем координаты:  
    /** x: rand.NextDouble возвращает случайное число от 0 до 1.0, потому имеем диапазон от [-8.78; +8.78]  
     ** y: -6.27  
     ** z: в putHereZCoord напишешь необходимую Z координату   
     **/  
        Quaternion rotation; //Здесь создай кватернион для поворота объекта  
       Instantiate(gameObject, position, rotation); // создаем сам объект на сцене по нужным координатам и повороту  
     
      Translate(gameObject.transform.x, 2.24, gameObject.transform.z); // собственно, двигаем  
  }


Возможно, это не совсем правильно, но работать должно smile

Автор - QNicolya
Дата добавления - 25 Июн 2015 в 08:09
AlexCreateДата: Чт, 25 Июн 2015, 09:27 | Сообщение # 3
Нет аватара
 
Сообщений: 14
Награды: 0
Репутация: 0
Статус: Offline
Цитата QNicolya ()
Возможно, это не совсем правильно, но работать должно

Большое спасибо! Вечером проверю и отпишусь =)
 
Сообщение
Цитата QNicolya ()
Возможно, это не совсем правильно, но работать должно

Большое спасибо! Вечером проверю и отпишусь =)

Автор - AlexCreate
Дата добавления - 25 Июн 2015 в 09:27
QNicolyaДата: Чт, 25 Июн 2015, 09:50 | Сообщение # 4
God gave Rock'N'Roll to you
 
Сообщений: 3369
Награды: 3
Репутация: 352
Статус: Offline
Цитата AlexCreate ()
Вечером проверю

Только я его писал без юнити, потому могут понадобиться правки.


Если человек вас обманул - он мошенник, если он вас обманул дважды - вы дурак.
 
Сообщение
Цитата AlexCreate ()
Вечером проверю

Только я его писал без юнити, потому могут понадобиться правки.

Автор - QNicolya
Дата добавления - 25 Июн 2015 в 09:50
seamanДата: Чт, 25 Июн 2015, 17:39 | Сообщение # 5
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Конечно не будет работать как задумано. Translate мгновенно передвинет объект в нужную позицию, а не постепенно.
Посмотрите мои уроки - там есть перемещение...
https://www.youtube.com/playlis....v3Br4TM
 
СообщениеКонечно не будет работать как задумано. Translate мгновенно передвинет объект в нужную позицию, а не постепенно.
Посмотрите мои уроки - там есть перемещение...
https://www.youtube.com/playlis....v3Br4TM

Автор - seaman
Дата добавления - 25 Июн 2015 в 17:39
QNicolyaДата: Чт, 25 Июн 2015, 18:29 | Сообщение # 6
God gave Rock'N'Roll to you
 
Сообщений: 3369
Награды: 3
Репутация: 352
Статус: Offline
Цитата seaman ()
Translate мгновенно передвинет объект в нужную позицию

Пардон, не заморочился по этому поводу, поставил первую функцию из гугла по запросу "move object unity" biggrin
Тогда можно соединить с этим и всё будет норм smile


Если человек вас обманул - он мошенник, если он вас обманул дважды - вы дурак.
 
Сообщение
Цитата seaman ()
Translate мгновенно передвинет объект в нужную позицию

Пардон, не заморочился по этому поводу, поставил первую функцию из гугла по запросу "move object unity" biggrin
Тогда можно соединить с этим и всё будет норм smile

Автор - QNicolya
Дата добавления - 25 Июн 2015 в 18:29
AlexCreateДата: Пт, 26 Июн 2015, 00:10 | Сообщение # 7
Нет аватара
 
Сообщений: 14
Награды: 0
Репутация: 0
Статус: Offline
Цитата seaman ()
Посмотрите мои уроки

Не подскажите номер урока?

Добавлено (26 Июн 2015, 00:10)
---------------------------------------------
Цитата QNicolya ()
Тогда можно соединить с этим и всё будет норм

Здравствуйте ещё раз. Я ещё забыл упомянуть то, что у меня 2D игра. И ещё у меня ед. ошибка в вашем скрипте
/Scripts/Spawn.cs(9,68): error CS1026: Unexpected symbol `,', expecting `)'
Выше прочитал то, что скрипт недоработан и вы мне дали ссылку. Не подскажите как скрепить ваш скрипт с
Код
  public Transform target;
      public float speed;
      void Update() {
          float step = speed * Time.deltaTime;
          transform.position = Vector3.MoveTowards(transform.position, target.position, step);
      }

или просто добавить сверху эти строчки и дальше ваш?


Сообщение отредактировал AlexCreate - Пт, 26 Июн 2015, 00:11
 
Сообщение
Цитата seaman ()
Посмотрите мои уроки

Не подскажите номер урока?

Добавлено (26 Июн 2015, 00:10)
---------------------------------------------
Цитата QNicolya ()
Тогда можно соединить с этим и всё будет норм

Здравствуйте ещё раз. Я ещё забыл упомянуть то, что у меня 2D игра. И ещё у меня ед. ошибка в вашем скрипте
/Scripts/Spawn.cs(9,68): error CS1026: Unexpected symbol `,', expecting `)'
Выше прочитал то, что скрипт недоработан и вы мне дали ссылку. Не подскажите как скрепить ваш скрипт с
Код
  public Transform target;
      public float speed;
      void Update() {
          float step = speed * Time.deltaTime;
          transform.position = Vector3.MoveTowards(transform.position, target.position, step);
      }

или просто добавить сверху эти строчки и дальше ваш?

Автор - AlexCreate
Дата добавления - 26 Июн 2015 в 00:10
seamanДата: Пт, 26 Июн 2015, 01:09 | Сообщение # 8
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Так не получится. У Вас три альтернативы.
1. Ждать когда кто-то напишет Вам полный рабочий скрипт. Тут народу мало. Вряд ли кто-то это сделает в обозримом будущем.
2. Научиться самому писать скрипты. Для этого недостаточно посмотреть один урок. Нужно учиться.
3. Найти скриптера на Ваш проект, который займется программированием.
 
СообщениеТак не получится. У Вас три альтернативы.
1. Ждать когда кто-то напишет Вам полный рабочий скрипт. Тут народу мало. Вряд ли кто-то это сделает в обозримом будущем.
2. Научиться самому писать скрипты. Для этого недостаточно посмотреть один урок. Нужно учиться.
3. Найти скриптера на Ваш проект, который займется программированием.

Автор - seaman
Дата добавления - 26 Июн 2015 в 01:09
chapaeffДата: Пн, 29 Июн 2015, 17:40 | Сообщение # 9
 
Сообщений: 48
Награды: 0
Репутация: 12
Статус: Offline
Ничего не придумал получше, как написать два скрипта
Все нормально работает, код прокомментирован

SpawnBox вешаем на любой обьект

MoveBox вешаем на обьект, который спавним

cool




---------------------------------------------------------------------------------------
Throw Exception
(ノಠ益ಠ)ノ彡┻━┻
Catch Exception
┬──┬ ノ( ゜-゜ノ)


Сообщение отредактировал chapaeff - Пн, 29 Июн 2015, 17:45
 
СообщениеНичего не придумал получше, как написать два скрипта
Все нормально работает, код прокомментирован

SpawnBox вешаем на любой обьект

MoveBox вешаем на обьект, который спавним

cool



Автор - chapaeff
Дата добавления - 29 Июн 2015 в 17:40
AlexCreateДата: Ср, 01 Июл 2015, 17:01 | Сообщение # 10
Нет аватара
 
Сообщений: 14
Награды: 0
Репутация: 0
Статус: Offline
Цитата chapaeff ()
Ничего не придумал получше, как написать два скрипта
Все нормально работает, код прокомментирован

SpawnBox вешаем на любой обьект

MoveBox вешаем на обьект, который спавним



Большое спасибо! Благодарен вам очень.
Заметил ошибку, что сам прототип объекта тоже перемещается и после того как он достигнет высоты удаления, то спавн прекращается и выдает ошибку. Если интересно, то вот:

MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEngine.Object.Internal_InstantiateSingle (UnityEngine.Object data, Vector3 pos, Quaternion rot) (at C:/buildslave/unity/build/artifacts/EditorGenerated/UnityEngineObject.cs:74)
UnityEngine.Object.Instantiate (UnityEngine.Object original, Vector3 position, Quaternion rotation) (at C:/buildslave/unity/build/artifacts/EditorGenerated/UnityEngineObject.cs:84)
SpawnBox.SpawnYourFckingObject () (at Assets/Scripts/SpawnBox.cs:24)

и с самого начала спавнит сразу два обьекта


Сообщение отредактировал AlexCreate - Ср, 01 Июл 2015, 17:06
 
Сообщение
Цитата chapaeff ()
Ничего не придумал получше, как написать два скрипта
Все нормально работает, код прокомментирован

SpawnBox вешаем на любой обьект

MoveBox вешаем на обьект, который спавним



Большое спасибо! Благодарен вам очень.
Заметил ошибку, что сам прототип объекта тоже перемещается и после того как он достигнет высоты удаления, то спавн прекращается и выдает ошибку. Если интересно, то вот:

MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEngine.Object.Internal_InstantiateSingle (UnityEngine.Object data, Vector3 pos, Quaternion rot) (at C:/buildslave/unity/build/artifacts/EditorGenerated/UnityEngineObject.cs:74)
UnityEngine.Object.Instantiate (UnityEngine.Object original, Vector3 position, Quaternion rotation) (at C:/buildslave/unity/build/artifacts/EditorGenerated/UnityEngineObject.cs:84)
SpawnBox.SpawnYourFckingObject () (at Assets/Scripts/SpawnBox.cs:24)

и с самого начала спавнит сразу два обьекта

Автор - AlexCreate
Дата добавления - 01 Июл 2015 в 17:01
chapaeffДата: Чт, 09 Июл 2015, 17:31 | Сообщение # 11
 
Сообщений: 48
Награды: 0
Репутация: 12
Статус: Offline
Цитата AlexCreate ()
Заметил ошибку, что сам прототип объекта тоже перемещается и после того как он достигнет высоты удаления, то спавн прекращается и выдает ошибку. Если интересно, то вот:

ОБОЖИ!. Обьект который собираешься спавнить надо сделать префабом и назначать префаб

Добавлено (09 Июл 2015, 17:31)
---------------------------------------------
Хотя бы спасибо сказал


---------------------------------------------------------------------------------------
Throw Exception
(ノಠ益ಠ)ノ彡┻━┻
Catch Exception
┬──┬ ノ( ゜-゜ノ)
 
Сообщение
Цитата AlexCreate ()
Заметил ошибку, что сам прототип объекта тоже перемещается и после того как он достигнет высоты удаления, то спавн прекращается и выдает ошибку. Если интересно, то вот:

ОБОЖИ!. Обьект который собираешься спавнить надо сделать префабом и назначать префаб

Добавлено (09 Июл 2015, 17:31)
---------------------------------------------
Хотя бы спасибо сказал


Автор - chapaeff
Дата добавления - 09 Июл 2015 в 17:31
Форум Игроделов » UNITY3D » СКРИПТИНГ » Помогите с генерированьем обьекта
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024