view Chapter5/Assets/Scripts/myscript.cs @ 2:fdab88fc2cb9

add game projects
author Yuta ANSE <e135745@ie.u-ryukyu.ac.jp>
date Fri, 17 Jul 2015 23:14:45 +0900
parents
children
line wrap: on
line source

using UnityEngine;
using System.Collections;

public class myscript : MonoBehaviour {
	//変数の用意
//	float fog = 0;
	GameObject obj;
	int counter = 0;
	GameObject[] sphereObj = new GameObject[13];
	public GameObject prefab;

	// Use this for initialization
	void Start () {
		//フォグ(画面全体のエフェクト)の設定
//		RenderSettings.fog = true;
//		RenderSettings.fogColor = Color.gray;
//		RenderSettings.fogDensity = 0f;
	}
	
	// Update is called once per frame
	void Update () {
		//
//		if (RenderSettings.fogDensity < fog) {
//			RenderSettings.fogDensity += 0.0001f;
//		}
		for (int i = 0; i < 13; i++) {
			//82行目が実行されたときでも29行目が実行されるようにするためにtry構文を使う
				try{
				//Cubeが回転するように設定
			GameObject.Find ("Cube" + i).transform.Rotate (new Vector3 (1f, 1f, 1f));
				}catch{
				}
			}
		//カメラの位置を調整
		Vector3 v = transform.position;
		v.y += 2;
		v.z -= 7;
		Camera.main.transform.position = v;
		//Spaceキーを押している間カメラの位置を遠ざける
		if (Input.GetKey (KeyCode.Space)) {
			v.y += 3;
			v.z -= 10.5f;
			Camera.main.transform.position = v;
		}
		//ボールの操作設定
		if (Input.GetKey (KeyCode.LeftArrow)) {
			GetComponent<Rigidbody>().AddForce (new Vector3 (-10f, 0, 0));
		}
		if (Input.GetKey (KeyCode.RightArrow)) {
			GetComponent<Rigidbody>().AddForce (new Vector3 (10f, 0, 0));
		}
		if (Input.GetKey (KeyCode.UpArrow)) {
			GetComponent<Rigidbody>().AddForce (new Vector3 (0, 0, 10f));
		}
		if (Input.GetKey (KeyCode.DownArrow)) {
			GetComponent<Rigidbody>().AddForce (new Vector3 (0, 0, -10f));
		}
		AddForceAll ();
		//下に落ちるとゲームオーバー
		if (transform.position.y < -40) {
			Application.LoadLevel ("GameOver");
		}
		//全てのオブジェクトに触れるとクリア
		if (counter == 13) {
			Application.LoadLevel ("Clear");
		}
	}

	//CubeがSphereになって追いかけてくる
	void AddForceAll(){
		GameObject[] objs = GameObject.FindGameObjectsWithTag ("sphere");
		foreach(GameObject obj1 in objs){
			Vector3 dir = transform.position - obj1.transform.position;
			obj1.GetComponent<Rigidbody>().AddForce (dir * 2.0f);
		}
	}

	//衝突判定
	void OnCollisionEnter(Collision collider){
		if (collider.gameObject.name.StartsWith ("Cube")) {
			counter++;
			for (int i = 0; i < 13; i++) {
				GameObject cube = GameObject.Find ("Cube" + i);
					if (cube == collider.gameObject){
//				if (cubes [i] == collider.gameObject) {
					ParticleSystem ps = (ParticleSystem)GameObject.
							Find("GameObject" + i).GetComponent ("ParticleSystem");
					ps.Play ();
						Vector3 p = cube.transform.position;
						cube.SetActive (false);
//					obj = GameObject.
//							CreatePrimitive(PrimitiveType.Sphere);
					obj = (GameObject)Instantiate (prefab);
						obj.AddComponent <Rigidbody>();
						obj.transform.position = p;
//						obj.GetComponent<Renderer>().material.color = Color.cyan;
					obj.GetComponent<Renderer> ().material.color = Color.red;
					obj.tag = "sphere";
					sphereObj[i] = obj;
//					fog += 0.01f;
//					if (counter == 2) {
//						Application.LoadLevel ("GameOver");
//					}
				}
			}
		}
		for (int i = 0; i < 13; i++) {
			if (collider.gameObject == sphereObj [i]) {
				Application.LoadLevel ("GameOver");
			}
		}
	}

	//トリガーに設定したCylinderに触れるとワープ
	void OnTriggerExit(Collider collider){
		if (collider.name == "Cylinder0"){
//			Behaviour b = (Behaviour)collider.gameObject.GetComponent ("Halo");
//			b.enabled = true;
			gameObject.transform.position = new Vector3 (3,-9,3);
		}
		if (collider.name == "Cylinder1"){
			//			Behaviour b = (Behaviour)collider.gameObject.GetComponent ("Halo");
			//			b.enabled = true;
			gameObject.transform.position = new Vector3 (3,0,3);
		}
		if (collider.name == "Cylinder2"){
			//			Behaviour b = (Behaviour)collider.gameObject.GetComponent ("Halo");
			//			b.enabled = true;
			gameObject.transform.position = new Vector3 (3,51,3);
		}
		if (collider.name == "Cylinder3"){
			//			Behaviour b = (Behaviour)collider.gameObject.GetComponent ("Halo");
			//			b.enabled = true;
			gameObject.transform.position = new Vector3 (3,-19,3);
		}
		if (collider.name == "Cylinder4"){
			//			Behaviour b = (Behaviour)collider.gameObject.GetComponent ("Halo");
			//			b.enabled = true;
			gameObject.transform.position = new Vector3 (3,-9,3);
		}
		if (collider.name == "Cylinder5"){
			//			Behaviour b = (Behaviour)collider.gameObject.GetComponent ("Halo");
			//			b.enabled = true;
			gameObject.transform.position = new Vector3 (3,51,3);
		}if (collider.name == "Cylinder6"){
			//			Behaviour b = (Behaviour)collider.gameObject.GetComponent ("Halo");
			//			b.enabled = true;
			gameObject.transform.position = new Vector3 (3,0,3);
		}
	}
}