Unityで使える言語の紹介で存在が忘れられていたり、使ってる人居るの?と言われ可哀想な状態になってるBooの事について書いておこうと思います。Pyfesに来てる事ですし…
BooはPythonの方言。Python+.NET(正確に言うとMono)な感じです。この辺はUnityのJavaScript(UnityScript)がJavaScript+.NETな感じと同じです。
UnityのAPIリファレンスにもちゃんと使用例付きで情報が有ります(マニアックな機能だと無い様な時も有りますが…)。
Booについての日本語の資料はこちらのスライドとかが良いですがこちらだとPythonやUntiyの他の言語について既に知ってる人以外には結構、難易度が高いと思います。ざっと読んでみて難しいかな?と感じたら慣れてきてからまた読みなおした方が良いかもしれません。
Unity Programing on Boo
View more presentations from Shinsuke Sugita
北海道のゲーム制作コミュニティ「Kawaz」でもBooについての記事が書かれました。
Kawaz - UnityでBooを使ってシューティングを作ろう:その1
http://www.kawaz.org/blogs/giginet/2012/03/15/266/
こちらを参考に自分でもちょっと作ってみました。こちらで試せます。キーボードの上下で自機の移動、左のCtrlキーで弾を発射します。
自機の動作処理を行なっているプログラムはこんな感じ。
import UnityEngine class MyCharaController (MonoBehaviour): public bulletPrefab as GameObject public bulletSpeed as single = 40.0f FiriingMouth as GameObject def Start (): FiriingMouth = GameObject.Find("FiriingMouth") def Update (): transform.position.y += Input.GetAxisRaw("Vertical") * Time.deltaTime * 3.0f if (transform.position.y > 5.0f): transform.position.y = 5.0f if (transform.position.y < -5.0f): transform.position.y = -5.0f if Input.GetButtonDown("Fire1"): bullet as GameObject = Instantiate(bulletPrefab, FiriingMouth.transform.position, FiriingMouth.transform.rotation) velocity as Vector3 = Vector3.right * bulletSpeed bullet.rigidbody.velocity = velocity