Jump to content
Unity Insider Forum
  • Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011

Tarantel

Members
  • Content count

    131
  • Joined

  • Last visited

  • Days Won

    2

Tarantel last won the day on September 20 2016

Tarantel had the most liked content!

Community Reputation

8 Neutral

About Tarantel

  • Rank
    Advanced Member
  • Birthday 02/27/1996

Contact Methods

  • Website URL
    http://www.youtube.com/c/TarantelTM
  • Skype
    SerienKid

Profile Information

  • Gender
    Male
  • Location
    NRW,Köln,Deutschland
  1. Nabend alle zusammen ^^ Ich hab hier lange nix mehr von mir gegeben ^^ Habe grad ein altes tut von simplex gefunden und wollte mal frischen Wind für diejenigen rein bringen die lieber mit C# arbeiten statt JS. Link zum Video von Simplex Ich habe daher eine kleine Umwandlung des Codes von JS zu C# gebastelt. Auf die schnelle und da ich kaum noch mit C# was mache ist es nicht die beste Lösung aber dennoch funktioniert sie fürn Anfang wunderbar. PS: Das Lightscript ist mit eingebaut. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Accessibility; using UnityEngine.Scripting; using UnityStandardAssets.Vehicles.Car; public class EnterCar : MonoBehaviour { public float distance; public float enterRange = 5f; public Transform player; public Transform cameraCar; public Transform carText; private bool isInCar = false; private bool lightSwitch = false; public Transform lights; public GameObject car; private CarUserControl CarUC; private CarAudio CarA; private AudioSource CarAS; void Update () { distance = Vector3.Distance(player.position, transform.position); if (distance < enterRange && isInCar == false) { carText.gameObject.SetActive(true); } else { carText.gameObject.SetActive(false); } if (Input.GetKeyDown(KeyCode.Space) && isInCar == true) { ExitCar(); } if (Input.GetKeyDown(KeyCode.F) && isInCar == true) { lightSwitch = !lightSwitch; } lights.gameObject.SetActive(lightSwitch); } void OnMouseOver() { if (Input.GetKeyDown(KeyCode.E) && distance < enterRange) { isInCar = true; player.gameObject.SetActive(false); cameraCar.gameObject.SetActive(true); car.GetComponent<CarController>().enabled = true; car.GetComponent<CarUserControl>().enabled = true; car.GetComponent<CarAudio>().enabled = true; car.GetComponent<AudioSource>().enabled = true; } } void ExitCar () { isInCar = false; player.position = new Vector3(transform.position.x, transform.position.y + 2, transform.position.z + 5); player.gameObject.SetActive(true); cameraCar.gameObject.SetActive(false); car.GetComponent<CarController>().enabled = false; car.GetComponent<CarUserControl>().enabled = false; car.GetComponent<CarAudio>().enabled = false; car.GetComponent<AudioSource>().enabled = false; } }
  2. Server Fragen

    Moinsen Also ich würde vorschlagen die neue version von Darkrift auszuprobieren. Darkrift Networking 2.0 heißt die glaub ich im asset store. Bei der 2.0 version hast du auch kein client limit was bei der alten in der software verankert war. Die Pro version davon kostet auch nur was und bringt halt paar fertige plugins mit sich. Dafür ist die normale 2.0 kostenlos und halt jetzt ohne limit. Kannstja mal an schauen. MfG Tarantel Ps: du kannst damit einen eigenen Masterserver basteln oder halt dedicated damit andere für dich hosten.
  3. Bausystem - nicht erklärbare Fehler (Gelöst)

    Ok ich bin einfach zu müde xDDD Fehler gefunden..... hab n , anstatt n ; gemacht xDDDD
  4. Tag auch ^^ Ich bins mal wieder mit paar Problemen xD Ich hab hier ein einfaches Bausystem was noch am Anfang ist und naja es kommen nun schon Fehler wo für meine Augen keine sein können da dies vor nem halben Jahr noch funktioniert hat ^^ Gab es in der Zeit schon wieder so gewaltige Änderungen ? Hier mal die Fehlermeldungen: Und hier das Script xD using UnityEngine; using System.Collections; using System.Collections.Generic; public class Buildingsystem : MonoBehaviour { public List<buildObjects> objects = new List<buildObjects> (); public buildObjects currentobject; private Vector3 currentpos; private Vector3 currentrot; public Transform currentpreview; public Transform cam; public RaycastHit hit; public LayerMask layer; public float offset = 1.0f; public float gridSize = 1.0f; public bool IsBuilding; void Start() { //currentobject = objects [0]; ChangeCurrentBuilding (0); Cursor.visible = false; Cursor.lockState = CursorLockMode.Locked; } void Update() { if (IsBuilding) startPreview (); if (Input.GetButtonDown ("Fire1")) Build (); if (Input.GetKeyDown ("0") || Input.GetKeyDown ("1")) switchCurrentBuilding (); } public void switchCurrentBuilding() { for(int i = 0; i < 2; i++) { if(Input.GetKeyDown("" + i)) ChangeCurrentBuilding(i); } } public void ChangeCurrentBuilding (int cur) { currentobject = objects [cur]; if (currentpreview != null) Destroy (currentpreview.gameObject); GameObject curprev = Instantiate (currentobject.preview, currentpos, Quaternion.Euler(currentrot)) as GameObject; currentpreview = curprev.transform; } public void startPreview() { if (Physics.Raycast (cam.position, cam.forward, out hit, 10, layer)) { if (hit.transform != this.transform) showPreview (hit); } } public void showPreview(RaycastHit hit2) { currentpos = hit2.point; currentpos -= Vector3.one * offset; currentpos /= gridSize; currentpos = new Vector3 (Mathf.Round (currentpos.x), Mathf.Round (currentpos.y), Mathf.Round (currentpos.z)); currentpos *= gridSize; currentpos += Vector3.one * offset; currentpreview.position = currentpos; /*if (Input.GetAxis("Mouse ScrollWheel") > 0f ) // forward { currentrot += new Vector3 (0, 90, 0); } else if (Input.GetAxis("Mouse ScrollWheel") < 0f ) // backwards { currentrot -= new Vector3 (0, 90, 0); }*/ if (Input.GetKeyDown ("Fire2")) currentrot += new Vector3 (0, 90, 0); currentpreview.localEulerAngles = currentrot; } public void Build() { PreviewObject PO = currentpreview.GetComponent<PreviewObject> (); if (PO.IsBuildable) { Instantiate (currentobject.prefab, currentpos, Quaternion.Euler(currentrot)); } } } [system.Serializable] public class buildObjects { public string name; public GameObject prefab; public GameObject preview; //[system.Serializable] //public GameObject preview2; }
  5. Jut Danke für die ganze Hilfe ^^ Ich hab das alte Inventar erstmal übern Haufen geworfen xD Hab die Übersicht komplett verloren und hab es zu sehr aufgeteilt. Ich mache ein neues wo ich direkt am Anfang schon alles vormerke was gespeichert wird xD Ich hab am Anfang einfach nicht daran gedacht und hab nur drauflos gedaddelt xD
  6. Ok jetzt hab ich dem Slot Script was ja schon vorher drinne war beigefügt das er dem Slot immer einen öffentlichen ID gibt xD Vorher wurde der ID immer nur im Item selbst angegeben und das bringt mir ja nicht viel wenn die Leeren Slots dadurch keinen ID haben. Habe jetzt schon mal ein grobes Beispiel fürs saven angefangen. So hab ne weitere class im Slot Script beigefügt. Mal schauen wie weit ich jetzt komme xD public class SaveandLoad { public int SaveSlotID; public string SaveItemName; public Sprite SaveItemImage; public int SaveItemAmount; public void save () { if (GameObject.Find ("/Inventory")) { //Mir wurde gesagt das er so schaut ob ein Object Namens Inventory in der Object Hierarchy vorhanden ist aber das er nicht die ganze Szene nimmt oder liege ich da falsch ? } } public void load () { if (GameObject.Find ("/Inventory")) { } } }
  7. Nächstes Problem ^^ Wenn ich das Script auf den Prefab Slot ziehe und dann die Slots erzeugt werden haben sie ja alle die gleichen IDs so gesehen. Wenn ich dann etwas speichern will packt er ja dann in jeden Slot dasselbe oder nicht ? Wie kann ich machen das er jeden Eintrag einen eigenen ID zuweist damit er weiß in welchen Slot was gehört und wie gebe ich den Slots IDs wenn sie alle nach dem generieren nur Slot(Clone) heißen ? xD Hab da jetzt keine Idee wie man sowas machen kann Hiermit werden die Slots generiert. if(InventoryType == InventoryTypeEnum.CharacterPanel) { for(int i = 0; i < slotAmount; i++) { items.Add(new Item()); slots.Add(slotPanel.transform.GetChild(i).gameObject); slots[i].GetComponent<Slot>().id=i; } } else for(int i = 0; i < slotAmount; i++) { items.Add(new Item()); slots.Add(Instantiate(inventorySlot)); slots[i].GetComponent<Slot>().id=i; slots[i].transform.SetParent(slotPanel.transform,false); } Nur ich hab wirklich keinen Plan wie man da was ändern kann. Beim normalen Instantiate könnte man es so lösen. Slot = Instantiate(inventoryslots, Vector3(27,14.3,-19), transform.rotation); Slot.name = "Slot"+nextNameNumber; nextNameNumber++;
  8. Das brauch ich ja nur 1x auf nen Slot ziehen da die Slots erst beim Start der Szene erzeugt werden. Der Slot ist an sich nur ein UI Prefab mit Slot/Item Image/Text. Die werden dann über die jeweiligen Container erzeugt aber alle nutzen die selben Slots an sich. Kann es da dann zu Problemen kommen da diese nicht mehr zum Inventar gehören ?
  9. Dieses Script als Beispiel bringt doch nur etwas wenn ich eins für jeden Slot erstelle oder nicht ?
  10. Sorry war da schon extrem müde ^^ ja ich will keine PlayerPrefs nutzen ich wollte nur sagen das ich damit bisher nur gearbeitet habe ^^ Nun habe ich ein weiteres Problem xD Meine Inventar Struktur sieht so aus: Alles läuft über ein UI! Die Slots die Items die angezeigt werden und die Menge und in welchem Slot sie sich gerade befinden. Die Menge wird über ein Text UI angezeigt und sonst in keiner Variable ausgegeben. Kann ich diesen Text auch so abspeichern ohne ihn extra in eine Variable zupacken ? Oder muss ich diese ganzen Dinge erstmal ohne UI machen und dann kann ich erst anfangen ans speichern von sowas zudenken ? Inventar aufbau: Alles UI Elemente! Inventory (Canvas) Panel Inventory Panel Slot Panel Slot1 Item (Item Icon) Text (Zeigt die Menge an) Slot2 Item Text Slot3 Item Text Slot4 Item Text Slot5 Item Text Slot6 Item Text Slot7 Item Text Die einzelnen Slots werden beim Start leer generiert. Es gäbe eine Möglichkeit dies mit PlayerPrefs zulösen aber dadurch würden die Items nicht immer an den selben Slots sein wie sie vor dem verlassen des Spiels waren. Quasi eine Abfrage wie viel von welchem Item schon vorhanden war und sie einfach wieder über Commands adden lassen. Nur sowas ist Müll xD Deswegen frage ich ja xD Will das Inventar mit den UI Elementen nicht aufgeben weil ich es besser finde. Ich habe das Inventar nicht als Array aufgelistet in einem Object sondern nur über die UI Elemente einzeln pro Slot. Daher weiß ich einfach nicht wie ich dies lösen kann
  11. Ok eine Frage xD Wie speichert man überhaupt ein ganzes Objekt mit allen unterobjekten als String in den PlayerPrefs ? weil hab das zuletzt vor 4 Jahren gemacht mit JS xD und das waren eig nur Pfeile und Tote Tiere xD Und ja ich frage das weil in jeder Anleitung zum Saven von irgendwas nie beschrieben wird wie das Grundprinzip dahinter funktioniert. Ich weiß nur wie ich Namen und Zahlen in den PlayerPrefs speicher aber mehr auch nit xD hab damit wirklich nicht viel am Hut und wenn ich was finde was interessant klingt dann ist es meist zu alt als das es noch irgendwie mit der aktuellen Version von Unity in Verbindung gebracht werden kann. Ich brauche quasi Grundkurs in Objekte speichern für Anfänger weil früher hab ichs ja mit JS gemacht aber da wars auch irwie einfach und es gab genug die einem das gezeigt haben aber jetzt haben da fast alle aufgehört und oder tippen alles einfach nur von jemand anders ab aber erklären nichts mehr. Ich kann nicht einfach auf nen Code schauen und direkt alles verstehen. Ich brauch für alles eine genaue Erklärung weil anders gehts bei mir nicht wenn ich nicht alles über etwas wissen kann versteh ich nichts mehr xD Deswegen lade ich mir auch keine fertigen Scripts usw ausm Asset Store weil dort Null erklärt wird und ich damit dann nix anfangen kann xD
  12. Ja nur das Problem ist ich kenne nicht mehr als PlayerPrefs xD und habe noch nie außerhalb von Unity mit C# gearbeitet und habe C# auch erst vor nem Monat angefangen xD Habe vorher nur mit JS in Unity gearbeitet xD Ich kann mir nicht so gut vorstellen wie ich Codes außerhalb von Unity in Unity anwenden kann xD JSON für die ItemDB konnte ich auch nur in meinem Spiel nutzen weil es dazu genug Tipps im Netz gibt die extra auf Unity 5 ausgelegt sind ^^ Für mich ist das alles quasi Neuland wie für Merkel das Internet
  13. Gibt es zu den Möglichkeiten denn auch Infos wie man diese in Unity 5 benutzt ^^ Weil finde ja nur alten Code Kram der nicht mehr funzt xD
  14. Ja aber ich brauche halt was wo jeder sofort eine Übersicht haben kann auch jemand der sich Null mit Programmieren auskennt. Und ich brauche dann auch ein Format was auf Windows/Linux und Mac läuft. Da die Server auf allen Plattformen laufen sollen. Wie ich das bei Linux Servern ohne Grafische Oberfläche hinbekomme weiß ich leider auch noch nicht xD
  15. Guten Tag erstmal an die Community! So damit ich erstmal das Thema genau erläutere: Ich will die Inventare und Container Inhalte wie man sie auch nennen will aus meinem Spiel in einer Datei abspeichern. So jetzt will ich wissen ob eine Savedatei so aussehen kann: [PLAYER] { [iD = 1] { [sTATS] { Health = 100; Thirst = 100; Hunger = 100; Stamina = 100; PVP = 0; //1 = On/0 = Off. } [inventory] { [stone = 22],[Wood = 45],[],[],[],[Log = 3],[],[],[Coal = 35],[],[RawMeat = 6],[],[],[],[],[Oil = 2]; //Jedes Kästchen stellt einen Inventar Slot dar. ] [QuickSlots] { [steelSword = 1],[stoneHatchet = 1],[],[],[ironPickaxe = 1],[],[],[],[],[]; // Hier stellt jedes Kästchen einen Quickslot dar. } [Equipment] { [Helm] { [ironHelm]; } [Armor] { [ironArmor]; } [Gloves] { [ironGloves]; } [Pants] { [ironPants]; } [shoes] { [ironShoes]; } } [iD = 2] { [sTATS] { Health = 100; Thirst = 100; Hunger = 100; Stamina = 100; PVP = 1; //1 = On/0 = Off. } [inventory] { [stone = 22],[Wood = 45],[],[],[],[Log = 3],[],[],[Coal = 35],[],[RawMeat = 6],[],[],[],[],[Oil = 2]; //Jedes Kästchen stellt einen Inventar Slot dar. ] [QuickSlots] { [steelSword = 1],[stoneHatchet = 1],[],[],[ironPickaxe = 1],[],[],[],[],[]; // Hier stellt jedes Kästchen einen Quickslot dar. } [Equipment] { [Helm] { [ironHelm]; } [Armor] { [ironArmor]; } [Gloves] { [ironGloves]; } [Pants] { [ironPants]; } [shoes] { [ironShoes]; } } } [CONTAINER] { [iD = 1] { ObjectID = WoodenChest; OwnerID = 2; //Wem der Behälter gehört. PositionX = 21.4532; PositionY = 2.2332; PositionZ = 250.174326; [CONTAIN] { [stone = 22],[Wood = 45],[],[],[],[Log = 3],[],[],[Coal = 35],[],[RawMeat = 6],[],[],[],[],[Oil = 2]; //Jedes Kästchen stellt einen Inventar Slot dar. } } [iD = 2] { ObjectID = WoodenChest; OwnerID = 1; //Wem der Behälter gehört. PositionX = 23.4532; PositionY = 2.5332; PositionZ = 263.174326; [CONTAIN] { [stone = 22],[Wood = 45],[],[],[],[Log = 3],[],[],[Coal = 35],[],[RawMeat = 6],[],[],[],[],[Oil = 2]; //Jedes Kästchen stellt einen Inventar Slot dar. } } } [bUILDINGS] { [iD = 1] { ObjectID = SawMill; OwnerID = 1; PositionX = 23.4532; PositionY = 2.5332; PositionZ = 263.174326; } [iD = 2] { ObjectID = SawMill; OwnerID = 2; PositionX = 23.4532; PositionY = 2.5332; PositionZ = 263.174326; } } Jetzt ist die Frage wenn es so möglich ist dann wie xD Ich habe bisher immer nur mit PlayerPrefs gearbeitet aber nun ist es ja wieder was ganz anderes xD Ich habe schon einige Tutorials gesehen womit man SaveDatas erstellen kann aber leider immer nur auf einfacher Java Basis als String usw. Aber ich würde es gerne so haben ^^ Damit auch mal der Server Admin der den jeweiligen Server betreibt in die Saves schauen kann usw.
×