LoginSignup
6
3

More than 5 years have passed since last update.

UniRubyを使ってみよう

Last updated at Posted at 2017-03-26

前書き

Unityでスクリプト書いてますか?
配列が1開始とか--のコメントアウトに飽き飽きしてませんか?

Rubyでは配列は0開始ですね。
さらに、コメントアウトは--とか変なのではなく#ですね。
こんな感じのスクリプト言語がUnityで使えます。

Asset Store

  1. 検索
  2. ダウンロードしましょう。たった5.4ドル、約600円(ラークなんて1カートン4,200円≒37ドル?高っけ・・)。そんな金あれば7個アセット買おう。

「UniRuby」を入力して検索。
1つしか検索されないのですごいわかりやすい!

Screen Shot 2017-04-13 at 8.37.54 AM.png

Unity Asset Store URL: https://www.assetstore.unity3d.com/#!/content/85825
Short URL: http://u3d.as/MeG

インポート

パッケージを展開してUnityへインポートします。
特に何も考えなくていいはずです。

DEMOの使い方

Screen Shot 2017-03-26 at 4.20.31 PM.png

SceneDemoを開きます。

Run From Stringボタン

UnityEditorを実行し、このボタンを押下すると、
Textに書かれているRubyのコードを実行してくれます。

Screen Shot 2017-03-26 at 4.21.11 PM.png

デモでは、ProgramTextというオブジェクトに入っているテキスト

10.times.each {|i| debug_log i * i }

というコードが実行されます。

10.timesなので0〜9(0開始の計10)の数字同士で掛け算して実行してログを出します。

debug_logというメソッドがあります。
debug_warningdebug_errorもあります。

Run From Text fileボタン

Screen Shot 2017-03-26 at 4.25.57 PM.png

これはテキストファイルから実行します。

テキストはここにあります。
Screen Shot 2017-03-26 at 4.20.31 PM.png

#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というのを使っているのが重要です。
他にもintValuestringValueを用意してます。

Run Someボタン

Screen Shot 2017-03-26 at 4.36.21 PM.png

これはC#のソースのstringのRubyコードを実行してます。
intValuestringValueなどを使っている例です。
タイ語も表示しています。

iOSのビルドについて(1.0.1)

Xcodeで設定を自動でしてくれます。
Assets/UniRuby/Lib/MRuby.frameworkというパス設定である前提ですので、
適宜修正が必要です。
CopyAndReplaceDirectory.csFIXMEの箇所のパスを適宜修正をお願いします

よろしくお願いします。

注意

1.0.0は現在EditorとmacOSのみサポートだが、iOSは1.0.1で対応(IL2CPPは未対応)。 Androidはサポートしてませんが、1.0.2かな?

サポート[English, 日本語, 한국어 OK]

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3