Roll a ball - GunnarThorunnarson/FORR2GL05DU GitHub Wiki

Roll-a-ball (1:25 klst)

Tutorial með kóða þar sem þú býrð til leik þar sem þú stýrir bolta sem snýst með lyklaborði um plane þar sem þú getur safnað peningum sem snúast um sjáft sig. Í leiknum er skorteljari og textaskilaboð "Game Over" þegar ákv. fjölda peninga er náð.

  1. Introduction to Roll-a-ball (5 mín)
  2. Environment and Player (25 mín)
  3. Camera and Play Area (10 mín)
  4. Collecting, Scoring and Building the Game (45 mín)

Introduction to Roll-a-ball

  1. Kynning á Roll-a-ball, sýnir spilun og hvað verður tæklað í þessum tutorial.

Environment and Player

  1. Setting up the Game (7 mín)

    • Búa til project.
    • Plane fyrir ground.
    • Sphere fyrir player.
    • Material, litur á plane. Nánar um Material og Material class
    • Directional Light stilling, fá betri skugga á player.
  2. Moving the Player (15 mín)

    • Rigidbody component
    • Skriftur
    • PlayerController
      • Update vs FixedUpdate
      • Input class og Scripting API útskýrt
      • Input.GetAxis fyrir örvalykla
      • Rigidbody.AddForce()
      • Vector3. Sjá einnig Vectors (4:40 mín)
      • reference á annað component í sama GameObjecti með aðferð GetComponent() í Start()
      • movement (x, z) og hraði
      • public breyta

Camera and Play Area

  1. Moving the Camera (5 mín)

    • Tengja camera við player object, 3rd person uppsetning (camera follow).
    • Vandi að hafa camerasem child object af Player object. Camera rotation er með kúlu á öllum 3 axis.
    • Nota skriftu CameraController til að tengja saman camera og player.
      • offset og GameObject reference á player object
      • nota LateUpdate()
  2. Setting up the Play Area (4 mín)

    • Walls empty objects (containers) fyrir skipulag einsog mappa (muna reset origin), gert fyrir veggi
    • Búa til veggi úr cubes og sem childobjects af Walls
    • Pæling: Hver er munurinn á local vs global og Pivot vs Center mode?

Collecting, Scoring and Building the Game

  1. Creating Collectable Objects (9 mín)

    • Deactivate GameObject
    • Vinna með Transform
    • Spin, rotate Transform, fá cube hreyfingu með skriftu
    • Transform class
    • transform.Rotate með Vector3 argument sem Euler angle
    • Time.deltatime
    • Prefabs
    • Empty GameObject til að halda utan um pickup objects
    • TopDown view og Editor -> Global mode (ekki local) til að hreyfa objecta eftir plane (relative to global axes)
    • Duplicate til að fjölga prefabs um scene.
    • Material, color fyrir eitt eða öll prefabs
  2. Collecting the Pick Up Objects (16 mín)

    • Sphere Collider og bóka icon notkun (quick link to component í manual)

    • Collider.OnTriggerEnter(Collider other) nota trigger ef við viljum kóða án physical collision

    • Destroy() fjarlægir Game object af scene

    • GameObject skoðað nánar

      • tag, identify GameObject með tag gildi, hægt að bera saman tag við streng gildi
      • CompareTag skilvirkara en strengja samanburður,
      • setActive activate/deactivate Game Object
    • Tag and Layers, case sensitive

    • Multiobject editing

    • Is Trigger, OnCollision vs OnTriggers

    • Static vs Dynamic colliders

      • Static colliders eiga ekki að hreyfast t.d. veggir og gólf, ekki með Rigidbody
      • Dynamic colliders geta hreyft sig og hafa Rigidbody.
    • Rigidbody -> Is Kinematic

      • Rigidbody er venjulega hreyft með physics forces
      • Kinematic Rigidbody bregst ekki við physics forces en er hægt að animate og hreyfa með Transform.
        • object með colliders, lyftur, moving platforms,
        • object með triggers einsog collectables sem þarf að animate eða hreyfa með transform.
    • Samantekt
      Við viljum ekki að player hafi "physcial collision" við collactables objecta. Lausnin er að nota OnTriggerEnter frekar en OnCollisionEnter til að bregðast við árekstur (og haka við is Trigger). Collactables sem er static collider og snýst með Transform veldur performance issue (cashing). Við þurfum að laga þetta með að bæta við Rigidbody við Collactables og stilla á Is Kinematic til að vera laus við physics.

  3. Displaying the Score and Text (11 mín)

    • teljari sem Player Controller skrifta geymir (þar sem player getur ekki dáið)
    • UI Text til að sýna teljara á skjá.
    • Rect Transform fyrir UI elements (í staðinn fyrir venjulegt Transform)
      • Anchor Preset til að stilla af glugga í senu.
      • Padding með Pos X og Pos Y gildum
      • namespace using UnityEngine.UI
      • hjálparfall SetCountText
    • UI Text og skilyrði fyrir Game Over skilaboð þegar öllum collactables er náð.
  4. Building the Game (4 mín)

    • PC og MAC build
⚠️ **GitHub.com Fallback** ⚠️