Jump to content
Unity Insider Forum

Cxyda

Members
  • Content count

    134
  • Joined

  • Last visited

  • Days Won

    5

Cxyda last won the day on January 17 2016

Cxyda had the most liked content!

Community Reputation

38 Excellent

1 Follower

About Cxyda

  • Rank
    Advanced Member
  • Birthday 09/24/1983

Contact Methods

  • Skype
    yep

Profile Information

  • Gender
    Male
  • Location
    Hamburg
  • Interests
    Game Art, Game Programming, Zocken, Lesen, Sport

Recent Profile Visitors

1,479 profile views
  1. Hey wie gehts?

  2. http://80.lv/articles/overwatch-technical-overview/ <<< Technische und Visuelle beobachtungen zu Overwatch
    1. Show previous comments  1 more
    2. Cxyda

      Cxyda

      bei durchschnittlich 40k ++ triangles kann man das auch erwarten ;)

    3. overdev

      overdev

      Naja sagen wir mal so die von The Last of Us haben 90k xD

    4. Cxyda

      Cxyda

      auch nicht alle ;)

  3. Cxyda

    unregister von Action<> geht nicht? o.0

    AH okay THX Sascha das werd ich wohl nie blicken oder auf anhieb richtig hinbekommen ! Aber die Hoffnung stirbt zuletzt -.- und natürlich auch THX an Hrungdak für die mühe !!!
  4. Cxyda

    unregister von Action<> geht nicht? o.0

    nein, ich bekomme nur 1 mal "Action Registered" und 1 mal "Action Unregistered" in der console ausgegeben das macht mich ja so fertig. Es scheint alles wunderbar zu laufen (wie es soll) aber ich bekomm halt beim nächsten OnMoneyChanged event Null reference exceptions weil ich das UI Panel zerstöre wenns ausgeblendet ist und das dann versucht sich upzudaten ... klar könnte ich nen null check davor schreiben aber sauber ist was anderes -.- EDIT*** hmm interessant : hier mal wenn ich mir die Anzahl der listener mit ausgeben lasse (siehe anhang)... also scheinbar wir trotz -= die funktion nicht ordentlich entfernt .... ich muss das mal mit dem handler versuchen. EDIT 2 *** Okay spitze ... hier ist die antwort : http://stackoverflow...a-event-handler liegt also doch an der anonymen methode >.< so ne scheiße -.-
  5. Cxyda

    unregister von Action<> geht nicht? o.0

    hey, ne direkt geht leider nicht da die OnMoneyChanged ja einen long wert mitschickt den die UpdateComponent() garnicht brauucht / will. das mit dem handler werd ich mal testen aber ich habe wenig hoffnung. Habe nämlich grade ein bisschen rumprobiert und die action umgebaut bzw die art wie man sich registriert / abmeldet: // Nun private ! List<AccountingAsset> m_AccountingList = new List<AccountingAsset>(); // ... public void RegisterToMoneyChange(Action<long> action) { Debug.Log("Action Registered."); OnMoneyChanged += action; } public void UnregisterToMoneyChange(Action<long> action) { Debug.Log("Action Unregistered."); OnMoneyChanged -= action; } Mein Debug zeigt mir ganz klar an das ich mich "korrekt" abmelde von der action sie aber DENNOCH die UpdateComponent() aufrut -.-' EDIT **** bei dem hier : EventHandler handler = x => UpdateComponents(); bekomme ich nen fehler : Delegate EventHandle does not take 1 Arguments
  6. hey zusammen. Ich such nun schon ne geschlagene stunde nach meinem fehler, kann aber keinen entdecken. Und zwar habe ich ein UI Panel das sich, sobald es sichtbar wird bei der Action OnMoneyChanged registriert und sich dann updated wenn die Action aufgerufen wird, das geht auch wunderbar und sobald dann das Panel ausgeblendet wird soll es sich wieder bei der Action abmelden ... DAS geht jedoch nicht, die UpdateComponent funktion wird fröhlich immer weiter aufgerufen. Die Funktion (CloseWindow()) zum abmelden WIRD ausgeführt das habe ich überprüft aber leider kann ich ja nicht ind die Action rein schauen welche funktionen tatsächlich da noch registriert sind. Sehe ich mal wieder den Wald vor lauter bäumen nicht, ist das ein bug? Oder mache ich nen anderen dummen fehler. über hilfe wäre ich SEHR dankbar, bin mit meinem c# am ende :-P public class BuyVehiclePanel : BaseWindowClass { #region WindowEvents public event Action<VehicleData> OnOptionSelected = delegate { }; #endregion WindowEvents [serializeField] Text m_WindowTile; [serializeField] string m_TitleKey; [serializeField] protected RectTransform m_ContentPanel; List<BuyVehicleComponent> m_Components = new List<BuyVehicleComponent>(); public void InitComponent(VehicleData[] buyableVehicles) { ClearContentPanel(); m_WindowTile.text = LanguageManager.Instance.GetTextValue(m_TitleKey); foreach (VehicleData v in buyableVehicles) { GameObject go = Instantiate(Resources.Load("UiElements/Components/Vehicle/BuyVehicleComponent")) as GameObject; BuyVehicleComponent c = go.GetComponent<BuyVehicleComponent>(); m_Components.Add(c); go.transform.SetParent(m_ContentPanel); /* Setting up the BuyVehicleComponent */ c.InitComponent(this, v); } ShowWindow(); } private void ClearContentPanel() { //.. stuff here } // Gets called when the user selects a vehicleUIComponent public void BuyVehicle(VehicleData v) { if (OnOptionSelected != null) { OnOptionSelected(v); } CloseWindow(); } public override void ShowWindow() { base.ShowWindow(); Debug.Log(" BuyVehiclePanel :: -- ShowWindow called. "); PlayerManager.Instance().LocalPlayerData.OnMoneyChanged += x => UpdateComponents(); } public override void CloseWindow() { PlayerManager.Instance().LocalPlayerData.OnMoneyChanged -= x => UpdateComponents(); base.CloseWindow(); } // updates the vehicles within the panel and deactivates them when the user has not enough money void UpdateComponents() { Debug.Log(" BuyVehiclePanel :: -- UpdateComponent called. Updating " + m_Components.Count + " components."); foreach (BuyVehicleComponent comps in m_Components) { comps.UpdateComponent(); } } } und hier eins auszug aus der CData klasse mit der action... public partial class CData { #region ++++ Events public event Action<long> OnMoneyChanged = delegate { }; public delegate void CharacterEvent(); public event CharacterEvent OnDataUpdate; #endregion Events //... more stuff here }
  7. Cxyda

    ScriptableObject frage !?

    ^^ Ja ne zur Laufzeit wollte ich eigentlich nichts speichern und ja .. NUR SOs ist auch nicht das ware, die statischen konstruktoren entdecke ich auch grade für mich^^ zumindest wo sie sinn machen Nervt irgendwann bei ner neuen map an die 1 millionen manager scripte zu denken obwohl die igentlich nicht von Monobehavior erben müssten xD
  8. Cxyda

    ScriptableObject frage !?

    xD grade wollt ich schreiben das es leider NICHT klappt ... aber dann hatte ich doch noch den geistesblitz xD In meiner Init() funkion habe ich den Laderaum = dem laderaum aus dem prototypen gesetzt und nicht mit new nen neuen erzeugt -.-' naja zum glück hab ich meine fehler noch bemerkt bevor es hier peinlich geworden wäre :-P Wie immer vielen dank für die qualitativ hochwertige hilfe ! :-)
  9. Cxyda

    ScriptableObject frage !?

    Nice ! Besten dank werde ich gleich mal in der Mittagspause ausprobieren ;-) *... und wieder ein bisschen schlauer *
  10. Cxyda

    ScriptableObject frage !?

    moin, ja aber so wie mir das aussieht erzeugt mir das eine LEERE instanz des scriptable object mit den basiswerten und KEINE kopie meines ursprünglichen objektes ... zumindest nicht wenn ich das SO machen : ich kann ja auch nirgends das zu kopierende Objekt angeben ... oder ? VehicleData vData = ScriptableObject.CreateInstance<VehicleData>();
  11. Cxyda

    ScriptableObject frage !?

    Moin ! Nach monaten auch mal wieder was von mir und (mal wieder) zu scriptable objects. Ich muss sagen ich hab mich ziemlich in die dinger verguggt und quais meine komplette datenstruktur darauf ausgelegt. Hat alles super funktioniert aber nun sind erstmals probleme aufgetreten. Und zwar habe ich VehicleData die von Scriptable objects erben sollen. ist alles auch kein problem .. ABER die Fahrzeuge können Waren transportieren, haben also einen Laderaum. Wenn ich nun in meinem spiel ein neues fahrzeug kaufe (im moment gibts nur ne handvoll verschiedene) Instanziere ich ein Prefab von dem GameObject und eine der GameObject componenten bekommt dann das ScriptAbleObject angehängt damit ich die ganzen Daten habe. Wenn nun aber eines der Fahrzeuge was in den Laderaum bekommt haben plötzlich alle anderen Fahrzeuge des selben typs die gleiche Ladung geladen, klar ist ja auch nur ne referenz auf das DatenObjekt ABER wie kann ich das ändern? Entweder stehe ich auf dem schlauch oder ich bin einfach doof Für tipps und Anregungen wäre ich dankbar! Beste grüße, Cxyda
  12. Cxyda

    Components kopieren / erzeugen?!

    naja mein ganzer code ist es ja bei weitem nicht ... aber das mit dem verrückt werden trifft es ganz gut
  13. Cxyda

    Components kopieren / erzeugen?!

    ... ist ja gut ihr nerds Ich habs ja verstanden.. dann nehm ich eben nen static CharacterManager der alle Daten verwaltet... Dann bau ich eben wiedermal alles um und komm somit nicht weiter ... und IHR seid schuld dran ;-) Meine Güte ! .. Hätte ich bloß nicht gefragt! Dann hätte ich dumm aber in frieden sterben können xD nein Spaß beiseite! Wirklich vielen dank für eure Hilfe! ist zwar jetzt mehr arbeit aber ich versuche ja immer meine Code Qualität zu verbessern und zu lernen was ich kann.
  14. Cxyda

    Components kopieren / erzeugen?!

    ja okay wenn ich ein Static dictionary mit CharacterDaten nutzen würde könnte ich das z.B. im CharacterDataManager speichern und die Daten via id abholen. Hab ich verstanden. ich denke nicht das Vector3, float etc was anderes ist wie CharacterData aber ich benutze auch diese Klassen wie und wo sie sinn machen. Character Daten wie Alter, Geschlecht, Aussehen usw haben meiner ansicht nach nichts in der CharacterMovement klasse zu suchen. da ICH sie da vielleicht wieder finde weil ich sie da gespeichert habe, jeder andere im Projekt wird sich jedoch fragen was mich da geritten hat. Ich lege ja auch nicht meine urlaubsbilder auf c:\Windows\System32\ ab nur weil es diesen Ordner schon gibt und ich keinen neuen anlegen möchte. Ich bin kein gelernter vollzeit coder deshalb entschuldige meine Unwissenheit. Aber wenn ich ein GameObject habe und ich will dem irgendwelche Eigenschaften geben (und will kein static dictionary mit ID usw machen) wie z.B. trefferpunkte, komme ich doch nicht drum herum in Unity dem objekt erstmal irgend eine von Monobehaviour Komponente anzuhengen in die ich dann eigene Klassen / Properties anhängen kann oder? Solange ich nicht komplett meine eigenen Objekte schreiben möchte habe ich doch keine andere Wahl als meine CustomProperties in Mono Componenten zu verpacken. Egal eigentlich, wir schweifen ab Ich bin, dank dir, jetzt jedefalls schlauer! THX
  15. Cxyda

    Components kopieren / erzeugen?!

    ^^ sorry du hast mich falsch verstanden WIE ich das machen kann ist mir klar aber in deinem beispiel hält die CharacterMovement klasse die von Mono erbt die CharacterData klasse die NICHT von mono erbt... das macht aber logisch keinen sinn da die daten wie Alter usw nichts in der Movement klasse zusuchen hat. Deshalb war meine frage wo man solche Daten sinnvoll speichert wenn man den Komponenten Ansatz verfolgen will, aber keine unnötigen Mono klassen erzeugen will... Ich erwarte hierauf keine Antwort da ich glaube das es diese nicht gibt. Man wird wohl entweder Alle daten in ohnehin benötigten mono Componenten speichern müssen, auch wenn sie in den komponenten keinen sinn machen ODER mit überflüssigen Moono Component containern leben müssen...
×