Jump to content
Unity Insider Forum

MaZy

Members
  • Content Count

    654
  • Joined

  • Last visited

  • Days Won

    27

MaZy last won the day on April 16

MaZy had the most liked content!

Community Reputation

182 Excellent

About MaZy

  • Rank
    Advanced Member
  • Birthday 02/20/1988

Profile Information

  • Gender
    Male
  • Location
    Hannover

Recent Profile Visitors

19,663 profile views
  1. Wenn irgendwo "Draw" steht, geht es meistens um eine Zeichnung in einem Frame. Leider kenn ich mich da nicht aus, aber bei 100.000 Meshs kann ich auch verstehen, dass man da hohe GPU Auslastung hat. Sieht man die 100.000 wirklich gleichzeitig. Du kannst nämmlich vllt sowas wie Culling machen und nicht zeichnen, wenn man sie nicht sieht. Ansonsten nimm doch einfach gameObjects mit Meshs. Da macht das Unity bissel automatisch.
  2. Benutze einfach dafür DateTime. Das tut schon alles was du brauchst.
  3. Also so solltest du das nicht machen, denn das ist der falsche Weg. Die GameObject.Find ist nicht für solche Sachen gedacht. So wäre es richtiger public class BauController : MonoBehaviour { [SerializeField] Image icon; private GameObject goBildHolen; public void bildHolen() { goBildHolen = icon.gameObject; } } Jetzt kannst du den ImageComponent in das Feld Icon ziehen und damit arbeiten. Man braucht hier nicht mal goBildHolen. Man kann allein mit icon.gameObject arbeiten. Möchte man nicht selber reinziehen und es soll beim Start selbst finden la
  4. Wieso willst du eigentlich Panels per PhotonNetwork.Instantiate spawnen? Es hört sich nach UI Sachen an und finde komisch, dass man UI-Prefabs über das Netzwerk erstellen will und nicht beim Client selber.
  5. Mein Fehler, hab an Spielerspawns wie beim Multiplayer gedacht
  6. Also wie @Sascha das schon ungefähr erwähnt hat, wenn du "perfektes" Spawnsystem benutzen willst, wo man nicht auf der selben stelle spawnst kannst du folgendes tun: Eine Liste mit Spawnpunkte, Eine Liste, wo du die Liste reinkopierst z.b. AvailableSpawns. Sagen wir mal es gibt A, B, C, D Spawnpunkte. Jetzt kannst du random aus AvailableSpawns ausziehen und wenn es bei 0 ankommt (also keine Spawns mehr) füllst du die liste wieder mit den Spawnpunkten. Somit kann es NIEMALS zu Fehlern kommen. Manche machen das ja gerne mit while Schleifen, was ich nicht empfehle, weil da das Programm b
  7. EDIT: Ich editiere diesen Post bald, damit keine Verwirrung entsteht, da ich nochmal gelesen habe. Also ich muss sagen, was @Sascha gesagt hat ist schon richtig. Ich wollte früher sogar zu so einem Thema ein Video machen, aber kam nicht dazu, weil beim Erklären es sich etwas kompliziert anhört (da ich das per C# Console mache + Interface dazu zeige). Ein Beispiel aus dem eigentlichen Tutorial Code-Bespiel. Ich habe List<Item> inventory. Dort werden Sachen wie Weapon bzw. Sword, Bow und andere Dinge gepackt. Manche davon sind mit IRepairable, IDurability bestückt. Das heißt manche It
  8. Wenn du mit NetworkBehaviour arbeitest, dann kannst du [Command] und [ClientRpc] benutzen. Allerdings sind die eigentlich nur für die Playerobjekte gedacht. Das heißt, wenn man z.B. [ClientRpc] void RpcHealEffect() { HealEffect(); } Wenn der Server RpcKill ausführt, wird die Funktion bei jedem Spieler ausgeführt. [Command] void CmdHealAll() { // server checkt, ob er überhaupt lebt und mana dafür hat if( IsAlive && IsMana ) { // loop und heile alle Spieler ... // Macht, dass alle Spieler diesen HealEffekt sehen RpcHealEffect(); } } Der Client wiederum se
  9. Das ist auch etwas, was mich bis heute stört. Leider ist Unity Editor nicht so aufgebaut, dass man mehrere Sceneviews in verschiedenen Fenstern sehen kann (hatte ich mal in einem Thread gelesen). Beispiel Godot oder Unreal Engine können das. Man kann dort parallel damit arbeiten. Theoretisch hätte ich dann so gemacht. Sceneview Fenster 1 nur UI anzeigen. Sceneview Fenster 2, UI ausblenden und sonst alles anzeigen. In anderen Worten Layer Button oben rechts müsste pro Sceneview Fenster sein. Ich hab sogar ein Script geschrieben um die Layers zu togglen, wenn ich z.B. zwischen den Fenstern
  10. @gomboloDas ist zum Teil richtig. Man möchte ja zu einem Punkt fliegen lassen und nicht verfolgen. Und ja irgendwann zerstören. Timer braucht man nicht. Es gibt ja Invoke und wenn man gar keine Effekte haben will Destroy Naja ich hab dir auch nur eine Richtung gegeben und nicht die Komplettlösung. Ich mag es tatsächlich nicht komplette Lösung vorgeben, weil man dadurch nicht lernt. Das ist so wie als würde dir ein Lehrer Rechenweg zeigen, obwohl man das selber lösen soll. Du brauchst paar Dinge um das zu Lösen. private Vector3 moveDirection; wohin es fliegen soll private float kil
  11. Verstehst du überhaupt dein Code? Wenn nicht lieber noch etwas mehr lernen, weil es einfach zu den simpelsten Sachen gehört. Wenn man auf https://docs.unity3d.com/ScriptReference/Vector3.MoveTowards.html geht sieht man in der Beschreibung, dass es eine Akuelle- und Zielposition haben möchte. Ja das heißt, dass es in die Richtung zum Ziel bewegt. Hmm? Wie kann man das ändern? Genau die Zeile weg nehmen :D. Aber was würde dann passieren? Es würde nicht mehr weiter fliegen. Mal als Hilfestellung, hier würde https://docs.unity3d.com/ScriptReference/Transform.Translate.html gut passe
  12. funktioniert leider nicht War Kurzform: Also genauer gesagt ist es: pos + direction * length. Also: currPosition + dir.normalized * 60. dir.normalized * 60 ist natürlich von 0 Punkt aus. Gibst du die Position dazu hast du relativ zu deinem Punkt die Verschiebung. Wenn die 60 aber keine Konstante ist sondern, du willst immer zu jeder Distanz -20. Dann statt 60 dir.magnitude - 20 oder Vector3.Distance(currPosition, goalPosition) - 20 rechnen. Also: var realPosition = currPosition + dir.normalized * (dir.magnitude - 20) // oder var realPosition = currPosition + dir.no
  13. Ich würde es nicht so kompliziert machen und EdgeCollider benutzen. Danach hat man ja pro Seite ein Collider. Geht natürlich auch mit BoxCollider pro Seite. EDIT: Huch hab gesehen hab schon mal hier geantwortet und nicht bemerkt, dass es ein alter Post ist . Dieser Post kann gelöscht werden. Kann leider nicht selbst tun.
  14. DOTween hab ich auch öfters benutzt. Finde ich auf jeden Fall gut. Ja wie auch Sascha hab ich auch eigenen Lightweight Version und kann nur empfehlen sowas zu machen. Ist auch wirklich easy. Bei komplexeren Versionen nehme ich DOTween.
×
×
  • Create New...