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); }
簡単なサンプル
Please Leave a Reply
TrackBack URL :