Jump to content
Unity Insider Forum

MaZy

Members
  • Content Count

    557
  • Joined

  • Last visited

  • Days Won

    18

MaZy last won the day on September 5

MaZy had the most liked content!

Community Reputation

164 Excellent

About MaZy

  • Rank
    Advanced Member
  • Birthday 02/20/1988

Profile Information

  • Gender
    Male
  • Location
    Hannover

Recent Profile Visitors

10,522 profile views
  1. Nein kein Odin. Also mein Beispiel zeigt auch keine Werte an. War auch für mich nicht wichtig. Könnte es eventuell mit Custom Inspector anzeigen lassen, aber hab sowas für ScriptableObjects nie gemacht.
  2. Glückwunsch für den neuen AssetStore Packet. Ich persönlich bin nicht so der Fan davon (bezogen auf das Video) und ich meine das gab es frei zu downloaden. Aber wenn ich mal sowas brauche mache ich passend zum Objekt. Beispiel passend zu meinem Projekt, Health, Shield.. (siehe unten) alles in einem ScriptableObject und das benutze ich das als Kommunikations (Ja Events gibt es da auch). Ich benutze sehr selten mittlerweile Singletons. Nur bei Komplexen ein System Sachen die einmal da sind (Beispiel mein InputReader Klasse) oder Kleinigkeiten wie (public static) Player.localPlayer. Bei komplizierteren Sachen stell ich mir das aber harter vor. Ich frage mich zum Beispiel, wie man das verwenden könnte, wenn man jetzt kleinere Minibosse hat, die ab und zu da sind dann im HUD einen Healthbar anzeigen möchte. Muss ich für jeden SO Asset erstellen? Gut es könnten ja alle, den einen Asset teilen, aber was wenn mal zwei Minibosse gleichzeitig gibt und ich will beide Healthbars anzeigen lassen.. Dann lässt sich das nicht so leicht teilen. Ein Beispiel wie ich zum Beispiel mein Health und Shield UI update. [CreateAssetMenu] public class DamageEventSO : ScriptableObject { public EventValue<float> Health; public EventValue<float> Shield; } public struct EventValue<T> { public UnityAction<T> OnValueChanged; T value; public T Value { get => value; set { this.value = value; OnValueChanged?.Invoke((T)(object)this.value); } } } So wie man sieht, ist das hier generic und brauche da nicht floats, ints oder sonst ähnliches.
  3. Bewegt er sich auch nicht, wenn du dein Charakter in entgegen gesetzte Richtung bewegst?
  4. Vom was redest nun? Transforms oder Rectransform (also Spielobjekte oder UIobjekte). Je nach dem wird nach Hierarchy, Z-Achse, Render Order, oder Layer sortiert. 1. SpriteRenderer oder Sprites gibt es in UI gar nicht einfach so. Es gibt Image und ImageRaw, wo man Sprites oder Texturen zu weisen kann, denn die SpriteRenderer selbst benutzen Sprites aus dem Assetordner. Du hast vllt SpriteRenderer (das GameObject) da einfach rein geschoben, anders kann ich mir das nicht erklären. Das heißt du kannst dafür Images benutzen. Deswegen gibt es da keine Orders in den Components. Man benutzt dafür die Hierarchy wie Malzbie schon geschrieben hat. 2. Du muss deutlicher werden. Man kann nicht nachvollziehen, weil du davon ausgehst, dass wir es schon verstehen. Deswegen hat schon Malzbie auch nicht verstanden und mir geht es gerade genauso. Du scheinst, aber etwas zu verwechseln und gehst halt mit den Gedanken weiter. Ist jetzt nur meine Vermutung.
  5. MaZy

    Instantiate

    Also ich kann mal zu meinem jüngsten Erfahrung sagen, dass ich Pooling verwendete habe für Particle Systeme. Ohne das Pooling hatte ich um die 30 Fps, danach ging es auf 60 hoch (ohne FPS Limit um die 200+ FPS).
  6. 100 Schiffe kämpfen ohne Network Culling. Das bedeutet alle bekommen Daten unabhängig davon wie weit sie weg von einander sind. Lasst euch nicht von dem Arrow gewackel nicht irritieren. Es laggt nicht sondern, es sucht den Mittelpunkt und durch den Particles versetzt sich das jedes mal (hab vergessen den Mode zu ändern). https://i.imgur.com/aEuVL7w.gifv
  7. Ich hab bei beiden versucht. Ging nicht. Fokus war da, weil alle movement also auch AddForce wird ausgeführt, sonst sollte es nicht tun. Generell tue ich meine Inputs nicht in den FixedUpdate rein.
  8. Das dürfte nicht gehen, da ja ein Handshake oder so aufgebaut wird und die sind höchstwahrscheinlich unterschiedlich, aber man kann den node.js client in Unity benutzen und damit verbinden.
  9. Du muss mal gucken, ob halt an den gelben Rectangle liegt oder an den Unity Recttansform. Musst mal halt da rumspielen denke ich mal.
  10. Man sieht beim zweiten Bild schlecht, aber da ist ein gelber Rechteck, wo man bestimmt, wie weit der Text gehen darf. Den hab ich bei mir angepasst. Der gelbe Rechteck gibt es standardmäßig bei TM
  11. Ich kenne mich mit der TextMesh version nicht aus (und da es TM ist liegt der Fehler wahrscheinlich nicht an Unity), aber der normale Dropdown Element hat ein GameObject drinne welches sich Template nennt. Den kann man es bearbeiten. Zu den Abständen zwischen den Items gibt es keine Layouteinstellungen. Irgendwie wird das von selbst berechnet. Wenn ich also dein Bild anschaue liegt es wahrscheinlich an den Items. Deren Recttramsform größe ist irgendwie falsch. Denke mal bei TM ist das so ähnlich. Edıt hab mır mal TM Dropdown angeschaut. Tatsächlich ist das bei mir auch verbuggt. Der Text war bei mir übelst groß und daher nicht richtig lesbar. Wenn man das per Hand korrigiert, wird es normal.
  12. Ok hat lange gedauert, aber man muss mit serializeObject arbeiten. Man muss also in meinem fall das hier machen SerializedObject scenenObjectSO = new SerializedObject(scenenObjects); var scenenNetId = scenenObjectSO.FindProperty("scenenNetId"); scenenNetId.intValue = i; scenenObjectSO.ApplyModifiedProperties(); SerializedObject netObjectSO = new SerializedObject(netObject); var netIdProp = netObjectSO.FindProperty("netId"); netIdProp.intValue = i; netObjectSO.ApplyModifiedProperties();
  13. Hallo, ich habe einen Script welches im Editor automatisch läuft. Der überwacht, ob sich in der Hierarchy was geändert hat. Wenn ja sucht es nach bestimmten Components und setzt dann die Werte (einfach jeden eine bestimmte Zahl zuweisen). Doch sobald man von ein anderen Scenen in die Scene in Playmode wechselst sind die Werte plötzlich wieder zurück gesetzt zu den Wert, den ich per Hand eingegeben habe ODER es nimmt den Standardwert von Prefab oder so. Ich vermute mal, dass mir irgendwas wie speichern fehl, aber finde dazu kaum was. Es hat was zwar mit Editor zu tun, aber erbt den Editor Script nicht. Auch was mir eingefallen ist, dass normaleweise ja wenn man in der Scene im Inspector vom Prefab Werte ändert, dass es in Fettschrift angezeigt wird. Das passiert beim Script auch nicht. using Maz.Network.UnityEngine; using System.Linq; using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine; [InitializeOnLoad] public static class NetworkSceneObjectEditor { static NetworkSceneObjectEditor() { if(!EditorApplication.isPlaying) EditorApplication.hierarchyChanged += OnHierarchyChanged; } static void OnHierarchyChanged() { if (EditorApplication.isPlaying) return; var all = Resources.FindObjectsOfTypeAll<NetworkSceneObject>(); var networkSceneObjects = all.Where(obj => (obj.hideFlags & HideFlags.HideInHierarchy) != HideFlags.HideInHierarchy); //Debug.LogFormat("There are currently {0} GameObjects visible in the hierarchy.", networkSceneObjects.Count()); int i = 0; foreach (var o in networkSceneObjects) { var netObject = o.GetComponent<NetworkObject>(); if (netObject == null) { Debug.Log("NetworkObject is missing! NetworkSceneObject will not work"); continue; } o.scenenNetId = i; netObject.NetId = i; //EditorUtility.SetDirty(o); //EditorUtility.SetDirty(netObject); //EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); i++; } Debug.Log($"Hiearchy changed"); } } Hab paar Dinge versucht mit speichern der Scene oder SetDirty, aber da merke ich, dass dann dieser Event gespamt wird. Hab keine weiteren Ideen mehr.
  14. Komischerweise nach dem ich Einkaufen war (gestern) und wieder zurück kam funktionierte es wieder normal. Also alles normal wie im Editor sowohl auch im Build. Ich verstehe echt nicht, was das Problem war. Ich frage das in Update ab. War auch mal in FixedUpdate drinne. Eine zweite Maus oder ähnliches hab ich nicht. Also mit mouseScrollDelta hab ich auch versucht. Da passierte das gleiche. Ja ich habe schon daran gedacht und auch mal die variable addiert. Also hatte ich mwheel += usw. benutzt. Das Ergebnis war gleich. Ja hab ein paar ältere hab aber noch nicht getestet. Aber jetzt gehts ja komischerweise.
×
×
  • Create New...