Last active
October 6, 2015 07:02
-
-
Save wwelder/f0b28ed8aab91b97d183 to your computer and use it in GitHub Desktop.
Unity_SpaceShooter_Template
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void OnTriggerEnter (Collider other) | |
{ | |
if (other.tag == "Boundary" || other.tag == "Enemy") | |
{ | |
return; | |
} | |
if (explosion != null) | |
{ | |
Instantiate(explosion, transform.position, transform.rotation); | |
} | |
if (other.tag == "Player") | |
{ | |
Instantiate(playerExplosion, other.transform.position, other.transform.rotation); | |
gameController.GameOver(); | |
} | |
gameController.AddScore(scoreValue); | |
Destroy (other.gameObject); | |
Destroy (gameObject); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public GameObject shot; | |
public Transform shotSpawn; | |
public float fireRate; | |
public float delay; | |
void Start () | |
{ | |
InvokeRepeating ("Fire", delay, fireRate); | |
} | |
void Fire () | |
{ | |
//the shotSpawn here is a transform which Scale is identity, position is (0,0,-0.5), and rotation is (0,180,0) | |
Instantiate(shot, shotSpawn.position, shotSpawn.rotation); | |
GetComponent<AudioSource>().Play(); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Done_EvasiveManeuver : MonoBehaviour | |
{ | |
public Done_Boundary boundary; | |
public float tilt; | |
public float dodge; | |
public float smoothing; | |
public Vector2 startWait; | |
public Vector2 maneuverTime; | |
public Vector2 maneuverWait; | |
private float currentSpeed; | |
private float targetManeuver; | |
void Start () | |
{ | |
currentSpeed = GetComponent<Rigidbody>().velocity.z; | |
StartCoroutine(Evade()); | |
} | |
IEnumerator Evade () | |
{ | |
yield return new WaitForSeconds (Random.Range (startWait.x, startWait.y)); | |
while (true) | |
{ | |
targetManeuver = Random.Range (1, dodge) * -Mathf.Sign (transform.position.x); | |
yield return new WaitForSeconds (Random.Range (maneuverTime.x, maneuverTime.y)); | |
targetManeuver = 0; | |
yield return new WaitForSeconds (Random.Range (maneuverWait.x, maneuverWait.y)); | |
} | |
} | |
void FixedUpdate () | |
{ | |
float newManeuver = Mathf.MoveTowards (GetComponent<Rigidbody>().velocity.x, targetManeuver, smoothing * Time.deltaTime); | |
GetComponent<Rigidbody>().velocity = new Vector3 (newManeuver, 0.0f, currentSpeed); | |
GetComponent<Rigidbody>().position = new Vector3 | |
( | |
Mathf.Clamp(GetComponent<Rigidbody>().position.x, boundary.xMin, boundary.xMax), | |
0.0f, | |
Mathf.Clamp(GetComponent<Rigidbody>().position.z, boundary.zMin, boundary.zMax) | |
); | |
GetComponent<Rigidbody>().rotation = Quaternion.Euler (0, 0, GetComponent<Rigidbody>().velocity.x * -tilt); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEngine; | |
using System.Collections; | |
public class Done_GameController : MonoBehaviour | |
{ | |
public GameObject[] hazards; | |
public Vector3 spawnValues; | |
public int hazardCount; | |
public float spawnWait; | |
public float startWait; | |
public float waveWait; | |
public GUIText scoreText; | |
public GUIText restartText; | |
public GUIText gameOverText; | |
private bool gameOver; | |
private bool restart; | |
private int score; | |
void Start () | |
{ | |
gameOver = false; | |
restart = false; | |
restartText.text = ""; | |
gameOverText.text = ""; | |
score = 0; | |
UpdateScore (); | |
StartCoroutine (SpawnWaves ()); | |
} | |
void Update () | |
{ | |
if (restart) | |
{ | |
if (Input.GetKeyDown (KeyCode.R)) | |
{ | |
Application.LoadLevel (Application.loadedLevel); | |
} | |
} | |
} | |
IEnumerator SpawnWaves () | |
{ | |
yield return new WaitForSeconds (startWait); | |
while (true) | |
{ | |
for (int i = 0; i < hazardCount; i++) | |
{ | |
GameObject hazard = hazards [Random.Range (0, hazards.Length)]; | |
Vector3 spawnPosition = new Vector3 (Random.Range (-spawnValues.x, spawnValues.x), spawnValues.y, spawnValues.z); | |
Quaternion spawnRotation = Quaternion.identity; | |
Instantiate (hazard, spawnPosition, spawnRotation); | |
yield return new WaitForSeconds (spawnWait); | |
} | |
yield return new WaitForSeconds (waveWait); | |
if (gameOver) | |
{ | |
restartText.text = "Press 'R' for Restart"; | |
restart = true; | |
break; | |
} | |
} | |
} | |
public void AddScore (int newScoreValue) | |
{ | |
score += newScoreValue; | |
UpdateScore (); | |
} | |
void UpdateScore () | |
{ | |
scoreText.text = "Score: " + score; | |
} | |
public void GameOver () | |
{ | |
gameOverText.text = "Game Over!"; | |
gameOver = true; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void FixedUpdate () | |
{ | |
float moveHorizontal = Input.GetAxis ("Horizontal"); | |
float moveVertical = Input.GetAxis ("Vertical"); | |
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical); | |
GetComponent<Rigidbody>().velocity = movement * speed; | |
GetComponent<Rigidbody>().position = new Vector3 | |
( | |
Mathf.Clamp (GetComponent<Rigidbody>().position.x, boundary.xMin, boundary.xMax), | |
0.0f, | |
Mathf.Clamp (GetComponent<Rigidbody>().position.z, boundary.zMin, boundary.zMax) | |
); | |
GetComponent<Rigidbody>().rotation = Quaternion.Euler (0.0f, 0.0f, GetComponent<Rigidbody>().velocity.x * -tilt); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Used to rotate the rock obstacles | |
public float tumble; | |
void Start () | |
{ | |
GetComponent<Rigidbody>().angularVelocity = Random.insideUnitSphere * tumble; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private float nextFire; | |
void Update() | |
{ | |
if (Input.GetButton("Fire1") && Time.time > nextFire) | |
{ | |
nextFire = Time.time + fireRate; | |
Instantiate(shot, shotSpawn.position, shotSpawn.rotation); | |
GetComponent<AudioSource>().Play(); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment