Unity und C#: Einstieg ins Game-Engineering

所在平台: Udemy

课程主页: https://www.udemy.com/course/game-engineering/

课程评论:没有评论

第一个写评论        关注课程

课程简介

本课程名为“Unity与C#:游戏工程入门”,旨在教授Unity游戏开发的基础知识。课程将引导学员构建虚拟世界,并使用C#编写程序逻辑。同时,课程还会探讨Unity开发中常见的问​​题和解决方案。 **课程内容梗概:** * **Unity基础:** 课程将从Unity项目的基本元素、结构和基本脚本编写入手,介绍Unity消息方法、组件架构、字段、属性及Inspector面板的使用,并涉及IMGUI进行简单的诊断性图形工具开发。 * **3D与2D场景构建:** 学员将学习如何在虚拟空间中组织3D元素,理解GameObject和Transform属性,以及如何通过代码移动、缩放和旋转对象。此外,还涵盖了使用Input系统进行用户输入捕获,以及模型从Blender导入Unity的流程和常见问题。 * **资源与实例:** 课程将深入讲解Assets和实例的概念,如何实现3D对象上的点击事件,以及通过代码控制模型实例、激活/禁用对象和组件、查找对象以及利用Prefabs实现对象组合的复用。 * **材质、纹理与Shader:** 本部分将区分材质、Shader和纹理,介绍渲染管线(URP),并深入探讨Shader Graph编辑器的使用,以及材质在Unity中的应用和常见问题,包括UV坐标和纹理映射。 * **动画与运动:** 学员将学习动画编程,包括使用iTween实现平滑运动和路径动画,以及理解骨骼绑定(Bones & Rigging)和Clip在动画状态机中的作用。同时,也将探讨Animator中常见的过渡和参数设置问题。 * **AI与物理:** 课程将介绍Unity的物理系统,包括Collider的使用、物理模拟的控制、碰撞检测以及Raycast的应用。此外,还将涉及Unity中的路径寻找(NavMesh)和NPC的视野感知。 * **相机控制:** 学员将学习不同视角下的相机控制,包括Second-Person、Third-Person和First-Person视角,以及如何实现相机平移、LookAt约束、混合相机和显式渲染(如镜子)。 * **灯光与效果:** 课程将深入讲解Unity中的照明,包括间接光、反射、阴影设置、环境光、点光源、面光源等。同时,还将介绍材质的发射属性和透明度效果。 * **2D图形与GUI:** 学员将学习Unity中的2D项目开发,包括Sprites的使用、Sprite动画、2D物理和碰撞。此外,还将详细介绍Unity UI系统(UGUI),包括Canvas布局、RectTransform的使用、UI缩放以及事件系统。 * **数据与持久化:** 本部分将探讨数据存储的必要性,如何将游戏数据与表示层分离,以及数据的保存和加载(序列化/反序列化),包括Scriptable Objects的使用和场景管理。 通过本课程,学员将全面掌握Unity开发的关键功能,能够独立实现各种游戏内容,并将所学知识应用于模拟、产品可视化等其他领域。

课程评论(0条)

课程详情

In diesem Kurs geht es um die Grundlagen der Spielentwicklung in Unity. Dabei lernst Du virtuelle Welten aufzubauen und Programmlogik mit C# zu formulieren. Wir schauen uns Lösungswege und auch typische Probleme an, die bei der Arbeit mit Unity üblicherweise auftreten.Die einzelnen Funktionen des Programms werden Schritt für Schritt besprochen und direkt innerhalb der Software erklärt. Die jeweiligen Umsetzungsbeispiele und Übungen kannst du sofort mitmachen und so das Gelernte selbst ausprobieren.Am Ende dieses Kurses hast du einen kompletten Überblick über Unity und kennst alle wichtigen Funktionen die du brauchst um deine Inhalte umzusetzen. Beginnend bei der Frage wie du Modelle von Blender nach Unity exportierst, über die Organisation von Szenen, dem Anlegen von Animationen, Beleuchtung, Kameraeinstellungen und 2D-Grafik bis hin zur Verbindung mit Programmlogik, Physikberechnungen und Interaktionsmöglichkeiten wird der gesamte Workflow abgebildet.Themengruppen in diesem Kurs:Virtuelle Szenen mit 3D- und 2D-Modellen aufbauenObjekte per C#, Tools und künstlicher Intelligenz erzeugen, verändern und animierenMaterialien, Texturen und Shader mit der Universal Renderpipeline darstellenLichtquellen, indirektes Streulicht, Spiegelungen und Kameratechnik in Szene setzenSpieldaten von der Engine trennen, speichern und ladenNicht nur Spiele sondern auch viele andere Produkte wie z.B. Simulationen oder Produktvisualisierungen stellen hohe technische Ansprüche, die eine GameEngine erfüllt. Das in diesem Kurs erworbene Wissen lässt sich somit zur Umsetzung von Spielen wie auch zahlreichen weiteren Anwendungsgebieten nutzen.Die Kursinhalte im Detail: Einführung und SetupUnitys Lizenzmodell und InstallationLizenzen, Versionen und Module in Unity, Unity. Anmeldung & Installation. Aktivierung und Lizenz einrichten. Was ist Unity Hub? Installationprozess durchlaufen.Anbindung von Visual StudioVisual Studio als Code-Editor installieren, bestehende VS-Installation anbinden. Plattform-Ziele (nach)installieren. Problem: Keine Auto-Vervollständigung in VS.Unity-GrundlagenElemente von Unity-ProjektenStruktur eines Unity-Projekts, Projekte in Unity-Hub anlegen, Projekt-Struktur, Projektdarstellung im Editor, Problem: Objekt-Beziehungen gehen verloren, Begriff des „Assets".Ein minimales Programm in UnityCode schreiben & ausführen, Hello World, Aufbau eines minimalen Unity-Scripts.Unity-Message-MethodenWas ist sind Unity-Messages? Welche vordefinierten Messages gibt es? Sichtbarkeitsmodifikatoren. Welchen Schutzgrad brauchen Messages wie z.B. Start()? Aufbau eines minimalen Unity-Scripts.Komponenten-ArchitekturBegriff der Komponente. Fehler: "Can‘t add script component […] because the script class cannot be found."Felder, Attribute und der InspectorWas sind Felder? Feld-Werte über den Inspector steuern. Wie funktionieren Inspector-Werte technisch gesehen? Was sind „Attribute" und was bewirkt [SerializeField]?IMGUI - Einfache grafische DiagnosetoolsWas ist das IMGUI (Immediate Mode GUI)? Funktion von OnGUI().Eingabe-Elemente im IMGUIWie unterscheidet sich das IMGUI vom sonst üblichen Programmierstil in Unity? Problem: Die manuelle Angabe der Zeichnen-Koordinaten ist sehr mühsam.Interaktives Quiz zu diesem KapitelRaum und InputOrganisation von 3D-ElementenObjekte im virtuellen Raum, Game Objects als Grundtyp, GameObject und gameObject, Szenengraph und HierarchieTransform-EigenschaftObjekte im Raum transformieren, Code-Element „transform": Zugriff auf die Objekt-Position.Objekte per Code im Raum verschiebenVector3 und Vector2. Positionen zuweisen. Problem: Der Rückgabewert von Transform.position ist keine Variable und kann nicht geändert werden." [CS1612]Objekte per Code skalierenObjekte per Code rotierenZugriff auf die Rotation, Besonderheiten der Rotation, Objekt per C# um die eigene Y-Achse um 45° drehen.Wie wird ein Objekt nach vorne bewegt?Objekte hierarchisch organisierenZugriff auf die Hierarchie und Elternobjekte.Reflektion: Erkenntnisse zum „Transform"Zeitliche Verläufe mit Update und deltaTime realisierenEingaben per Input erfassen. Wie wird ein Tastendruck abgefragt?EingabeachsenSpiel-Eingaben erfassen, Input-Axes einrichten, Wie wird ein Achsensignal abgefragt?Interaktives Quiz zu diesem KapitelAssets und InstanzenKlickereignisse auf 3D-ObjektenGrundlagen Mausinteraktionen, Wie reagiert ein Objekt auf konkrete Mausinteraktionen? OnMouseUpAsButton(). Problem: Rechte Maustaste nicht identifizierbar.Modelle von Blender nach Unity portierenModell von Blender nach Unity exportieren, Welches Dateiformat für Exporte verwenden? Export-Import-AblaufProblemlösungen beim Portieren: Objektursprung und GrößenverhältnisseWo soll der Objektursprung in Blender liegen? Probleme: Größenverhältnisse zwischen Blender und Unity stimmen nicht. Unterschiedliche Koordinatensysteme. Importierte Modelle sind in Unity gedreht und skaliert.Austauschen eines lückenhaft erscheinenden ModellsProblem: Das Modell ist in Unity irgendwie löchrig.Arbeitsfluss bei der Asset-ProduktionAsset-Pipeline: Was wird wo gebaut? Allgemeine Entscheidungshilfe: Dynamik & Interaktivität. Wie sieht die Produktionspipeline für ein Maisfeld im Spiel aus?Modell-Instanzen per Code ansteuernMit Assets und Instanzen programmieren, Game Object - Instanzen, Duplikate, Instantiate(originalGO), Destroy(gameObject), DestroyImmediate(gameObject)Aktivieren und Deaktivieren von Objekten und KomponentenSetActive(zustand) vs. enabled-Eigenschaft. Problem: Meine Komponente hat kein Häkchen.Objekte suchen und findenWie findet ein GameObject ein anderes? Wie findet eine Komponente eine andere? Häufige Suchläufe. Objekte explizit koppeln.Objektkomposition per PrefabWie lassen sich Objektkompositionen wiederverwenden? Was sind Prefabs? Wie wird ein Prefab erzeugt? Eigenschaften und Verhalten von Prefab-Instanzen. Eigenschaften und Verhalten von Prefab-AssetsInteraktives Quiz zu diesem KapitelMaterial, Textur und ShaderUnterscheidung Materialien, Shader & TexturenBegriffsunterscheidung. Material in Unity. Welche Rolle spielen Shader?Render-PipelinesWas ist die Render-Pipeline (RP)? Render-Pipelines in Unity. Wie wird die Universal Render Pipeline (URP) in neuem Projekt aktiviert? Was ist der Package Manager? Umstellung auf Universal Render Pipeline. Problem: Nach Umstellung auf URP erscheinen die Szenen-Objekte pink.Shader Graph-EditorInstallation des Shader Graph per Package Manager, Wie funktioniert der Shader-Graph-Editor?Portierung von MaterialienWie wird ein Blender-Material nach Unity überführt? Texturemaps als MaterialfundamentArbeiten mit Material-AssetsWie ändert man das Material eines importierten Modells in Unity? Wie werden Material-Assets erzeugt? Wie ändert man das Material eines einzelnen Modells in der Szene? Wie ändert man ein Material per C#?Problem: Material-Änderung per Code wirkt nicht.Typische Textur-Probleme, Ausgangssituation. Probleme: Pixel tauchen auf, die in der Textur garnicht vorkommen, Texturkanten zeigen einen Farbschimmer. Wie wird eine Textur gekachelt? Pixel und Kanten werden immer geglättet. Die Textur wird verzerrt importiert.Mapping-KoordinatenUV-Koordinaten in Unity, Wie erreicht Code die UV-Koordinaten? Beispiel: 2D-Gesichter bei Klick ändern.VideotexturenInteraktives Quiz zu diesem KapitelAnimation und BewegungAnimationsprogrammierungWie fährt ein Objekt von A nach B? Lerp(von, bis, prozent). Version mit Kopplung über öffentliches Feld.Bewegungsprogrammierung mittels iTween.Installation der iTween-Bibliothek per Package Manager. Bewegung mit iTween. iTween: Easing (Bewegungsabschwächung). Wie werden Parameter an iTween übergeben? Welche Parameter unterstützt iTween.Hash?PfadanimationInstallation des iTween-Pfadeditors per Download. Wie wird eine Pfadanimation in Unity mittels iTween realisiert? Beim Loop springt die Animation.Hierarchische AnimationBones & Rigging. Produktions-Pipeline einer Bones-Animation.ClipsWie wird ein Clip-Asset abgespielt? Animation als Zustandsvisualisierung. Clips auf Zustände (States) abbilden. Zustandsübergänge (Transitions).Typische Probleme im AnimatorWie wird ein Clip im Animator wiederholt? Der Clip wirkt abgeschnitten. Eine dem FBX hinzugefügte Animation erscheint nicht als Clip.Übergänge und Parameter im AnimatorZustandswerte (Parameter). Wie löst C# den Animation-State-Wechsel aus? Fehler: Pro State einen Parameter anlegen. Was bedeuten die Standard-Zustände im Animator?Ebenen und GewichteAnimator-LayerWeitere Animationstechnik: Vertex- AnimationInteraktives Quiz zu diesem KapitelKI und PhysikÜberblick KI / AI in GamesUnitys Physik-SystemCollider: Typische Funktionen. Wann simuliert Unity Physik auf Objekten?Physiksimulation gezielt beeinflussenProblem: Explizite Transformation & Physik stören sich. isKinematic-Eigenschaft.KollisionenOnCollisionEnter und Typische Collider-FunktionenPhysik-bezogener CodeWas gehört in Update bzw. FixedUpdate? Wie werden Objekte gezielt per Physik bewegt?Kollisionsabfrage per Strahlverfolgung (Raycast)Raycast(strahl, …) und grafische Diagnose eines Raycast.Pfadfindung in UnityNavigationsprobleme in der Praxis. Was sind statische Game-Objects?Bewegung per NavMesh-SystemWas sind NavMeshes und NavAgents? Wie wird ein NavMesh in Unity erstellt? Wie wird ein NavAgent in Unity erstellt? Das Navmesh geht nicht bis zum Rand. Wie verhindert ein NavAgent dynamische Objekte?Feinderkennung durch NPCsWie sieht ein NPC ein anderes Objekt? Welche Objekte liegen im Sichtfeld des NPC?Interaktives Quiz zu diesem KapitelKamera-SteuerungSecond-Person-PerspektiveModell der „Gott"-Kamera bzw. Vogelperspektive. Blickweite vs. Clipping, LinienverkürzungPanning-Bewegung der KameraWie wird ein Panning im 3D-Raum realisiert?Third-Person-PerspektiveModell der „Cinematic"-Kamera in Beobachterperspektive. Verfolgerkamera per Parenting umsetzen.ConstraintsWas sind Constraints? Wann Constraints und wann z.B. transform.LookAt?Mehrere Kameras einsetzenWie wird ein Kamerawechsel programmiert?First-Person-PerspektiveModell der „Ego"-Kamera in Normalsicht. Wie ist ein MouseLook aufgebaut? Wie wird ein MouseLook umgesetzt?Essentielle Kamera-EigenschaftenKamera-Eigenschaften, Brennweite, Zoom und DollyExplizites RendernWie wird ein echter Spiegel realisiert?Interaktives Quiz zu diesem KapitelBeleuchtungseffekte in der Universal Render PipelineEinführung BeleuchtungRolle der Beleuchtung, Beleuchtungsarten in UnityIndirektes LichtWie wird indirektes Licht in Unity aufgesetzt?Probleme beim indirekten LichtMein Mesh empfängt kein indirektes Licht. Lightmaps ignorieren dynamische Objekte. Wie werden bewegliche Objekte indirekt beleuchtet?SpiegelungenSpiegelungen per Lichtsystem, Performance von Reflexionen verbessern.Gerichtetes LichtUmgebungslichtLicht der SkyboxPunkt- und KegellichtFlächen-LichtMaterial-EmissionenSchattenSchattenwurf konfigurieren, komplexe Schatten simulieren: Ambient OcclusionTransparenzAlpha-TransparenzProgrammierung eines FlackerlichtsInteraktives Quiz zu diesem Kapitel2D-Grafik und GUIWie unterscheidet sich 2D von 3D in Unity?Ist mein Projekt 2D oder 3D?SpritesWas sind Sprites? Sprites in der (3D-)Szene rendernAnimation von SpritesUnity-Keyframe-Animation aufsetzen2D-Physik und KollisionenCanvas-Layout-System (UGUI), Bild-Eigenschaften von Spielszenen, Bild-Eigenschaften von GUI-Elementen, Kernbestandteile von Unitys GUI-System. Wie wird das UI-Layout-System angelegt?Grundlagen des CanvasRectTransform, Werkzeuge für UI-Bearbeitung, RectTransform: Pivotpunkt und Anker.Dynamische LayoutsProblem: Elemente überlappen sich bei wenig Platz. RectTransform: Anker-Streckung. Ergebnis bei Änderung der Bildschirmgröße. Wie wird eine Vignette oder ein Bloodscreen realisiert?UI-Skalierung aufgrund der BildschirmgrößeProblem bei Größenänderung mit Inhaltsblöcken, Canvas Scaler, Prinzip von Scale With Screen Size.Skalierbare SpritesUnterschied Skalierung und Größenänderung. Was ist ein 9-Slice oder 9-Grid?AutolayoutsWie werden GUI-Elemente als Liste angeordnet?Event SystemWie wird eine Methode an einen GUI-Button gebunden?Interaktives Quiz zu diesem KapitelDaten und PersistenzHintergrund zur Notwendigkeit der DatentrennungDas Spiel als Zustandssammlung persistente und transiente Informationen. Spielmechaniken nach J. Schell (Wh. Game Design) Objekte, Attribute, Status. Inspiration: Endlicher Automat.Daten vom Szenengraph trennenWie werden Spielinhalt und Darstellung getrennt? Warum ist die strenge Trennung von Daten und Darstellung wichtig? Fehler: Datenobjekte und Engineobjekte mischenSpielobjekt durch Spieldaten steuernSonnenlichtwinkel durch Uhrzeit steuernSpeichern und Laden von Daten„Serialisierung" und „Deserialisierung". Wie wird ein Daten-Objekt in einen String konvertiert?Daten/Dateien schreiben und lesenWohin werden Savegames gespeichert? Woraus entsteht Application.persistentDataPath?Scriptable ObjectsSerialisierungsformen in Unity. Wie wird ein Scriptable Object erzeugt und benutzt?SzenenmanagementWie wird zu einer anderen Szene gewechselt?Wie bleiben Daten über Szenenwechsel hinweg erhalten?Laden und Mischen mehrerer Szenen. DontDestroyOnLoad.Interaktives Quiz zu diesem KapitelSchreibe Dich jetzt ein, um sofort Zugriff auf all diese Inhalte zu bekommen!

课程标签

0人关注该课程

主题相关的课程