Не получается заполнить массив (инвентарь)[РЕШЕНО]
Добавлено: 13 апр 2012, 15:50
Вобщем пишу простенькую систему подбора предметов, изучал темы на форуме и на их основе написал код, в результате таки заставил пополнятся массив, но пополняется он пустыми элементами. (Debug.Log выдает Null) Компилятор ошибок не выдает, просто код не делает то что должен.
Нужно чтобы код на капсуле игрока считывал переменные из скрипта предмета и заполнял массив экземплярами класса с свойствами предмета.
Вот мой код:
Тот что на игроке
Тот что на предмете :
Что тут не так ?
Исправил код до рабочего состояния, может кому пригодится.
Нужно чтобы код на капсуле игрока считывал переменные из скрипта предмета и заполнял массив экземплярами класса с свойствами предмета.
Вот мой код:
Тот что на игроке
Синтаксис:
Используется javascript
static var statinventory : Inventory;
var fastAccesSlots : Array;
class inventoryitem {
var prefabToInstantiate : GameObject;
var objectname : String;
var mass : float;
var size : float;
var stackable : boolean;
}
function Awake () {
statinventory = this;
fastAccesSlots = new Array ();
}
function AddItem (item : inventoryitem) {
//Debug.Log(fastAccesSlots.Count);
//fastAccesSlots.Push (inventoryitem);
//var item : inventoryitem;
fastAccesSlots.Add(item);
}
function DropItem (){
var spawn;
spawn = fastAccesSlots.Pop();
Instantiate(spawn,transform.position,transform.rotation);
}
function Update () {
Debug.Log(fastAccesSlots[0].objectname);
//Debug.Log(fastAccesSlots[2]);
}
var fastAccesSlots : Array;
class inventoryitem {
var prefabToInstantiate : GameObject;
var objectname : String;
var mass : float;
var size : float;
var stackable : boolean;
}
function Awake () {
statinventory = this;
fastAccesSlots = new Array ();
}
function AddItem (item : inventoryitem) {
//Debug.Log(fastAccesSlots.Count);
//fastAccesSlots.Push (inventoryitem);
//var item : inventoryitem;
fastAccesSlots.Add(item);
}
function DropItem (){
var spawn;
spawn = fastAccesSlots.Pop();
Instantiate(spawn,transform.position,transform.rotation);
}
function Update () {
Debug.Log(fastAccesSlots[0].objectname);
//Debug.Log(fastAccesSlots[2]);
}
Тот что на предмете :
Синтаксис:
Используется javascript
#pragma strict
var prefabToInstantiate : GameObject;
var objectname : String;
var mass : float;
var size : float;
var stackable : boolean;
var selected : boolean = false;
function Awake () {
rigidbody.mass = mass;
}
function OnMouseEnter () {
selected = true;
renderer.material.color = Color.red;
}
function OnMouseExit () {
selected = false;
renderer.material.color = Color.white;
}
function Update () {
if (Input.GetKeyDown("e") && selected)
{
var item = new inventoryitem();
item.prefabToInstantiate = prefabToInstantiate;
item.objectname = objectname;
item.mass = mass;
item.size = size;
item.stackable = stackable;
//Debug.Log (item.mass);
Inventory.statinventory.AddItem(item);
Destroy(gameObject);
}
}
var prefabToInstantiate : GameObject;
var objectname : String;
var mass : float;
var size : float;
var stackable : boolean;
var selected : boolean = false;
function Awake () {
rigidbody.mass = mass;
}
function OnMouseEnter () {
selected = true;
renderer.material.color = Color.red;
}
function OnMouseExit () {
selected = false;
renderer.material.color = Color.white;
}
function Update () {
if (Input.GetKeyDown("e") && selected)
{
var item = new inventoryitem();
item.prefabToInstantiate = prefabToInstantiate;
item.objectname = objectname;
item.mass = mass;
item.size = size;
item.stackable = stackable;
//Debug.Log (item.mass);
Inventory.statinventory.AddItem(item);
Destroy(gameObject);
}
}
Что тут не так ?
Исправил код до рабочего состояния, может кому пригодится.