Всем хай. Появился вопрос,правильно ли я понимаю,что при использование application.loadlevel для того,чтобы например сделать рестарт уровня,статик переменные не обнуляются ? Например: есть платформер,сцена с названием level1.Собираем мы монетки,и их число храниться в статик переменной,монеток у нас 10 штук,и герой умирает. Я использую
Code
Application.LoadLevel ("level1");
для рестарта уровня,а колличество монеток как было 10,так и осталось. Собственно вопрос-Как сделать чтобы их число стало как при старте уровня,т.е. 0 ?
//скрипт var монетки:float = 0; //при старте игры var dead:boolean = false;//при старте игрок жив function Update () { if(dead==true){ монетки = 0; Application.LoadLevel (1)//build сцена 1 или "название сцены" } }
Левша, У меня тоже ссистемка не плохая вышла, могу написать маленький скрипт на смерть:
Code
//скрипт var монетки:float = 0; //при старте игры var dead:boolean = false;//при старте игрок жив var maxHealth:int = 100;
private var _curHealth:int = 100; private var healthBarLength:float;
function Start() { healthBarLength = Screen.width / 4; if (maxHealth < 1) maxHealth = 1; _curHealth = maxHealth; }
function OnGUI() { GUI.contentColor = Color.red; GUI.Box(new Rect(10, 10, healthBarLength, 20), _curHealth + "/" + maxHealth); } public function AddjustCurrentHealth(int adj) { _curHealth += adj; if (_curHealth < 0) _curHealth = 0; if (_curHealth > maxHealth) _curHealth = maxHealth; if (_curHealth <= 0 || dead==true) { монетки = 0; Application.LoadLevel (1)//build сцена 1 или "название сцены" } }
Код конечно усложнен в этой части:
Code
if (_curHealth <= 0 || dead==true)
Можно было бы обойтись событием "если хп <= 0", но я просто хотел показать как можно использовать и хп <= 0 и булевая перменная dead = true. Там прописано собыие если то или то.