Jump to content
Unity Insider Forum

q3max

Members
  • Content count

    3
  • Joined

  • Last visited

Community Reputation

0 Neutral

About q3max

  • Rank
    Newbie

Recent Profile Visitors

306 profile views
  1. Hallo, ich habe in meine TBS den Dijkstra Alogrithmus für die Wegfindung und das finden aller erreichbaren Felder für eine Einheit erfolgreich implementiert. Nun wollte ich diese Zone of Control einbauen, also die Felder um Gegnerische Einheiten die man nicht mehr einfach durchschreiten kann. Der Dijkstra Alog ist 1:1 nach dem Pseudocode von der Wikipedia Seite geschrieben. Meine Idee war das beim durchlaufen der Nachbarn, 6 für jeden Nachbarn v von u: 7 falls v in Q: // falls noch nicht berechnet 8 distanz_update(u,v,abstand[],vorgänger[]) // prüfe Abstand vom Startknoten zu v ich in der distanz_update Funktion nochmals für jeden Nachbarn prüfe ob der seinerseits eine Feindeinheit als Nachbar besitzt und dann dort den alternativ wert anders berechnen muss. Ich komme hier aber auf keine grünen Zweig. 1 Methode distanz_update(u,v,abstand[],vorgänger[]): 2 alternativ:= abstand[u] + abstand_zwischen(u, v) // Weglänge vom Startknoten nach v über u 3 falls alternativ < abstand[v]: 4 abstand[v]:= alternativ 5 vorgänger[v]:= u über Tips, Vorschläge würde ich mich freuen.
  2. Hi, Eventsystem vergessen?
  3. q3max

    Spielergesteuerte rotierende Tür

    using UnityEngine; using System.Collections; public class theDoor : MonoBehaviour { public Transform door; public Vector3 doorAngle; public Transform player; bool toPlayer; void Start () { } bool open = false; void Update () { if(Input.GetKeyDown(KeyCode.Space)) { CheckPlayer (); OpenClose(); open = !open; } } void CheckPlayer() { if (Vector3.Dot (door.forward, player.forward) < -0.5f) toPlayer = true; else if (Vector3.Dot (door.forward, player.forward) > 0.5f) { toPlayer = false; } } void OpenClose() { if(open) { if(toPlayer) { door.rotation *= Quaternion.Euler(-doorAngle); } else{ door.rotation *= Quaternion.Euler(doorAngle); } } else { if(toPlayer) { door.rotation *=Quaternion.Euler(doorAngle); } else { door.rotation *= Quaternion.Euler(-doorAngle); } } } } vlt als Anregung
×