Jump to content
Unity Insider Forum

Leaderboard


Popular Content

Showing content with the highest reputation on 10/09/2019 in all areas

  1. 1 point
    Du machst dir halt ein serialisiertes Feld und ziehst da das richtige ScriptableObject rein: public Dialog DialogMittagessen; public Dialog DialogKeinGeldMehr;
  2. 1 point
    Kannst du machen, aber eigentlich reicht das Script. Du hast halt das Interface IInput, und das definiert diese Propertys: public float Acceleration { get { return m_Acceleration; } } Das KartMovement-Script liest die Werte dieser Propertys aus und entscheidet dann, wie das Kart sich bewegen soll. Um eine andere Input-Methode zu bauen, musst du eine neue Klasse bauen, die ebenfalls dieses Interface implementiert. public class TouchInput : MonoBehaviour, IInput { public float Acceleration { get { return ???; } } public float Steering { get { return ???; } } // usw. Jetzt müssen diese Propertys immer den richtigen Wert zurückgeben. Beim Keyboard-Script wird in Update nachgeschaut, was die Input-Klasse über die aktuellen Tastatur-Tasten sagt (mit Input.GetKey und so). Die Werte werden in Feldern gespeichert (m_Acceleration und so weiter) und die Propertys geben den Wert dieser Felder zurück. Bei einer Touch-Steuerung brauchst du sichtbare Knöpfe. Diese würden beim Drücken die Werte ebenfalls den Wert von Feldern setzen, deren Wert denn von den Propertys zurückgegeben wird. Es ist vielleicht nicht die eleganteste Methode, aber anfangs recht einfach, wenn du die Felder öffentlich machst. public float m_Acceleration; public float m_Steering; // usw. Wenn das deine einzige Änderung wäre, sieht das Script erstmal so aus: https://pastebin.com/zvqcsMsZ Das kannst du zum Verständnis auch einfach mal auf dein Kart packen und aktivieren. Die Felder tauchen jetzt im Inspektor auf, und du kannst das Kart über den Inspektor steuern. Wenn du jetzt einen Button in dein UI baust, kannst du dem Button sagen, dass er diese Werte beeinflussen soll. Dazu benutzt du ein UnityEvent, wie das "On Click"-Ding im Inspektor des Buttons. Da muss man sich einmal reinfuchsen, ist aber super: Du kannst damit dem Button sagen, dass er eine bestimmte Sache machen soll, wenn er gedrückt wird, ohne extra Code zu schreiben. OnClick ist allerdings hier unpraktisch, da das Event ausgelöst wird, wenn man den Button einmal drückt und wieder loslässt. Du willst ja, dass etwas passiert, wenn der Knopf runtergedrückt wird (z.B. Beschleunings-Wert erhöhen) und wenn er wieder losgelassen wird (z.B. den Wert wieder senken). Dabei hilft dir die "EventTrigger"-Komponente. Dort kannst du auf weitere Events reagieren - von "Mauszeiger ist neuerdings über dem Objekt" bis hin zu "der Button wurde losgelassen. Auch hier wirst du dich ein bisschen reinfuchsen müssen, aber das wird schon. Du willst dann dem Button über diese Events beibringen, die Werte deiner TouchInput-Komponente zu ändern. Da fehlt dann noch einiges, aber damit hast du erstmal eine Menge zu tun.

Announcements

Hy, wir programmieren für dich Apps(Android & iOS):

Weiterleitung zum Entwickler "daubit"



×
×
  • Create New...