2D UFO
Table of Contents
- Introduction to 2D UFO Project
- Setting Up The Play Field
- Controlling the Player
- Adding Collision
- Following the Player with the Camera
- Creating Collectable Objects
- Picking Up Collectables
- Counting Collectables and Displaying Score
- Building our 2D UFO Game
Introduction to 2D UFO Project
Setting Up The Play Field
The layer at bottom(Player, in this case) are rendered last
Controlling the Player
Keep the file name and class name consistent.
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
public float speed;
private Rigidbody2D rb2d;
void Start()
{
rb2d = GetComponent<Rigidbody2D> ();
}
void FixedUpdate()
{
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");
Vector2 movement = new Vector2 (moveHorizontal, moveVertical);
rb2d.AddForce (movement * speed);
}
}
Adding Collision
Box colliders we added overlap each other, but doesn't collide because they don't have any riigd body.
Following the Player with the Camera
While the Player Game Object rotates, the Camera Object, a child of Player, also rotates.
using UnityEngine;
using System.Collections;
public class CameraController : MonoBehaviour {
public GameObject player;
private Vector3 offset;
void Start ()
{
offset = transform.position - player.transform.position;
}
// LateUpdate is called after Update each frame
void LateUpdate ()
{
transform.position = player.transform.position + offset;
}
}
Creating Collectable Objects
https://docs.unity3d.com/ScriptReference/Transform.Rotate.html
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rotator : MonoBehaviour {
void Update () {
transform.Rotate (new Vector3 (0, 0, 45) * Time.deltaTime);
}
}
Picking Up Collectables
- file:///Applications/Unity/Unity.app/Contents/Documentation/en/Manual/class-CircleCollider2D.html
- file:///Applications/Unity/Unity.app/Contents/Documentation/en/ScriptReference/Collider2D.OnTriggerEnter2D.html
- https://docs.unity3d.com/ScriptReference/GameObject-tag.html
- https://docs.unity3d.com/ScriptReference/GameObject.CompareTag.html
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.CompareTag ("PickUp"))
{
other.gameObject.SetActive (false);
}
}
- Select multiple items with cmd+click.
- Disable Sprite Renderer to observe colliders
Counting Collectables and Displaying Score
using UnityEngine.UI;
public Text countText;
void SetCountText()
{
countText.text = "Count: " + count.ToString ();
}