Нужно чтобы код на капсуле игрока считывал переменные из скрипта предмета и заполнял массив экземплярами класса с свойствами предмета.
Вот мой код:
Тот что на игроке
Синтаксис:
Используется 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);
}
}
Что тут не так ?
Исправил код до рабочего состояния, может кому пригодится.