Хочу при сохранение, чтобы сохранялось кол-во жизни у врага.
private var HitGun : float;
var RockeyGun : GameObject;
var saved = 0;
function Start() {loadstuff();}
function Update()
{
HitGun = RockeyGun.GetComponent("DamageReceiver").hitPoints;
if(Input.GetKeyDown(KeyCode.Escape) && saved == 0)
{
saved = 1;
savestuff();
}
}
function savestuff()
{
PlayerPrefs.SetFloat("HitGun", RockeyGun.GetComponent("DamageReceiver").hitPoints);
}
function loadstuff()
{
RockeyGun.GetComponent("DamageReceiver").hitPoints = (PlayerPrefs.GetFloat("HitGun"));
saved = 0;
}
Вроде после активаций скрипта, враг становится бессмертным. Помогите его сохранить.
Добавлено (23.04.2014, 22:58)
---------------------------------------------
Столько ответов)
Вот ссылки, что помогли.
Обращение к объекту из другой сцены
Методы организации взаимодействия между скриптами в Unity3D
Сохранение игры в Unity3D
Вот сам код.
Код
var HitGun : float =100.0;
var damageRecive : DamageReceiver2;
private var textControl : TextControl; // я через него определяю надо загрузить или начать новую игру.
var saved = 0;
function Start()
{
var textControl2 = GameObject.Find("CubeLoad");
textControl = textControl2.GetComponent("TextControl");
if(textControl.isMyLoad)
loadstuff();
}
function Update()
{
HitGun = (damageRecive.hitPoints);
Debug.Log(HitGun);
if(Input.GetKeyDown(KeyCode.Escape) && saved == 0)
{
saved = 1;
savestuff();
}
}
function savestuff()
{
PlayerPrefs.SetFloat("HitGun", damageRecive.hitPoints);
//Debug.Log(HitGun);
}
function loadstuff()
{
if(textControl.isMyLoad)
{
damageRecive.hitPoints = (PlayerPrefs.GetFloat("HitGun"));
}
else
{
damageRecive.hitPoints = 100;
}
saved = 0;
}
До этого я дошел быстро.
А вот поменять скрипт, что я скачал пришло с трудом. Я не как не мог присвоить, ему кол-во жизни, скрипт ломался, что приводило к бессмертие врага. Решение пришло из прошлого.
Помните, раньше в играх при загрузки сцены мертвые враги были живыми и сразу покидали мир. Что и натолкнуло на мысль, надо не присваивать жизнь, а выстреливать в врага, на тот урон, что ты ему нанес при загрузки сцены. И все заработало)))
Что добавил в чужой скрипт.
Код
private var textControl : TextControl;
function Start()
{
var textControl2 = GameObject.Find("CubeLoad");
textControl = textControl2.GetComponent("TextControl");
if(save.HitGun <= 0 && textControl.isMyLoad == true)
ApplyDamage(100);
}