2023-06-19 01:51:08 +02:00

48 lines
1.5 KiB
C#

using System.Collections.Generic;
using System.Linq;
using UnityEngine;
/**
* Einfaches Inventory Script v1.1
* Ein Item muss den Tag 'Item' haben um aufgehoben zu werden
* Schlüssel müssen 'Key' im Namen haben
* Türen welche mit Schlüssel geöffnet werden sollen brauchen den Tag 'Openable'
*/
public class InventoryBasic : MonoBehaviour
{
private LinkedList<GameObject> items;
// Start is called before the first frame update
void Start()
{
items = new LinkedList<GameObject>();
}
// Update is called once per frame
void Update()
{
}
private void OnCollisionEnter2D(Collision2D other)
{
switch (other.gameObject.tag) // switch-case hier damit in zukunft einfach fälle hinzugefügt werden können
{
case "Item":
other.gameObject.SetActive(false);
items.AddFirst(other.gameObject);
Debug.Log("Pickup: Take " + other.gameObject.name);
break;
case "Openable":
// Entfernt den ersten "Key" welcher unter den Items gefunden wird, falls es einen gibt
if ( items.Remove((from item in items where item.name.Contains("Key") select item).First()) )
{ // falls ein "Key" gefunden wurde, wird dieser genutzt
other.gameObject.SetActive(false);
Debug.Log("Pickup: Use Key");
}
break;
}
}
}