Тема: I.D.S. MONSTERS
Показать сообщение отдельно
Старый 19.03.2020, 23:48   #68
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Ответ: I.D.S. MONSTERS

Кристал на 10 дней превратился в геймера, и задротил в Minion Masters,
но Кристал излечился, и сегодня вернулся к геймдеву.

Реализованы точки респавна монстров, в определённом радиусе от
которых монстры респавнятся в рандомной позиции.

Реализованы порталы аля фильм терминатор (надувающийся пузырь).
Пузырь надулся, в нём появился монстр, пузырь исчез.
Запускается таймер жизни монстра, после окончания
отсчёта дезбринга отправляем обратно в ад нафиг,
создавая пузырь вокруг него, и сдувая пузырь.

Код порталов и жизни монстра:

 //Портал появления

        if (MonsterLife == 0)
        {

            Portal.transform.Rotate(Vector3.right * 500 * Time.deltaTime);
            Portal.transform.localScale += PortalScaleChange;
            PortalScaleChange = -PortalScaleChange;


            if (Portal.transform.localScale.y < 2f && PortalState == 0)
            {
                PortalScaleChange = new Vector3(+0.03f, +0.03f, +0.03f);
            }

            if (Portal.transform.localScale.y >= 2f && PortalState == 0)
            {
                PortalState = 1;
            }

            if (PortalState == 1)
            {
                Portal.GetComponent<MeshRenderer>().enabled = false;
                PortalState = 2;
                MonsterBody.GetComponent<MeshRenderer>().enabled = true;
                MonsterLife = 1;
            }

        }
        //----------------------------------------------------------------

        // Удаляем монстра
        if (MonsterLife == 3)
        {
            Destroy(Monster1);

        }




        // Портал исчезновения
        if (MonsterLife == 2)
        {

            Portal.transform.Rotate(Vector3.right * 500 * Time.deltaTime);
            Portal.transform.localScale += PortalScaleChange;
            PortalScaleChange = -PortalScaleChange;


            if (Portal.transform.localScale.y > 0.01f && PortalState == 3)
            {
                PortalScaleChange = new Vector3(-0.03f, -0.03f, -0.03f);
            }

            if (Portal.transform.localScale.y <= 0.01f && PortalState == 3)
            {
                PortalState = 4;
            }

            if (PortalState == 4)
            {
                Portal.GetComponent<MeshRenderer>().enabled = false;

                MonsterLife = 3;
            }





        }


        // Жизнь монстра
        if (MonsterLife == 1)
        {
            //Таймер исчезновения
            LifeTime = LifeTime - 1f * Time.deltaTime;

            if (LifeTime < 1f)
            {
                MonsterLife = 2;
                PortalState = 3;
                Portal.GetComponent<MeshRenderer>().enabled = true;
                MonsterBody.GetComponent<MeshRenderer>().enabled = false;
            }

            //---------------------------------------------------------------
Код точки респа (она в разработке, пока создаёт только одного монстра):

    public GameObject MonsterPortal_z1;
    public GameObject Monster1;
    public Vector3 MonsterPortal_z1Coordinate;


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


        MonsterPortal_z1Coordinate = MonsterPortal_z1.transform.position;
        Instantiate(Monster1, new Vector3(MonsterPortal_z1Coordinate.x + Random.Range(-3f, 3f), 0f, MonsterPortal_z1Coordinate.z + Random.Range(-3f, 3f)), Quaternion.identity);
        
    }
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Crystal за это полезное сообщение:
ABTOMAT (20.03.2020), Randomize (20.03.2020)