Opret et nyt 3D projekt

Opret et 3D objekt “Plane” og omdøb det til “Floor”

Opret et 3D objekt “Sphere” og omdøb det til “Player”

Opret en ny mappe i “Assets”-mappen , og omdøb den “Materials”

Opret et nyt “Material” i mappen, og omdøb det til “Player_Material”

Find billede på Nettet “Ball texture” er godt at søge på. Gem billedet i “Materials”-mappen.

Klik på dit “Player_Material”. Du kan nu trække billedet over på dit material

Træk “Player_Material” over på bolden.

Gør det samme med “Floor”, så det kommer til at se lidt lækkert ud

Vælg “Player” og tilføj [Add Component] “Rigidbody” i Inspectoren i højre side.

Bevægelse

Opret en ny mappe i “Assets”-mappen, og kald den “Scripts”

Opret heri et nyt C# script, og kald det “Player_Controller”

Træk herefter scriptet over på “Player”

Åbn scriptet

Udskift med dette script:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Player_Controller : MonoBehaviour
{
   public Rigidbody rb;
   public float moveSpeed = 10f;
 
   private float xInput;
   private float zInput;
 
   void Awake()
   {
       rb = GetComponent<Rigidbody>();
 
   }
 
   // Update is called once per frame
   void Update()
   {
       // Good for handling inputs and animations
       ProcessInputs();
   }
   private void FixedUpdate()
   {
       // Good for Movement
       Move();
   }
   private void ProcessInputs()
   {
       xInput = Input.GetAxis("Horizontal");
       zInput = Input.GetAxis("Vertical");
 
   }
   private void Move()
   {
       rb.AddForce(new Vector3(xInput, 0f, zInput) * moveSpeed);
   }
}

Nu kan du bevæge bolden.

Kameraet

Lav et nyt script, og kald det “CameraController”

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Camera_Controller : MonoBehaviour
{
 
   public GameObject target;
   public float xOffset, yOffset, zOffset;
 
 
   // Update is called once per frame
   void Update()
   {
       transform.position = target.transform.position + new Vector3(xOffset, yOffset, zOffset);
       transform.LookAt(target.transform.position);
   }
}

Træk det hen på “Main Camera” i Hierakiet, og dobbelklik derefter for at åbne det.

Træk derefter “Player” hen i “Target” på dit script i Inspectoren.

Reset scene

For at kunne genstarte scenen når du dør, skal der laves endnu et script som vi putter på “Player”

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
 
public class Reset : MonoBehaviour
{
   public float threshold = -50f;
 
 
   // Update is called once per frame
   void Update()
   {
       if (transform.position.y < threshold)
       {
           SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
       }
   }
}

Nu bestemmer variablen “threshold” hvor langt ned bolden skal falde inden scenen genstarter.

Nu kan du udvide dit spil med flere platforme for at lave en udfordrende bane.

Inden du begynder at lave en masse nye platforme, er det en god idé først at lave en et tomt objekt [Create Empty] som du kalder “Platforme”

Nu kan du trække alle dine platforme over i dette objekt som en mappe for at holde styr på dem.