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

rentox

Members
  • Content count

    12
  • Joined

  • Last visited

Community Reputation

3 Neutral

About rentox

  • Rank
    Member
  1. RTS survival

    Hallo zusammen, gerne wollte ich euch kurz mein erstes Projekt vorstellen. Beschreibung: Man startet in seinem eigenen Dorf und drei Dorfbewohnern. Jeden Tag wird pro Dorfbewohner Nahrung verbraucht und jeder Dorfbewohner benötigt ein Haus über dem Kopf. Von Zeit zu Zeit kommen neue Personen in die Siedlung diese können aufgenommen oder Abgelehnt werden. Die Dorfbewohner Männer und Frauen haben verschiedene Werte: - HP (wenn auf null stirbt die Person zb. durch Nahrungsmangel oder Angriffe in der Nacht) - Skills für die Berufe ( wenn eine Person einen Beruf genügend lange ausführt steigt der level an und die Rohstoffe können schneller gesammelt werden) - Moral - Loyalität - Alter - usw.. Es gibt folgende Berufe: - Holzfäller - Sammler - Fischer - usw.. Wir können jeder Person einen Beruf zuteilen und die Person beginnt dann Rohstoffe zu sammeln und bringt diese in ein zentrales Lagerhaus. Personen können auch als Krieger oder Range eingesetzt werden, dies ist jedoch nicht rückgängig zu machen. Die anderen Dorfbewohner müssen dann für die Nahrung welche von den Soldaten benötigt wird aufkommen bzw. diese Sammeln. In der Nacht kommen die Dämonen aus dem Boden und greifen alle Dorfbewohner welche sich nicht in einem Haus oder an einer Feuerstelle befinden an. Über die Nacht müssen die Feuerstellen durch Holz betrieben werden, ist dies nicht vorhanden erlischt das Feuer und die Dämonen stürmen in die Siedlung. Die Dämonen sind extrem stark und nahezu unbesiegbar. So ist es auch nicht möglich die Siedlung (Feuerstellen) in der Nacht zu verlassen. Häuser können von den Dämonen nicht angegriffen werden. In jedem Haus können die Plätze an die Dorfbewohner vergeben werden, diese sind dann auch ohne Feuer in der Nacht in Sicherheit. Das ist mein Prozess bis jetzt. Geplant habe ich noch folgende Funktionen: - Männer und Frauen die im selben Haus wohnen können verheiratet werden (Nachname wird ersetzt) - Eheleute können Kinder bekommen wenn im Haus genügend Platz vorhanden (Nachname wird übernommen) Kinder können nicht arbeiten und werden erwachsen. - Es gibt andere Siedlungen und Schauplätze welche am Tag besucht werden können, Reisen in der Nacht empfiehlt sich weniger. - Andere Dörfer können überfallen werden, sind feindlich oder freundlich gestimmt Das ist mein erstes Projekt mit Unity und leider entspricht es von den Funktionen und vom Umfang her überhaupt nicht mit meinen Fähigkeiten. Ich hatte wohl etwas zu ambitionierte Ziele gesetzt, habe gelernt und viel Fehler gemacht. Bevor ich das Projekt nun einstelle wollte ich gerne mal den Status präsentieren. Die Screenshots habe ich leider momentan nicht dabei, dafür einen kleinen Video: Screens:
  2. There should be 'Patria-TerraIncognita_Data' folder next to the executable Da fehlt wohl noch der Folder
  3. Anfängerfragen bzgl eigenem Spiel

    Hi, wenn es um Grundlagen im Bereich C# geht finde ich die "microsoft virtual academy" sehr gelungen: http://www.microsoft...app-development Videos gibt es in DE und EN, hier mal zwei "Lehrgänge" für einen "Einsteiger": http://www.microsoft...beginner-mit-c- http://www.microsoft...r-programmierer Ab und an etwas langgezogen. Edit: In der virtual academy gibt es auch Unity Videos, da würde ich aber die Videos von unity3d.com/learn/ vorziehen.
  4. Da würde ich gerne noch eine Frage nachreichen. Also wäre sowas falsch? Auf dem Mauer GameObject: void OnCollisionEnter (Collision col) { if(col.gameObject.name == "PlayerOderSonstwas") { // call function from parrent } } Auf dem parrent dann eine Funktion welche für alle Mauer Teile verwendet wird. Also sollte die Funktion direkt auf jedem "Mauer" GameObject sein und nicht einmalig auf dem Parrent?
  5. Chrome Addon: Automatischer Ablauf

    Sehr schön, ich habe auch schon MacroX verwendet um excel Listen mit Inhalten aus dem Internet abzufüllen. Kann auch ganz nützlich sein: http://www.macrox.de/
  6. Chrome Addon: Automatischer Ablauf

    iMakro könntest du mal testen: https://chrome.google.com/webstore/detail/imacros-for-chrome/cplklnmnlbnpmjogncfgfijoopmnlemp/reviews
  7. Heroes of the Storm - Beta Keys

    Bin schon bei der Beta dabei und habe 2x4 keys via newsletter bekommen.
  8. Hallo zusammen, habe noch drei Beta keys zu vergeben: 8WKNTG-PYNK-PT4V4H-M2CV-YVH24D CKK2K9-KEKM-7NJV82-C72Z-DNVE6W DMZGTJ-WN9Y-BRMVRP-E7CF-GJGEVM bitte kurze Rückmeldung wenn jemand einen Key verwendet, ich werde ihn dann hier austragen. Grüsse
  9. Platformer Tutorial

    Kein Tutorial - aber um mal reinzuschauen ist das 2D Platformer Projekt von Unity ganz nett: https://www.assetstore.unity3d.com/en/#!/content/11228 Und dann gibt es auch noch das 2D Ressource Pack: https://www.assetstore.unity3d.com/en/#!/content/18684 Falls du die noch nicht kennst. Grusse
  10. also sowas: int score; if (score > 100) { loadLevel("level_1"); } http://docs.unity3d.com/ScriptReference/Application.LoadLevel.html
  11. C# Code Analyse - Anfänger

    Wow, vielen Dank für die Inputs! Das mit den Referenzen (zwischenspeicher) muss ich mir mal im Detail anschauen wie das, wie beschrieben, eleganter gelöst werden kann. Zu beginn habe ich wirklich alles kommentiert. Das hat vor allem mit meinem fehlende Wissen zu tun. Somit werde ich in Zukunft "basics" wie beispielsweise "++" nicht mehr kommentieren: //timer = timer + 1 timer++; Bei meinen ersten Gehversuchen mit C# haben mir die Kommentare sehr weitergeholfen - ich denke sobald man etwas beschreiben kann, hat man es auch verstanden. Okey - sieht doch gleich viel verständlicher aus - Danke! Dann habe ich noch das hier gefunden (DRY): http://www.clean-cod...e/Tugenden.ashx Vielen Dank für eure Antworten - ich hoffe dass ich mit der Zeit auch mal etwas zurückgeben kann!
  12. Hallo zusammen, ich habe vor einiger Zeit ein kleines Unity Projekt gestartet. Mein Ziel ist es mich in C# einzuarbeiten und dabei möglichst viel zu lernen. Ausser PHP und js Basics habe ich keine Programmier-Kenntnisse. Nun wäre ich froh wenn sich jemand meinen Code anschauen könnte und mir sagen kann ob ich auf dem richtigen Weg bin. Für mich ist es extrem schwer abzuschätzen ob ich "gute" Scripts schreibe oder ob ich grobe Schnitzer verbaue. Gerne würde ich euch zwei Files zeigen: Funktion: der Spieler bewegt sich zu einer Ressource (Holz, Gold, ...) und kann diese durch anklicken einer GUI abbauen. Eine Ressource hat mehrere Werte (Name, ID, dropAfter (wie lange dauert das abbauen der Ressource), RessourceObjectItem (der Gegenstand welcher durch das abbauen gewonnen wird), Animation (welche Animation während des abbauen abgespielt werden soll)). Wenn die Ressource aufgebraucht wurde wird das Objekt zerstört. gatherRessource.cs kann auf beliebige Objekte zugewiesen werden. gatherRessourceHandler.cs wird auf ein Objekt zugewiesen, in meinem Fall (GameSettings), und verwaltet das abbauen von Ressourcen sowie die GUI anzeige. gatherRessourceHandler.cs: using UnityEngine; using System.Collections; using UnityEngine.UI; public class gatherRessourceHandler : MonoBehaviour { //define GUI public GameObject GUIGather; public GameObject GUIButtonStart; public GameObject GUIButtonStop; public GameObject GUIGatherTextBox; Text GUIGatherTextBoxText; //define Ressource Object Settings public GameObject RessourceObject; public string ressourceName; public int ressourceId; public float dropAfter; public float range; public int RessourceObjectAmount; public GameObject RessourceObjectItem; public AnimationClip gatherRessourceAnimation; //define Player and animation CharacterController character; public bool doGather; //define Script Settings public float dropTimer; //stop animation once //define Script Settings float timer; //stop animation once bool runonce = false; //define temp distance float distance; // Use this for initialization void Start () { //set status to false doGather = false; //set timer to 0 timer = 0; // get player characterController character = GameObject.FindGameObjectWithTag ("Player").GetComponent<CharacterController> (); // get Textbox from GUI GUIGatherTextBoxText = GUIGatherTextBox.GetComponent<Text>(); } // Update is called once per frame void Update () { // if none Ressource selected if (RessourceObject != null) { // get distance from player to the Ressource object distance = Vector3.Distance (RessourceObject.transform.position, character.transform.position); Debug.Log (distance); // if player is in range if (distance < range) { // activate GUI GUIGather.SetActive (true); GUIButtonStart.SetActive (true); // update text into GUI TextElement updateText(ressourceName); } else { stopGather (); GUIGather.SetActive (false); } if (doGather) { if(RessourceObjectAmount == 0) { ressourceEmpty(); }else{ dropItem (); timer = timer + 1; //timer++ Debug.Log (timer); // play animation character.GetComponent<Animation> ().Play (gatherRessourceAnimation.name); runonce = true; } } if (!doGather && runonce == true) { stopAnimation (); runonce = false; } } } void dropItem() { if (dropAfter == timer) { Instantiate (RessourceObjectItem, new Vector3 (RessourceObject.transform.position.x, RessourceObject.transform.position.y +2, RessourceObject.transform.position.z), Quaternion.identity); // ressourceObject minus drop RessourceObjectAmount --; RessourceObject.GetComponent<gatherRessource>().setRessourceObjectAmount(RessourceObjectAmount); timer = 0; } } public void startGather () { doGather = true; GUIButtonStop.SetActive(true); GUIButtonStart.SetActive(false); } public void stopGather () { doGather = false; GUIButtonStart.SetActive(true); GUIButtonStop.SetActive(false); } // call when ressource is empty public void ressourceEmpty () { RessourceObject.GetComponent<gatherRessource>().destroyRessourceObject(); stopAnimation (); stopGather (); runonce = false; GUIButtonStart.SetActive(true); GUIButtonStop.SetActive(false); GUIGather.SetActive (false); RessourceObject = null; } void stopAnimation() { character.GetComponent<Animation>().Stop (gatherRessourceAnimation.name); Debug.Log (" once"); } public void updateText(string value) { GUIGatherTextBoxText.text="Gather " + value; } } gatherRessource.cs using UnityEngine; using System.Collections; public class gatherRessource : MonoBehaviour { //define Ressource public string ressourceName; public int ressourceId; public float dropAfter; public float range; public int RessourceObjectAmount; public AnimationClip gatherRessourceAnimation; public GameObject RessourceObjectItem; public GameObject RessourceSelection; GameObject gameSettingsObject; // Use this for initialization void Start () { gameSettingsObject = GameObject.FindGameObjectWithTag ("gameSettings"); } // Update is called once per frame void Update () { } void OnMouseOver() { // right mouse button if (Input.GetMouseButtonDown(1)) { Debug.Log ("Mouse is over ressource"); // set gameobject gameSettingsObject.GetComponent<gatherRessourceHandler> ().RessourceObject = gameObject; gameSettingsObject.GetComponent<gatherRessourceHandler> ().ressourceName = ressourceName; gameSettingsObject.GetComponent<gatherRessourceHandler> ().ressourceId = ressourceId; gameSettingsObject.GetComponent<gatherRessourceHandler> ().dropAfter = dropAfter; gameSettingsObject.GetComponent<gatherRessourceHandler> ().range = range; gameSettingsObject.GetComponent<gatherRessourceHandler> ().RessourceObjectAmount = RessourceObjectAmount; gameSettingsObject.GetComponent<gatherRessourceHandler> ().gatherRessourceAnimation = gatherRessourceAnimation; gameSettingsObject.GetComponent<gatherRessourceHandler> ().RessourceObjectItem = RessourceObjectItem; // gameObject for visual selection feedback RessourceSelection.SetActive (true); // show visual Feedback for 0.5s StartCoroutine (ressourceSelectionDeactivate (0.5f)); } } public void setRessourceObjectAmount(int newRessourceObjectAmount ) { RessourceObjectAmount = newRessourceObjectAmount; } public void destroyRessourceObject() { Destroy (gameObject); } IEnumerator ressourceSelectionDeactivate(float waitTime) { yield return new WaitForSeconds(waitTime); RessourceSelection.SetActive(false); } } Ich würde mich über ein Feedback und Inputs sehr freuen. Beste Grüsse
×