Kick start Unity
In this blog we will be learning how to create a little 2D game.
This is focused towards absolute beginners , want to try Unity.
Step1: Open Unity Hub -> Create a new project with 2D template .
Step2 : Import assets just by drag and drop.
Step3: You can create 2D assets inside Unity .
From the assets take the Ground and Tank and place like this.(or you can create your own models like shown in the picture).
Create a folder “Prefabs” and drag the bullets and bird objects in that folder to make a prefab out of them.
create a C# script “movement” and add it to Tank game object .
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class movement : MonoBehaviour{public GameObject bulletprefab;public Transform firePoint;public float speed=3f;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){float horizontal = Input.GetAxisRaw("Horizontal");transform.position+=new Vector3(horizontal*speed*Time.deltaTime,0f,0f);if(Input.GetMouseButtonDown(0)){fire();}}void fire(){Instantiate(bulletprefab,firePoint.position,Quaternion.identity);}}
Create a C# script “destroy” and add it to wall gameObject.
using System.Collections;using System.Collections.Generic;using UnityEngine;public class destroy : MonoBehaviour{// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){}private void OnTriggerEnter2D(Collider2D other) {if(other.tag=="Bird"){Debug.Log("Bird");other.gameObject.SetActive(false);}}}
Create an empty game object and place it outside of camera boundary.
Create a C# script and add to the empty gameObject in my case i have named it “Spawn”.
using System.Collections;using System.Collections.Generic;using UnityEngine;public class spawn : MonoBehaviour{public GameObject birdPrefab;public float interval=0.3f;float time=0f;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){time+=Time.deltaTime;if(time>interval){Instantiate(birdPrefab,new Vector3(transform.position.x,Random.Range(3.25f,4.29f),0f),Quaternion.identity);time=0;}}}
Now we have to create two scripts for bird and bullets .
Create a C# script and add it to bird prefab or you can do this step before converting the gameObject as prefab as well .
using System.Collections;using System.Collections.Generic;using UnityEngine;public class bird : MonoBehaviour{public float speed=3.5f;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){transform.position-=new Vector3(speed*Time.deltaTime,0f,0f);}}
Similarly do for bullets prefab.
using System.Collections;using System.Collections.Generic;using UnityEngine;public class bullets : MonoBehaviour{public static bullets instance; // Creating a singleton patternprivate void Awake() {instance=this;}private float speed=4f;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){transform.position+=new Vector3(0f,speed*Time.deltaTime,0f);}public void OnTriggerEnter2D(Collider2D other) {if(other.tag=="Bird"){print("Bird encountered");gameObject.SetActive(false);other.gameObject.SetActive(false);}}}
And this should work just fine.
You can download the project from https://github.com/49paunilay/KickStart-Unity-Medium-blog-Tut
Follow me for more Unity , Django , Python content.
============Upcoming contents==============
Deploy ML model in Django .
Create a multiplayer room in Unity.
=====================================
Also you can follow me on Linkedin if you want->https://www.linkedin.com/in/nilay-paul-062521186/
Bird Artist =>https://www.linkedin.com/in/rakesh-mohata-6b2a70176/