読者です 読者をやめる 読者になる 読者になる

developer_RYO’s blog

スマホアプリやPCゲーム、音楽やイラストを自由気ままに作っている人の技術ログです

音符を作成する、作成した音符を移動させるスクリプトを作った。

Unity

こんばんは。

 

現在、Unityで音ゲーを作ろうとしているのですが、昨日スクリプトを書いたので、

UPしておきます。

・スペースキーを押すとCubeが生成(後で、音符を生成するタイミングデータと、経過時間を比較して音符を生成するようにしたい。)
・生成後の音符に速度を持たせる(速度については、曲の速さ、画面の大きさによって決定すること。)
 
とりあえず眠いので、お休みなさい。

//音符を作るスクリプトです。

using UnityEngine;

public class CreateNote : MonoBehaviour {
	
	//作成する音符のプレファブ
	public GameObject note;

	void Start () {
	
	}
	
	void Update () {
		
		//もしマウスクリックしたら、音符作成
		if(Input.GetKeyDown(KeyCode.Space))
		InstanceNote();			
	}
	
	//音符を作成する関数
	//引数には音符の色、などを本当は指定。
	void InstanceNote()
	{
		//音符をインスタンス。unityのinstantinate?は処理的に重いので、
		//いつか軽くできるような仕組みを作ること。(awakeで作ったものを瞬間移動させて持ってくるとか)
		Instantiate(note,transform.position,transform.rotation);
	}
	//BMPがある、音データ(いつ鳴らすのか)のデータがある、
	//←いつ作成するかの時刻←(音符作成時から鳴らすまでの時刻)+(ゲームが始まってから音符作成時までの時刻)
	//←音符作成時から、鳴らすまでの時刻はBPM、作成場所からタップ部の距離を使って算出できる
	//←いつ鳴らすのか、という時間から、音符作成から鳴らすまでの時間を差し引けば、いつ音符を作ればいいかがわかるはず。
}
//音符に速度を持たせるためのスクリプトです。

using UnityEngine;
[RequireComponent(typeof (Rigidbody))]

public class MovingNote : MonoBehaviour {

	// Use this for initialization
	void Start () {
		
		//速度の初期化。
		Vector3 noteVelocity = new Vector3(3,0,0);
		this.GetComponent<Rigidbody>().velocity = noteVelocity;
	
	}
	
	
	void Update () {
		//もし、音符がタッチされたり、右に行き過ぎたりしたら、
		//音符を削除。if文の中を変更する。
		if(transform.position.x >= 0)
		{
			Destroy(this.gameObject);
		}
	}	
}