//[MenuItem("Assets/Create/Invantory Object")] public static InvantoryObject CreateInvantoryAsset() { InvantoryObject io = ScriptableObjectUtility.CreateAsset <InvantoryObject>(); io.itemLogic.name = io.name; return(io); }
void OnWizardCreate() { InvantoryObject io = ScriptableObjectClasses.CreateInvantoryAsset(); io.objectImage = objectImage; io.objectTooltip = objectTooltip; objectToPrefab.name = itemLogic.name; AssetDatabase.RenameAsset("Assets/InvantorySystem/Resources/InvantoryItems/InvantoryObject.asset", itemLogic.name); if (!objectToPrefab.GetComponent <CollectableObject>()) { var co = objectToPrefab.AddComponent <CollectableObject>(); co.objectRefrence = io; co.quantity = 1; } else { objectToPrefab.GetComponent <CollectableObject>().objectRefrence = io; } var cols = objectToPrefab.GetComponents <SphereCollider>(); bool hasTriggerCollider = false; for (var i = 0; i < cols.Length; i++) { if (cols[i].isTrigger) { hasTriggerCollider = true; } } if (!hasTriggerCollider) { var co = objectToPrefab.AddComponent <SphereCollider>(); co.isTrigger = true; } GameObject igo = CreatePrefab(objectToPrefab); Selection.activeObject = igo; io.objectPrefab = Resources.Load <GameObject>("InvantoryPrefabs/" + objectToPrefab.name); io.itemLogic = itemLogic; io.name = itemLogic.name; Vector3 pos = objectToPrefab.transform.position; Quaternion rot = objectToPrefab.transform.rotation; DestroyImmediate(objectToPrefab); GameObject go = (GameObject)PrefabUtility.InstantiatePrefab(igo); go.transform.position = pos; go.transform.rotation = rot; Selection.activeObject = go; EditorGUIUtility.PingObject(go); }
private void UpdateEquipped() { foreach (Transform child in hand) { Destroy(child.gameObject); } if (currentlySelectedItem >= objectsInInvantory.Count) { return; } InvantoryObject currentObject = objectsInInvantory [currentlySelectedItem]; currentObject.equipLogic.EquipItem(currentObject, hand); }
public void UseItem(Transform tf, InvantoryObject invantoryObject) { switch (logicType) { case LogicType.Spawn: Object.Instantiate(invantoryObject.objectPrefab, tf.position + (tf.forward * 2), Quaternion.identity); break; case LogicType.Other: invantoryObject.objectPrefab.GetComponent <RuntimeInvantoryLogic>().Use(tf.gameObject); break; default: break; } }
public void EquipItem(InvantoryObject obj, Transform hand) { //Debug.Log ("Equipping inventory object " + obj); GameObject newObj = GameObject.Instantiate(obj.objectPrefab, Vector3.zero, hand.rotation, hand) as GameObject; newObj.gameObject.transform.localPosition = Vector3.zero; CollectableObject collectable = obj.objectPrefab.GetComponent <CollectableObject> (); hand.localRotation = Quaternion.Euler(collectable.offsetXRot, collectable.offsetYRot, collectable.offsetZRot); // disable rigidbody Rigidbody rb = newObj.GetComponent <Rigidbody> (); rb.useGravity = false; rb.isKinematic = true; rb.detectCollisions = false; newObj.gameObject.GetComponent <Light> ().enabled = false; if (equipType == EquipType.Custom) { newObj.GetComponent <RuntimeEquipLogic> ().Equip(newObj); } }