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

Hermetes

Members
  • Content count

    131
  • Joined

  • Last visited

  • Days Won

    1

Hermetes last won the day on May 5 2016

Hermetes had the most liked content!

Community Reputation

4 Neutral

About Hermetes

  • Rank
    Advanced Member
  1. Hi! Wenn ich ein Prefab in der Szene (Runtime aus) anklicke, dann bekomme ich einen orangen farbigen Rand um das Prefab angezeigt. Wie bekomme ich das mit einem Script im Runtime hin? Viele Grüße
  2. Scripting einfacher - Schleife?

    Hi und Danke für eure Antworten! Ist auf public da dieses Script die Architektur der GUI ist. Aber da ich nur die Syntax eines Tutorials abschreibe, weiss ich nicht wie es auch anders möglich ist. Außerdem lasse ich alles zunächst mal auf public. In meinen Anfängen hatte ich mal eine ganze Woche damit verbracht einem anderen Skript ein private bool zu setzen ^^. Daher würde mir auch kein [System.Serializeable] weiter helfen (oder?). Oder hätte es auch einen Nutzen wenn ich meine Variablen auf public hätte + [System.Seri....] Weiss nicht ob es nur dafür da eine private Variable im Inspector sichtbar zu machen. Jetzt stehe ich da, und bin ratlos was ich denn jetzt als Parameter angeben muss. Muss ich trotz Schleife und Liste alle Variablen ansprechen? @Mazy Ich werds irgendwann mal bereuen es nicht so strukturiert gemacht zu haben! Wie geht man so eine Struktur an? Mit oder ohne abstrakte Klassen? public List<Image> profilImages = new List<Image>(); public void SetProfilPics() { foreach (var picture in profilImages) { picture.color = Color.white; } } public void ClearProfilImages() { foreach (Image picture in profilImages) { picture.color = Color.clear; } } void Start() { ClearLines(); ClearPic(); //ClearGameObjects(); ClearSiegeImages(); ClearPlayerPropertiesImages(); ClearJobs(); ClearIntJobs(); ClearButton(); ClearProfilImages(); }
  3. Scripting einfacher - Schleife?

    Mein Script wird immer länger und ich frage mich ob sich das nicht einfacher und übersichtlicher mit einer Schleife gestalten lässt. public Image ProfilePic; public Image Background; public Image LivebarPic; public Image HealthbarPic; public Image StaminabgPic; public Image StaminabarPic; public Image wishtable; public Image HintergrundImage; public void SetPic(Sprite pic1,Sprite pic2,Sprite pic3,Sprite pic4, Sprite pic5,Sprite pic6,Sprite pic7,Sprite pic11) { ProfilePic.sprite = pic1; ProfilePic.color = Color.white; Background.sprite = pic2; Background.color = Color.white; LivebarPic.sprite = pic3; LivebarPic.color = Color.white; HealthbarPic.sprite = pic4; HealthbarPic.color = Color.white; StaminabgPic.sprite = pic5; StaminabgPic.color = Color.white; StaminabarPic.sprite = pic6; StaminabarPic.color = Color.white; wishtable.sprite = pic7; wishtable.color = Color.white; HintergrundImage.sprite = pic11; HintergrundImage.color = Color.white; } public void ClearPic() { ProfilePic.color = Color.clear; Background.color = Color.clear; LivebarPic.color = Color.clear; HealthbarPic.color = Color.clear; StaminabgPic.color = Color.clear; StaminabarPic.color = Color.clear; wishtable.color = Color.clear; HintergrundImage.color = Color.clear; }
  4. shortcut ? hotkey ? Wie nennt man das.....

    Endlich mal wieder Zeit gefunden, doch was mache ich nur falsch??? Ich konnte die angeklickten Figuren in eine Liste setzten. Doch leider kann ich die Figuren Gruppierung nicht wieder aufrufen. using System.Collections; using System.Collections.Generic; using UnityEngine; public class ShortcutUnits : Interaction { public bool selected = false; public override void Select () { selected = true; } public override void Deselect() { selected = false; } public List<GameObject> SwapList1; GameObject[] selectedgameobjects; // Use this for initialization void Start () { selectedgameobjects = GameObject.FindGameObjectsWithTag("Player"); } void Update () { if (selected && Input.GetKeyDown(KeyCode.LeftControl)) { Debug.Log("Strg is pressed"); if (Input.GetKeyDown(KeyCode.I)) { if (SwapList1.Count != 0) { SwapList1.Clear(); } else{ if(SwapList1.Count == 0) { foreach (GameObject obj in selectedgameobjects) { SwapList1.Add(obj); } } } } } if (Input.GetKey(KeyCode.I)) { foreach(GameObject obj in SwapList1) { selected = true; } } }
  5. shortcut ? hotkey ? Wie nennt man das.....

    Vielen Dank euch beiden für eure Hilfe! Wollte nur kurz Bescheid geben das ich da gerade dran bin. Und weil ich unbedingt das Thema Listen und Schleifen vertiefen möchte, gehe ich nach dem ersten Konzept. Auf dem Weg im Auto, ist mir auch eingefallen das ich für alle Tasten eine Liste brauche. Bin schon gut voran gekommen, allerdings auch auf ein paar Probleme. Ich versuchs die erstmal eigenständig zu lösen und lass es euch dann wissen ob es geklappt hat!
  6. ....und vor allem wie kann man ein Gameobjekt im Runtime einer Taste zuweisen, wie z.B. indem man STrg + 1 drückt ? Um dieses Objekt, oder auch mehrere Objekte, dann mit der Taste 1 abrufen kann. Grüße
  7. NavMeshAgent List Waypoints ablaufen

    Achja natürlich! Da hatte ich den ganzen Tag lang noch nichts gegessen. Also läuft jetzt! Man kann das noch richtig gut ausbauen. Den Pfad auch anzeigen lassen mit dem line.renderer z.B.,von deinem letztem Beitrag. Auch wird es später in einer anderen Varianten in meinem Spiel eine große Bedeutung bekommen. So, wieder einiges gelernt, und gefühlt um einen Level gestiegen! Danke Zer0
  8. NavMeshAgent List Waypoints ablaufen

    Danke für deine Unterstützung ZerO Ich habe es weitesgehends geschafft! Es sieht jetzt so aus: Markiere Pos1 - Figur bleibt stehen. Markiere Pos2 - Figur bewegt sich auf Pos 1 Markiere Pos3 - Figur bewegt sich auf Pos 2 usw. Wieso ignoriert es die letzte Position? Und wie bekomme ich ein Loop hin? using System.Collections; using System.Collections.Generic; using UnityEngine; public class RightClickNavigation : Interaction { public float RelaxDistance = 0.05f; private UnityEngine.AI.NavMeshAgent nav; public Vector3 target = Vector3.zero; public bool selected = false; public bool isActive = false; private Animator anim; //-------------Start AttackMove------------------------- public bool isAttack; public float shotRange; public Vector3 enemy = Vector3.zero; //--------------Start Waypoints------------------------- public List<Vector3>points ; int destPoint = 0; //public Transform[] points; //private List<Vector3>points; public override void Select () { selected = true; } public override void Deselect() { selected = false; } public void SendToTarget() { nav.SetDestination (target); nav.Resume(); isActive = true; } void Start () { nav = GetComponent<UnityEngine.AI.NavMeshAgent>(); anim = GetComponent<Animator>(); } // Update is called once per frame void Update () { if (selected && Input.GetMouseButtonDown (1)){ var tempTarget = RtsManager.Current.ScreeenPointToMapPosition(Input.mousePosition); if (tempTarget.HasValue){ target = tempTarget.Value; SendToTarget(); anim.SetBool("Move",true); } } if (isActive && Vector3.Distance (target, transform.position) < RelaxDistance){ nav.Stop(); isActive = false; anim.SetBool("Move",false); } //-------------------Waypoints-------------------------------------------------------- if (selected && Input.GetKey(KeyCode.LeftShift) && Input.GetMouseButton(0)) { var temp = RtsManager.Current.ScreeenPointToMapPosition(Input.mousePosition); //points.Add(temppoints); // error CS0266: Cannot implicitly convert type `UnityEngine.Vector3?' // to `UnityEngine.Vector3'. An explicit conversion exists (are you missing a cast?) if (temp.HasValue) { points.Add(temp.Value); //points.Add(temp.......geht nicht.error CS1502: The best overloaded method match for //`System.Collections.Generic.List<UnityEngine.Vector3>.Add(UnityEngine.Vector3)' has some invalid arguments ); //points = temp.Value; GoNextWaypoint(); } } } public void GoNextWaypoint() { //if (points.Count == 0) // erstmal deaktiviert // return; // deaktiviert nav.destination = points[destPoint]; destPoint = (destPoint + 1) % points.Count; isActive = true; } }
  9. NavMeshAgent List Waypoints ablaufen

    Tschuldigung hatte waypoint antatt points drinne. Dann ist es kein float sondern ein Transform, das den Fehler cannot convert..... , auslöst. nav.destination = points[destPoint];
  10. NavMeshAgent List Waypoints ablaufen

    Hmmm...ich kann keine Transform mit der ScreenToWorld ermitteln , die ich benötige für agent.destination = points[destPoint].position; Das heisst einmal can not convert type Vector 3 to Transform. Dann: can not convert type float to Vector3 if (selected && Input.GetKey(KeyCode.LeftShift) && Input.GetMouseButton(0)) { // Vector3 waypoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); Transform point = Camera.main.ScreenToWorldPoint(Input.mousePosition); //error CS0029: Cannot implicitly convert type `UnityEngine.Vector3' to `UnityEngine.Transform' mywaypoints.Add(waypoint); //Bis hier (hatte) funktioniert es. GoNextWaypoint(); Debug.Log("Waypoint ist:" + waypoint); } } public void GoNextWaypoint() { if (mywaypoints.Count == null){ return;} nav.destination = waypoint[destPoint]; //error CS0029: Cannot implicitly convert type `float' to `UnityEngine.Vector3' destPoint = (destPoint + 1) % mywaypoints.Count;
  11. NavMeshAgent List Waypoints ablaufen

    Hallo und Danke für deine Antwort! Die Waypoints müssen im Runtime übergeben werden. Bei Transfom weiss ich nicht wie anstellen. Stellte fest das ScreenPoint to Ray falsch ist. Weil es da die Z Position ignoriert. Ok, ich versuche in nächster Zeit dein Unity Dokument auf Vector3 und auf meine List anzupassen. Erstmal aktualisieren: if (selected && Input.GetKey(KeyCode.LeftShift) && Input.GetMouseButton(0)) { Vector3 waypoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); mywaypoints.Add(waypoint); //Bis hier funktioniert es. nav.SetDestination(waypoint); Debug.Log("Waypoint ist:" + waypoint); }
  12. Hallooooo an die moderenen Zauberer! Wie bringe ich denn einen NavMeshAgent dazu ein Liste von Waypoints abzulaufen , die er patrollieren soll. !=? //-------------------Waypoints-------------------------------------------------------- if (selected && Input.GetKey(KeyCode.LeftShift) && Input.GetMouseButton(0)) { Debug.Log("Shift pressed"); Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray)) { Vector3 waypoint = Input.mousePosition; mywaypoints.Add(waypoint); nav.SetDestination(waypoint); Debug.Log("Waypoint ist:" + waypoint); } }
  13. Terratorium & Grenzlinien auf Terrain

    Dankeschön! Da arbeite ich mich mal ein.
  14. Hallo miteinander! Wie müsste ich denn anfangen um Terratorien und Grenzlinien auf ein Terrain zu visualisieren? Wie definiert man zunächst ein Terratorium? Das nicht unbedingt wie ein Quadrat aussieht sondern auch noch schön geschwungen sein soll. Wie bekommt man dann diese Grenzlinien angezeigt? Beispiel ist aus dem Spiel Northgard.
  15. Terrain Image

    Ahja diese Methode erzeugt also ein Screenshot! Da bin ich mal gespannt. Vielen Dank! Ich mache gerade ein YouTube Tutorial durch und der benutzt eine Image für die Map. Benutze aber mein eigenes Terrain. Er hat es ganz interessant gemacht in dem er die Terraingröße mit zwei Eckpunkten bestimmt. Wahrscheinlich werde ich aber später wieder meine Camera einsetzen
×