🎼
Unity snabbreferens
  • Unity snabbreferens
  • Installation & setup
  • Kompilera och distribuera
  • Unity och git
  • GrundlĂ€ggande koncept
    • Begrepp
    • Ett Unityprojekts uppbyggnad
    • Prefabs och instanser
    • Komponenter
    • Scener
    • MonoBehavior
    • Lager och taggar
    • Knappar och axlar
  • Grundfunktioner
    • Debug och gizmos
    • Datatyper och synlighet
    • Input
      • Action-based Input System
    • Flytta och rotera
    • Kollisioner
    • Skapa och förstör
    • Hitta spelobjekt
    • BestĂ€ndig data
    • Slump
    • Fysik (2D och 3D)
      • Raycasting*
    • UI och Canvas*
    • Importera grafik*
      • Sprite editor*
    • Unity Events
    • Invoke, Couroutines
    • Animationer*
      • AnimationClip*
      • Animator Controller*
  • Andra funktioner
    • Tilemaps*
    • Asset Store
      • AnvĂ€ndbara Assets
    • Package manager
    • Meddelanden
    • CharacterController
    • Scriptable objects*
  • TillĂ€ggspaket
    • AI-Navmesh*
    • Mirror (nĂ€tverk)
    • XR Toolkit
      • Controllers
      • Interaktion*
      • Device Simulator
      • Teleportation
      • Meta Quest 2/3
      • 3D-modeller*
    • MRTK3 (HoloLens 2)
      • Grundkoncept*
      • Simulering
      • Interaktion*
      • Röststyrning
      • UI/UX och Canvas*
      • Spatial awareness*
      • Deployment*
    • MRTK2 (Hololens 1)
    • ProBuilder
  • Tekniker
    • PĂ„verka andra objekt*
    • RutnĂ€t*
Powered by GitBook
On this page
  • Debug
  • Debug.Log()
  • Debug.DrawLine()
  • Gizmos
  • OnDrawGizmos()
  • DrawLine()
  • DrawLineList()
  • DrawWireCube()
  • DrawWireSphere()

Was this helpful?

  1. Grundfunktioner

Debug och gizmos

PreviousKnappar och axlarNextDatatyper och synlighet

Last updated 1 year ago

Was this helpful?

BÄde Debug och Gizmos anvÀnds framför allt av spelutvecklare sjÀlva för att fÄ syn pÄ saker under spel. Kanske vill man rita ut nÄgot extra tydligt som inte syns för spelarna, kanske vill man bara ta reda pÄ vilket vÀrde en variabel har under körningen och hur det vÀrdet Àndras.

Debug

Debug.Log()

AnvÀnds för att skriva ut saker till konsollen; motsvarande Console.WriteLine i vanlig C#-konsollprogrammering.

Debug.Log($"Current X: {transform.position.x}");

AnvÀnds ofta för att testa ifall kod överhuvudtaget körs eller för att se vilket vÀrde olika variabler har.

Debug.DrawLine()

Ritar ut en linje i scenvyn. Tar emot tvÄ vektorer som startposition och slutposition för linjen, och en fÀrg. Om man vill kan man ocksÄ ange ett antal sekunder som man vill att linjen ska dröja sig kvar.

Debug.DrawLine(Vector2.right, Vector2.down, Color.green);

Gizmos

Gizmos Àr ett annat, mer flexibelt sÀtt att rita saker i scenvyn.

OnDrawGizmos()

Gizmos ritas i en egen metod – OnDrawGizmos. Precis som andra metoder med namn pĂ„ On
 sĂ„ anropas OnDrawGizmos alltid vid ett förbestĂ€mt tillfĂ€lle; i det hĂ€r fallet nĂ€r Unity-UIt uppdateras. Det gör ocksĂ„ att man bör vara försiktig – skriver man kod i OnDrawGizmos som fastnar i en loop sĂ„ finns risk att hela Unity blockeras.

  void OnDrawGizmos()
  {
    Gizmos.color = Color.green;
    Gizmos.DrawLine(Vector3.right, Vector3.down);
  }

NÀr man ritar gizmos bestÀms fÀrgen inte genom parametrar in i metoderna utan genom att man bestÀmmer vilken förg som ska anvÀndas "frÄn och med nu".

DrawLine()

Fungerar som Debug.DrawLine; man anger tvÄ vektorer.

void OnDrawGizmos()
{
  Gizmos.color = Color.green;
  Gizmos.DrawLine(
    new Vector3(1,2), 
    new Vector3(2,1));
  Gizmos.DrawLine(
    new Vector3(2,1),
    new Vector3(2,2)
  );
}

DrawLineList()

Ritar ut linjer mellan en serie vektorer. Tar emot en lista eller en array av vektorer.

Gizmos.color = Color.green;
Vector3[] points = new Vector3[4]
  {
    new Vector3(-1, 0, 0),
    new Vector3(1, 0, 0),
    new Vector3(-1, 1, 0),
    new Vector3(1, 1, 0)
  };

Gizmos.DrawLineList(points);

DrawWireCube()

Ritar ut en kub. Tar emot tvÄ vektorer, som bestÀmmer kubens position och storlek i x, y oxch z-led.

void OnDrawGizmos()
{
  Gizmos.DrawWireCube(Vector3.zero, Vector3.one);
}

DrawWireSphere()

Ritar ut ett klot (egentligen tre cirklar lÀngs olika axlar). Tar emot en vektor (mittpunkt) och en float som anger radien.

void OnDrawGizmos()
{
  Gizmos.DrawWireSphere(Vector3.zero, 1);
}