Помогите разобраться с проблемой. В общем дело такое: есть дверь, которая как только мы собираем нужное колличество кристаллов открывается(выключается на сцене моделька) при помощи триггера, и после этого значение переменной open_door меняется с 0 на 1 и сохраняется в файле. При загрузке уровня я сделал проверку на то, что значение 0 или 1, сохранение работает идеально, сохраняет переменную 1, но дверь при загрузке снова стоит на месте, хотя в скрипте указано, что если 1, то дверь должна быть выключена. Хз, что не так, уже голову изломал, десятки раз переписывал скрипт на дверь и толку нет,дверь не слушается. Помогите разобраться! Вот скрипт на дверь и на загрузку.
значение open_door как раз и есть та самая 0 и 1, которые сохраняются в файле и должны управлять дверью значение door - модель двери на которой весит триггер со скриптом ниже
Код
private var diamonds : int = Money.player_diamonds; var castq : int; var door : GameObject; var audiod : AudioSource; static var open_door : int = 0; function Start(){ if(door.active == true){ if(open_door == 1) door.active = false; else door.active = true; } } function OnTriggerEnter(other : Collider) { if(other.tag == "Player") { if(Money.player_diamonds >= castq) { open_door = 1; audiod.Play(); yield WaitForSeconds(0.5); door.active = false; } } }
Игра сохраняется кнопкой, происходит успешная запись числа 1 когда дверь я открываю, но при загрузке дверь почему то не выключается door1 - переменная которая загружает число и даёт его open_door из скрипта сверху
Код
class Load extends MonoBehaviour {
var x : float; var y : float; var z : float; var diamonds : int = Money.player_diamonds; var door1 : int = Door_Script.open_door;
function Start () : void { var streamReader : StreamReader= new StreamReader("Data/Save/Position.xbn"); if(streamReader != null) { while (!streamReader.EndOfStream) { x = System.Convert.ToSingle(streamReader.ReadLine()); y = System.Convert.ToSingle(streamReader.ReadLine()); z = System.Convert.ToSingle(streamReader.ReadLine()); diamonds = System.Convert.ToSingle(streamReader.ReadLine()); door1 = System.Convert.ToSingle(streamReader.ReadLine()); } if(x != 0 && y != 0 && z != 0) transform.position = new Vector3(x, y, z); Money.player_diamonds = diamonds; Door_Script.open_door = door1; } } }
Надеюсь вы поможете мне разобраться в чём моя ошибка.
Сообщение отредактировал PasterLak - Ср, 11 Мар 2015, 16:30