前書き
Unityでスクリプト書いてますか?
配列が1開始とか--
のコメントアウトに飽き飽きしてませんか?
Rubyでは配列は0開始ですね。
さらに、コメントアウトは--
とか変なのではなく#
ですね。
こんな感じのスクリプト言語がUnityで使えます。
Asset Store
- 検索
- ダウンロードしましょう。たった5.4ドル、約600円(ラークなんて1カートン4,200円≒37ドル?高っけ・・)。そんな金あれば7個アセット買おう。
「UniRuby」を入力して検索。
1つしか検索されないのですごいわかりやすい!
Unity Asset Store URL: https://www.assetstore.unity3d.com/#!/content/85825
Short URL: http://u3d.as/MeG
インポート
パッケージを展開してUnityへインポートします。
特に何も考えなくていいはずです。
DEMOの使い方
SceneDemoを開きます。
Run From Stringボタン
UnityEditorを実行し、このボタンを押下すると、
Textに書かれているRubyのコードを実行してくれます。
デモでは、ProgramText
というオブジェクトに入っているテキスト
10.times.each {|i| debug_log i * i }
というコードが実行されます。
10.times
なので0〜9(0開始の計10)の数字同士で掛け算して実行してログを出します。
debug_log
というメソッドがあります。
debug_warning
やdebug_error
もあります。
Run From Text fileボタン
これはテキストファイルから実行します。
#coding:utf-8
debug_log "Hello, world!"
5.times.each {|i| debug_log(i * i) }
class Car
def initialize(carname)
@name = carname
end
def dispName
debug_log(@name)
end
end
car1 = Car.new("First Car")
car1.dispName
car2 = Car.new("日本車")
car2.dispName
car3 = Car.new("한국차")
car3.dispName
set_result("子曰、吾十有五而学志于學。三十而立。四十而惑。五十而知天命。六十而耳順。七十而從心所欲不踰矩")
こんなコードです。
debug_log
のものはもちろんそのままログにでます。
set_result
と書けば結果をセットできます。
UniRubySample.csを読むのがいいです。
// testテキストをロード
var script = Resources.Load<TextAsset>("test").text;
// 実行
UniRubyManager.Run(script);
// マルチバイト文字を取り出す。
var myStr = UniRubyManager.result.mutlibyteStringValue;
// 画面に表示
this.result.text = myStr.ToString()
mutlibyteStringValue
というのを使っているのが重要です。
他にもintValue
とstringValue
を用意してます。
Run Someボタン
これはC#のソースのstringのRubyコードを実行してます。
intValue
とstringValue
などを使っている例です。
タイ語も表示しています。
iOSのビルドについて(1.0.1)
Xcodeで設定を自動でしてくれます。
Assets/UniRuby/Lib/MRuby.framework
というパス設定である前提ですので、
適宜修正が必要です。
CopyAndReplaceDirectory.cs
のFIXME
の箇所のパスを適宜修正をお願いします
よろしくお願いします。
サポート[English, 日本語, 한국어 OK]