Unity3D Study vol.3 MonoBehaviour

2010.01.12 | unity3d

前回のスクリプト内で使用した Start() や Update() は、
MonoBehaviourで定義されている関数です。
Unityでスクリプトを作成した場合は、基本的にMonoBehaviourを継承してスクリプトが作成されます。

Flashっぽい感じでつくろうと思った場合によく使いそうな関数は、
Start
Update

OnMouseEnter
OnMouseOver
OnMouseExit
OnMouseDown
OnMouseUp
OnMouseDrag

OnGUI
あたりかと思います。
注意するところとして、OnMouseOverなど、毎フレームごとに処理が実行される関数があります。

また、当たり判定を使用するには、オブジェクトを選択して Component > Physics > Rigitbody を定義します。

CubeScript.js

var screenSpace:Vector3;
var offset:Vector3;

var curScreenSpace:Vector3;
var preScreenSpace:Vector3;

function OnMouseDown(){
	Debug.Log("OnMouseUp");
	
	screenSpace = Camera.main.WorldToScreenPoint(transform.position);
	offset = transform.position - Camera.main.ScreenToWorldPoint(Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z));
	
}

function OnMouseDrag () {
	Debug.Log("OnMouseDrag");
	
	curScreenSpace = Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z);
	var curPosition = Camera.main.ScreenToWorldPoint(curScreenSpace) + offset;
	transform.position = curPosition;
    
	preScreenSpace = curScreenSpace;
} 

function OnMouseUp(){
	Debug.Log("OnMouseUp");
	
	curScreenSpace = Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z);   
	
	var vec:Vector3 = preScreenSpace - curScreenSpace;
	vec.Normalize();
	this.rigidbody.AddForce(-vec * 200);
}

簡単なサンプル

monoBehaviour_src

There are no comments.

Please Leave a Reply

TrackBack URL :

pagetop