Hatena::ブログ(Diary)

万年素人からGeekへの道 このページをアンテナに追加 RSSフィード Twitter

2014/8/19に移行した→ 万年素人からHackerへの道
 | 

2011-08-28 Sunday このエントリーを含むブックマーク このエントリーのブックマークコメント

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);
}

こんなかんじでやる

 |