Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2020, 16:46   #1
DanDiablo
Пользователь
 
Аватар для DanDiablo
 
Регистрация: 25.08.2015
Сообщений: 55
Вопрос Создание префаба после набора очков (Unity)

Доброго времени суток, дамы и господа!

После перерыва я вернулся к своей игре и задаю очередной тупой вопрос, уж простите.

Есть скрипт Bird, который создает мне птицу на экране.

Код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bird : MonoBehaviour
{
    [Header("Set in Inspector")]

    public GameObject leftBirdPrefab;

    [HideInInspector]
    private GameObject birdLeftBottom, birdLeftTop;

    public static float secondsBetweenBird = 3f;
    // Start is called before the first frame update

    void Awake(){
        birdLeftBottom = GameObject.Find("BirdLeftBottom");

        birdLeftTop = GameObject.Find("BirdLeftTop");
    }

    void LeftBirdRandom(){
        GameObject leftBird = Instantiate(leftBirdPrefab) as GameObject;

        leftBird.transform.position = Vector3.Lerp(birdLeftBottom.transform.position, birdLeftTop.transform.position, Random.Range(0f, 1f));

        Invoke("LeftBirdRandom", secondsBetweenBird);
    }
       

    void Start()
    {  
        // Invoke("LeftBirdRandom", secondsBetweenBird);            
    }


    // Update is called once per frame
    void Update()
    {
 
    }
}
Есть скрипт Basket, который считает очки и уничтожает яблоки в корзине.

Тут все понятно, но вот ответственный кусочек на всякий случай.

Код:
void OnCollisionEnter(Collision coll){

        GameObject collidedWith = coll.gameObject;

        switch (collidedWith.tag)
        {
            case "green":

              AudioManager.PlaySound(AudioManager.GetClips()[0]);

              //Добавить очки за пойманное яблоко
              score += 200;

              //Преобразовать число обратно в строку и вывести ее на экран
              scoreGT.text = score.ToString();
              Destroy(collidedWith, destroyApple);

              break;
.............................................................................
Далее я хочу сделать нарастающую сложность.

Что бы птицы летели не прям сразу, а послу 200 (условно, для теста) очков.

Как правильно сделать скрипт Level?

Если так
Код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Level : MonoBehaviour
{

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
       
        if (Basket.score > 200)
        {
                Debug.Log("Вызов LeftBirdRandom");
        }
    }
}
То птицы заполонят все на проч.

Да, я понимаю, что LeftBirdRandom() должен быть статик публик

Если так

Код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Level : MonoBehaviour
{

        public static bool StartBirds;
    // Start is called before the first frame update
    void Start()
    {
        StartBirds = false;
    }

    // Update is called once per frame
    void Update()
    {
       
        if (Basket.score > 200)
        {
                StartBirds = true;
        }
    }
}
То куда это запихнуть в Bird?

Код:
        if (Level.StartBirds)
        {
            Invoke("LeftBirdRandom", secondsBetweenBird);
        }
Или это вообще не так делается и я фигную тут горожу?

Короче, логика мне не понятна.

Покажите мне рабочий пример или нужное направление.

Благодарю за внимание!
DanDiablo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу остановить подсчёт очков после проигрыша Unity TOBI21 Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 26.03.2019 17:45
Создание IOS приложения на Unity 5 alexander326 Мобильные ОС (Android, iOS, Windows Phone) 1 04.12.2017 16:16
Создание нового набора данных в IBexpert Oleg34 SQL, базы данных 6 15.02.2012 20:28
Создание онлайн игры на движке Unity Entaro Фриланс 4 30.09.2010 10:03
курсор автоматом возвращался в edt_1 и после набора двух символов переходил в edt_2 marinochka Помощь студентам 2 30.08.2009 12:29