Jump to content
Unity Insider Forum

Selan12

Members
  • Content Count

    6
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Selan12

  • Rank
    Newbie
  1. Vielen Dank ich habe leider keine Ahnung von IDE kannst du mir das vielleicht ein bissl näher erklären was du meinst über skype ? wenn ja gerne einfach anschreiben Selan14@web.de damit du mich findest ^^. Ja die Scripts sind zugewiesen mittlerweile (ich habe nichts geändert ist es so in einer Scene geht es in der nächsten nicht dabei habe ich die scene 1 nur kopiert um das Spiel ende zu programieren um wenn der schlüssel im Inventar ist man das tor öffnen kann und erst dann durch das drücken einer Taste in das nächste lvl kommt ) und jz da alles das selbe ist weiß ich nicht mehr wirklich was da abläuft und würde mich über einen Erklär freudigen der mir über Skype auf die finger schaut sehr freuen . Grüße Sascha
  2. wie mache ich das mit den <> dingern ??
  3. gerne auch über skype für ein besseres verständnis meiner seits
  4. Hallo danke für die schnell antwort aber ich habe allen items das zu gewiesen was sie brauchen die skripts das inventoryItem wie können die dann null sein und wie muss ich das machen damit ich das auslesen kann
  5. Hallo ich habe ein Problem mit den folgenden Scripts und zwar bin ich dabei ein 2D spiel zu erstellen das klappte alles auch ganz gut ich konnte Items mit der Maus anklicken die dann in meinem Inventar angezeigt wurden ich konnte auch z.b mit dem Gegenstand DoorKey wenn dieser in meinem Inventar war ein Tor öffnen doch als ich mein Menü Script erstellte und einen Back Button in meine Scene in der auch das Spiel(Die obengenannte problematik) stattfinden erstellte und das spiel exportierte konnte ich plötzlich keine dinge mehr aufheben also ging ich zurück in Unity und bekam die Meldung: " NullReferenceException: Object reference not set to an instance of an object PickableItem.OnMouseDown () (at Assets/Scripts/PickableItem.cs:22) UnityEngine.SendMouseEvents:DoSendMouseEvents(Int32) " ich muss dazu sagen das Ich das InventoryItem zum Test noch einmal neu erstellt habe und dort das selbe Problem hatte hier nun die Scripts um die es sich dabei handelt (Ich habe kein Hintergrundwissen um mache das mit toturials/und dem Buch (Spieleentwickeln mit Unity5 von Carsten seifert)). die mit Gelb markierte Zeile wird mir Angezeigt wenn ich doppelt auf die Fehlermeldung klicke. ICH DANKE SCHON MAL IM VORRAUS Script 1 Inventory < using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Inventory : MonoBehaviour { public Image[] guiItemImages; private Dictionary<InventoryItem, int> items = new Dictionary<InventoryItem, int>(); // Use this for initialization void Start () { UpdateView(); } public bool AddItem(InventoryItem ip) { if (!items.ContainsKey(ip)) { if (items.Count < guiItemImages.Length) items.Add(ip, 1); else return false; } else { items[ip]++; } UpdateView(); return true; } public bool RemoveItem(InventoryItem ip) { if(items.ContainsKey(ip)) { if(items[ip]> 0) { items[ip]--; if(items[ip] <= 0) { items.Remove(ip); } UpdateView(); return true; } } return false; } void UpdateView() { int guiCount = guiItemImages.Length; for(int i = 0; i< guiCount; i++) { guiItemImages.enabled = false; guiItemImages.GetComponentInChildren<Text>().text = ""; } int index = 0; foreach(KeyValuePair<InventoryItem,int>current in items) { guiItemImages[index].enabled = true; guiItemImages[index].sprite = current.Key.sprite; guiItemImages[index].GetComponentInChildren<Text>().text = current.Value.ToString(); index++; } } } > Script 2 InventoryItem < using System.Collections; using System.Collections.Generic; using UnityEngine; public class InventoryItem : ScriptableObject { public string Itemname; public Sprite sprite; public GameObject prefab; } Script 3 PickableItem using System.Collections; using System.Collections.Generic; using UnityEngine; public class PickableItem : MonoBehaviour { public InventoryItem inventoryItem; private Inventory inventory; private Transform player; // Use this for initialization void Start () { player = GameObject.FindGameObjectWithTag("Player").transform; inventory = player.GetComponent<Inventory>(); } void OnMouseDown() { if (inventory.AddItem(inventoryItem)) { Destroy(gameObject); } } } > Script 4 CreateInventoryItem < using UnityEditor; using UnityEngine; using System.Collections; public class CreateInventoryItem : MonoBehaviour { #if UNITY_EDITOR [MenuItem("Assets/Create/Inventory Item")] static void CreateAsset() { if(!AssetDatabase.IsValidFolder("Assets/Inventory Items")) { AssetDatabase.CreateFolder("Assets", "Inventory Items"); } ScriptableObject asset = ScriptableObject.CreateInstance(typeof(InventoryItem)); AssetDatabase.CreateAsset(asset, "Assets/Inventory Items/" + "New InventoryItem" + System.Guid.NewGuid() + ".asset"); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); EditorUtility.FocusProjectWindow(); Selection.activeObject = asset; } #endif } > Viele Danke für eure zeit ich hoffe ihr könnt mir Helfen Mit freundlichen Grüßen Selan12
×
×
  • Create New...