困った時の自分用メモ

読んだ本を考察してメモったり、自分でいじった物の感想をメモったりする場。週1更新を目指します。

Lua

Unityの話〜MacでLuaをUnityEditorで動かす方法〜

UnityでLuaを動かす際、当然Unityエディター上で動かせないと開発効率が悪くなる。 しかし、Windowsでは https://github.com/yamashita8655/EmptyLuaProject このプロジェクトは動いたのだが、MACではDLL NOT IMPORTとなってしまった。 これは困ったので、そ…

Luaの話~4:アプリの振舞を変えるという思考2~

これから、数回の渡り、アプリ開発で得たLuaの知見を共有していく。 今回は、Luaその物の理解を深めるために、基本的な情報を共有していく。 この記事は、前回の続き、アプリの振舞を外部から変えるという設計の具体的な例を示す。

Luaの話~3:アプリの振舞を変えるという思考1~

これから、数回の渡り、アプリ開発で得たLuaの知見を共有していく。今回は、Luaの話以前に、スマートフォンアプリで、バイナリを更新せずアプリの振舞を変えるという事を考える時に必要な思考を記載していく。

Luaの話~2:試す方法(LuaInterpreterとC++バインディング)~

これから、数回の渡り、アプリ開発で得たLuaの知見を共有していく。 今回は、Unity以外(というより、恐らくこっちがメジャー)でLuaを実行する方法を紹介。

Luaの話~補足:なぜLuaの研究をしたのか~

筆者がなぜLuaなどという、スマートフォン開発においてはマイナーと言わざるを得ない言語を用いたアプリ開発の研究をしたか。 それを説明する。

Luaの話~1:基本編~

これから、数回の渡り、アプリ開発で得たLuaの知見を共有していく。今回は、Luaその物の理解を深めるために、基本的な情報を共有していく。

Luaの話~dofileとloadとloadfileの使い分けを考えてみた~

Lua

結論から言うと、どれも大差ないと思う。というより、筆者にも判断が付かなかった。 以下、検証内容。

Luaの話~metatableの振舞を見てみた~

Lua

Luaと言えば、metatableみたいなところがあるらしいんですが、「もふねこしゅーてぃんぐ」実装時は一回も使わなかった。 ただ、やっぱりこれからもLuaを使っていこうと思っている身からすると、さすがに勉強しとかないとまずいよなという事で、簡単にテスト…

Luaの話~Android実機でのDoFileやりかた~

通常、開発中はローカルに置いてあるLuaスクリプトをそのまま実行したいので、StreamingAssetsに置いてあるLuaScriptを読んで実行できるようにしている。で、この辺のパスやファイルのロード時に、各環境で微妙に差異が出るので、メモしておく。

IOSの話〜Releaseビルドでだけ実行時エラーがでるようになった〜

もふねこしゅーてぃんぐのIOS版アップデート対応をしていて、Debug版では問題なく動いたので、Release版をビルドして実機テストしたところ、実行時エラーが出るようになってしまった。 落ちている場所は、Luaのネイティブプラグイン内部っぽいところだった。…

Luaの話~で、商用に使えるのどうなのよ?~

筆者は、まだLua歴半年なのであまり偉そうな事は言えないが、思った事をメモしておく。 まず、Luaを使う場合も2パターン存在すると思う。・UnityC#側があくまでメインで、Luaを一部の計算式等だけに使う方法・ゲームロジック全てをLua側に逃がす方法上記2種…

Luaの話~LuaStateを作ると、どの程度メモリを消費するのか1~

▼検証コードメモ void Start () { Application.targetFrameRate = 60; StartDebugLog += "↓↓↓↓↓start↓↓↓↓↓\n\n"; uint monoSize = Profiler.GetMonoHeapSize(); uint monoUsed = Profiler.GetMonoUsedSize(); uint tempSize = Profiler.GetTempAllocatorSize…

記事の紹介~Luaを開発に使っている事例~

知人が教えてくれた、チュートリアルの実装にLuaを用いているというお話が記載されている記事。 tech.drecom.co.jp ロジックまで完全にLua側では実装していなくて、少し使ってる程度だから、パフォーマンスの検証などは恐らくやってない、との事だったけど、…

Unityの話~Lua形式のファイルをアセットバンドル化しようとして、速攻躓いた件~

Unrecognized assets cannot be included in AssetBundles: "Assets/StreamingAssets/EnemyManager.lua". このように出て、アセットバンドルに入れられない。.lua拡張子は対応していないようだ。 〇StreamingAssets内に入っていると、拡張子がtxtでもダメ 〇…

Luaの話~処理をLuaに移して感じた事~

〇便利だと感じる事 ・スクリプトの修正をしても、コンパイルが走らない⇒Unity側も、マルチスレッドコンパイル?とか、待ち時間軽減しようと頑張っているけど、Luaなら待ち時間0。マジで0。修正して即プレイボタン押せる。っていうか、Lua側の設計や使い方次…

Luaの話~データ設定でCSVを使う事が無くなるかも?~

ゲーム開発をした事がある人なら、誰しも一度はデータ設定の事について悩んだことがあると思う。恐らく、大抵は「表計算ソフト」で入力されたものを、「プログラム上で扱える形式」に変換し、「変換された物を読み込んでパースし管理する」処理を記述する、…

Luaの話〜IOS実機で動かす際に、ネイティブプラグイン化する時の注意点〜

ぶっちゃけ、なんでこれで上手くいくかわからんけど、LUAのネイティブプラグインを作る時に、そのXCodeプロジェクトでいくつか設定が必要。 ◯BuildSettings ・Architectures →arm64 とだけにする ・Build Active Architexture Only →No ◯Build Options ・Ena…

Luaの話~ブロック内のスコープ関係の話~

やらかしたミスfor i = 1, #skillTable do local table = skillTable[i] local val = #table LuaUnityDebugLog(#this.SkillMaxLevelList) table.insert(this.SkillMaxLevelList, val)endこれをやると、table.insertの部分で「insertがnilっす」というエラー…

Luaの話~LuaからUnity側へ、全角文字列を送る方法~

Lua側で設定をして、その設定をそのままUnity側に送るという事を想定している。 例えば、キャラクターの説明文などをLuaスクリプト上に記載しておき、それをUnity側に送ってTextに貼りつければそのまま表示される、といった具合だ。 で、そういえば全角文字…

Luaの話~オブジェクトと参照渡し~

以下のようなコードで詰まった。 -- クラス定義-- 2点を表すオブジェクトVector2 = {}-- コンストラクタfunction Vector2.new(x, y) local this = { x = x, y = y } -- メソッド定義 --this.Function = function() --end return thisend TablePos = Vector2.…

Luaの話~Luaのos.clock~

PC実機だと、ほぼリアルタイムの経過時間を返してくれるが、 Android実機でやった場合は、リアル時間1秒につき0.6秒くらいしか経過しなかった。 おそらく、 http://www.mm2d.net/main/prog/c/time-02.html これはC言語だが、clock(CPU処理時間)ってのは、…

Luaの話~Luaの配列~

Luaの配列は1から!繰り返す!Luaの配列は1から! function Test() array = {1,2,3} --array[0]--nullになるで array[1]--1 end

Unityの話~Lua連携を頑張る話2~

UnityとLuaの相互呼び出しを検証してるうちに、コルーチンをテストする前段階で1. Luaから呼び出したUnityメソッドの戻り値は、Lua側でどのように判断されるのか2. Unityから呼び出したLuaのメソッド内で、無限ループを発生させたら処理は戻ってくるのかを検…

Unityの話~Lua連携を頑張る話1~

以前、アプリ更新をしないでゲームの内容を更新する事は出来ないか?と考えた時期があり、それを可能にする可能性を、Luaに見出して検証/実験をしていた時期があった。その当時は・処理速度、メモリ使用量、アップル申請のグレーゾーン等の懸念は度外視する…