This is a reference page for Unity Scripts
Food Toss
Controller
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float speed;
public float horizontalInput;
public float xRange = 23;
public GameObject projectile;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if(Input.GetKeyDown(KeyCode.Space))
{
Instantiate(projectile, transform.position, projectile.transform.rotation);
}
if (transform.position.x < -xRange)
{
transform.position = new Vector3(-xRange, transform.position.y, transform.position.z);
}
if (transform.position.x > xRange)
{
transform.position = new Vector3(xRange, transform.position.y, transform.position.z);
}
horizontalInput = Input.GetAxis("Horizontal");
transform.Translate(Vector3.right * Time.deltaTime * speed * horizontalInput);
}
}
Destroy Out of Bounds
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DestroyOutOfBoundsX : MonoBehaviour
{
private float leftLimit = -30;
private float bottomLimit = -5;
// Update is called once per frame
void Update()
{
// Destroy dogs if x position less than left limit
if (transform.position.x < leftLimit)
{
Destroy(gameObject);
}
// Destroy balls if y position is less than bottomLimit
else if (transform.position.y < bottomLimit)
{
Destroy(gameObject);
}
}
}
Detect Collision
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DetectCollisionsX : MonoBehaviour
{
private void OnTriggerEnter(Collider other)
{
Destroy(gameObject);
Destroy(other.gameObject);
}
}
Spawn Manager
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SpawnManagerX : MonoBehaviour
{
public GameObject[] ballPrefabs;
private float spawnLimitXLeft = -22;
private float spawnLimitXRight = 17;
private float spawnPosY = 30;
private float startDelay = 1.0f;
private float spawnInterval = 2f;
// Start is called before the first frame update
void Start()
{
InvokeRepeating("SpawnRandomBall", startDelay, spawnInterval);
}
// Spawn random ball at random x position at top of play area
void SpawnRandomBall ()
{
// Generate random ball index and random spawn position
Vector3 spawnPos = new Vector3(Random.Range(spawnLimitXLeft, spawnLimitXRight), spawnPosY, 0);
int ballIndex = Random.Range(0, 3);
// instantiate ball at random spawn location
Instantiate(ballPrefabs[ballIndex], spawnPos, ballPrefabs[ballIndex].transform.rotation);
}
}
Control Fire Rate
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerControllerX : MonoBehaviour
{
public GameObject dogPrefab;
public float fireRate = 0.5f;
private float nextFire = 0.0f;
// Update is called once per frame
void Update()
{
// On spacebar press, send dog
if (Input.GetKeyDown(KeyCode.Space) && Time.time > nextFire)
{
nextFire = Time.time + fireRate;
Instantiate(dogPrefab, transform.position, dogPrefab.transform.rotation);
}
}
}