Кристал на 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);
}