Суббота, 27 Апреля 2024, 06:33

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Удаление старого объекта + Collision
Удаление старого объекта + Collision
Knife_KillДата: Среда, 07 Января 2015, 22:16 | Сообщение # 1
частый гость
Сейчас нет на сайте
Здравствуйте!
Обучаясь Юньке я где-то у вас на форуме нашел ссылку на урок про Flappy Birds на Юньке, так вот, сделал я все по гайду, все нормально работает. Но я задался вопросом - как удалять объект который "птичка" уже преодолела? (В уроке этого нет)
Ясное дело, что через Destroy, но если я добавлю строчку (смотрите ниже пример) - ничего не происходит, как можно починить?

Код
using UnityEngine;
using System.Collections;

public class Generate : MonoBehaviour {

     public GameObject rock;
     public int score = 0;
         
     void Start ()     
     {
      InvokeRepeating("CreateRock", 1f, 1.5f);
     }
         
     void OnGUI()
     {
      GUI.color = Color.black;
      GUILayout.Label(" Score: " +score.ToString());
     }

     void CreateRock ()     
     {
      Instantiate(rock);
      Destroy(rock, 5); //Эту строчку я добавил
      score++;
     }
}


P.s. Еще я не могу понять как работает Collision (есть ли урок с его описанием?) в документации смотрел - ничерта не понял. А еще больше мне не понятно - как при помощи коллизии проверять столкновение с предметом... (Может быть даже при помощи коллайдера, не могу понять разницы)
P.s.s. Можно ли в коллизию добавить gameObject объявленный в коде (к примеру:)
Код
void OnCollisionEnter(Collision *объект*)
или как это вообще сделать? На сколько я понял после Collision мы объявляем еще одну "переменную", правильно ли я понял?

Зарание благодарю.


Сообщение отредактировал Knife_Kill - Среда, 07 Января 2015, 22:38
MR_BorgДата: Среда, 07 Января 2015, 22:36 | Сообщение # 2
участник
Сейчас нет на сайте
Цитата Knife_Kill ()
Еще я не могу понять как работает Collision (есть ли урок с его описанием?) в документации смотрел - ничерта не понял. А еще больше мне не понятно - как при помощи коллизии проверять столкновение с предметом... (Может быть даже при помощи коллайдера, не могу понять разницы)


В объекте который должен сталкиваться с чем либо пиши
Код

void OnCollisionEnter(Collision Contact)
     {  
        Contact- Объект, с которым столкнулся ГО,Если не важно с каким ГО было столкновение то просто игнорь это.
        А дальше пиши что должно:        
     }


Изучаю C++ попутно пишу игру.
berilДата: Среда, 07 Января 2015, 22:52 | Сообщение # 3
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Цитата Knife_Kill ()
void CreateRock ()
{
Instantiate(rock);
Destroy(rock, 5); //Эту строчку я добавил
score++;
}

Как вариант можно, что то вроде этого
Код

void CreateRock ()      
      {
       GameObject go = Instantiate(rock) as GameObject;
       Destroy(go, 5); //Эту строчку я добавил
       score++;
      }  

Вот только если создастся новый обьект раньше, чем удалится прошлый в go будет хранить ссылку на только что созданый обьект
Цитата Knife_Kill ()
или как это вообще сделать? На сколько я понял после Collision мы объявляем еще одну "переменную", правильно ли я понял?

Основы нужно учить) То что в скобках - это параметры cool




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
Knife_KillДата: Среда, 07 Января 2015, 23:47 | Сообщение # 4
частый гость
Сейчас нет на сайте
Цитата beril ()
Основы нужно учить) То что в скобках - это параметры

Я и так стараюсь прям с самых "низов" начать, но вкапываясь в суть и пытаясь написать что-то возникает много вопросов, поэтому я и "бегу" спрашивать на форум biggrin

Добавлено (07 января 2015, 23:41)
---------------------------------------------

Цитата MR_Borg ()
В объекте который должен сталкиваться с чем либо пиши

Спасибо, более-мение разобрался

Добавлено (07 января 2015, 23:47)
---------------------------------------------

Цитата beril ()
GameObject go = Instantiate(rock) as GameObject;

Получается, что этой строкой мы объявили еще один ГеймОбъект под названием "go", как бы "присвоили" ему то, что он должен спавнить предметы под названием "rock" и конвертируем это в ГеймОбъект?
berilДата: Четверг, 08 Января 2015, 00:56 | Сообщение # 5
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Вроде того. в локальную переменную go заносим ссылку на только что созданный обьект



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
Knife_KillДата: Четверг, 08 Января 2015, 01:19 | Сообщение # 6
частый гость
Сейчас нет на сайте
Цитата beril ()
Вроде того. в локальную переменную go заносим ссылку на только что созданный обьект

Окей, спасибо
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Удаление старого объекта + Collision
  • Страница 1 из 1
  • 1
Поиск:

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