Unityピンポンゲーム学習中 3Aから4C動画

Unityピンポンゲーム学習中 3Aから4C動画

ポンゲームたんに、ボールが跳ね返るだけで、ブロック崩しゲームではありません。でも、サーバにアップすると動かせるようになりますので、簡単です。
Webで作成しながら、アイフォン向けにもできそうです。Unity

とりあえず、2A、2Bまで学習しました。
ここまでのpaddle.jsスクリプトです。
RaycastHitの必要性が始めはわかりませんでした。

private var ray:Ray;
private var rayCastHit:RaycastHit;//Ray,cast,Hit :"c" of cast is small c

//
function Update () {
	if(Input.GetMouseButton(0)){
		ray=Camera.main.ScreenPointToRay(Input.mousePosition);
		if(Physics.Raycast(ray,rayCastHit)){
			transform.position.x=rayCastHit.point.x;
			
		}//if
	}//if
}

CubeオブジェクトTabDetectionBoxを見えないように、マウスのイベント座標の取得用に配置するというのはテクニックだなと思いました。
まさに、3Dならでは手法でしょう

Unity tutorial – Pong Game – How To Make Mobile Games – part 3A

Sphere球にrigidbodyを追加します。
unity_rigi

重力gravityは解除。

ball.jsを作成します。

function Awake{
	rigidbody.AddForce(4,4,0,ForceMode.Impulse);
	
}
//4C メニューシーンを作成したときに必要です。メニューシーンを作成していないときはまだ必要ではありません。
function Update(){

	if(transform.position.y<-5){
		Application.LoadLevel("menu");
		
	}
}

4cでの変更点です。

#pragma strict
function Awake(){
	rigidbody.AddForce(4,4,0,ForceMode.Impulse);
	
	//4c
	InvokeRepeating("IncreaseBallVelocity",2,2);
}

function Update(){

	if(transform.position.y<-5){
		Application.LoadLevel("menu");
		
	}
}

//4c
function IncreaseBallVelocity(){
	rigidbody.velocity*=1.05;
	Debug.Log("velocity:"+rigidbody.velocity);
}

ただし、今のままでは、壁がないので、ボールが動いて画面(カメラ)から消えます。次の3Bで壁を作ることが必要です。
--
Unity tutorial - Pong Game - How To Make Mobile Games - part 3B

sphereにPhysicsのBouncyをMaterialにドラッグします。
次に、壁をコピペして囲い壁を作ります。
ボールのスピードが遅いので、Edit,project setting,physicsから2を0.1にします。
unity_rigi_pro2

また、4cでせつめいしますが、ここで壁にもBouncyを与えておきます。Paddole(バー)にも与えます。
設定についてもBouncyは、DynamicFriction、StaticFrictionとも0です。

--
Unity tutorial - Pong Game - How To Make Mobile Games - part 4A

現在のシーンをmenuシーンとして別名保存します。別名保存の前に、現在作業中のシーンは保存しておきます。
3D textを追加します。
そしてBOX Colliderを設定します。これが、ボタンのようになります。
menu_box1

次で、メニューのスクリプトを入力します。

ーー
Unity tutorial - Pong Game - How To Make Mobile Games - part 4B

menuScene.js

private var ray:Ray;
private var rayCastHit:RaycastHit;

function Start () {

}

function Update () {
	if(Input.GetMouseButtonDown(0)){
		ray=Camera.main.ScreenPointToRay(Input.mousePosition);
		if(Physics.Raycast(ray,rayCastHit)){
			if(rayCastHit.transform.name=="playButton"){//3Dtext name
				Application.LoadLevel("pon2");//scene name
			}
		}
	}
}

Create Emptyを追加、「GeneralScript」にします
menuScript.jsをこの「GeneralScript」にドラッグします。
つまり、3Dtextにはドラッグしません。
実行したときに、BuildSettingに追加するのを忘れないようにしてください。そうしないと警告になります。

--
Unity tutorial - Pong Game - How To Make Mobile Games - part 4C

ball.jsに追加します。すでに、Update()を記載している場合は、不要です。

--
前回の学習状況

こちらの記事もどうぞ