WaitForSecondsではまった in Boo Unity
import System.Collections def Do() as IEnumerator: print('Do now') yield WaitForSeconds(2) print('Do 2 seconds later')
http://unity3d.com/support/documentation/ScriptReference/WaitForSeconds.html
Booはわざわざ「 as IEnumerator:」がいる。
このimport System.Collectionsも忘れないように!!!実行中にimportを抜けてたら上手く動いてたりするからわかりづらい
これに気がつかずはまった…
こんな違いなくして欲しいものだ。まあBoo使うなってことか?
Androidライセンス購入 Unity
iPhoneしかないけど買ったwでもiPhoneライセンスも買うと高いから購入していない
■買うときにはまったこと
IDを入れる覧があった。
→これは既に買った人用だと思う。(Unity→About Unityの右下のLicense keyを入れても無理だった)
買った経験のない人は今のUnityを入れなおしなのかと思ったが、そうではなかった。
■Android用のビルド
CE0051: Operator '/' cannot be used with a left hand side of type 'Object' and a right hand side of type 'int'.
型をしっかりやっておかないとエラーになる。
Objectへ/とか+=とかだめ。
JSであればvarとかきちんと型宣言しよう
function Hoge(x, y)
hoge += x;
↑だめ
function Hoge(x:int, y:int) var hoge:int += x;
↑こうする
ダックタイピングできないならUnityの恩恵はプログラミングでないな。
ぶっちゃけObjective-CとかJavaの敷居が下がってないよ。
音の流し方 Unity
こんな感じであったがよく分からない。
audio.Play(); audio.PlayOneShot(hoge); audio.Play(hoge);
おそらく、↑はステージの音楽とかの再生用なの?
「ゲームオブジェクトへ音声ファイルをドラッグ」すればその音楽が再生できる。
しかし、このやりかたでは、「複数の音楽(・・というか音)」を再生させたいのに、
1つのゲームオブジェクトへ1つしか音声が追加できない・・。
キャラクターに音を載せたいときは
宣言にAudioClipでやって(AudioSourceでなく)
var hoge : AudioClip; var bar : AudioClip;
if (x = 1) { AudioSource.PlayClipAtPoint(hoge, transform.position); } else if (x = 2) { AudioSource.PlayClipAtPoint(bar, transform.position); }
こんなかんじでやる