NinaLabo

個人ゲーム開発者の技術メモ

Unity

【Unity】iPhoneX での UI 開発(予備知識編)

11月3日に発売を予定されている iPhoneX(iPhone 10)が開発者泣かせ。主に UI に影響が出そうで、なんとか uGUI をうまく拡張して最小コストで対応できないだろうか調べ始めております(残念ながら結論は出ていない) 予備知識が全然ないので、開発を始める…

Unityで 謎の Request error (error) を解消する

Unity で開発しているとたまにConsole上に表示されるリクエストエラー。アプリの動作に影響はないものの、ずっと気になってました。 Request error (error): UnityEditor.AsyncHTTPClient:Done(State, Int32) 以下の手順で出なくなります Unity > Preference…

【Unity】MagicaVoxel のモデルに Blender でアニメーションをつけて Unity で動かす(後編)

MagicaVoxel で 3Dモデルを作成し、Blender にインポートするところまで前編でやりました。 ninagreen.hatenablog.com 後編ではBlenderに取り込んだモデルに簡単なアニメーションをつけて、Unityで動かしたいと思います。ただ、その前に Blender 初めての方…

【Unity】Segmentation fault 11 でエラーになる件

エラー発生 Unityのアプリを TestFlight にアップしようと思い、Unity で iOS ビルド実行後、Xcode の Product の Archive を実行したところ、以下のエラーが発生しました。 clang: error: unable to execute command: Segmentation fault: 11 clang: error:…

【C#】三角関数で2点間の線の長さと角度を計算する

下記のようなスキルツリーのミニマム版みたいなものを実装しているのですが、ボタンとボタンを繋ぐ線の長さと角度は計算して配置しています。 特定の2点間を線でつなぐのを Unity でどう書けばいいのか、いつもやりかたを忘れてしまうのでまとめておきます。…

Unity 5.5 にアップデートしたら TexturePacker の画像が崩れてしまう件

Unity を 5.3.6f1 から 5.5.0f3 にアップデートしたら、見た目がおかしくなってしまいました(左:BEFORE、右:AFTER)。 川(水たまり?)の画像のエッジ部分がずれてしまってます。表示が崩れてしまった部分はTexturePackerで画像をまとめていた箇所でした…

【Unity】Unity で ゲームデータをセーブするのに FlatBuffers を使ってみる(導入編)

永続化したいデータ(ゲームを終了しても残しておきたデータ)をどうやって保存するのが最適なのかはいつも悩みます。今開発中のゲームはサーバを使用しないつもりなので、データはローカル(端末)に保存するつもりですが、パッと思いつくだけでも色んな実…

【Unity】MagicaVoxel のモデルに Blender でアニメーションをつけて Unity で動かす(前編)

以前の記事では、MagicaVoxel で3Dドットモデルを作成して、Unity に取り込んで動かすまでをやりました。 ninagreen.hatenablog.com 実際には、3Dドットのボクセルモデルに攻撃モーションなどのアニメーションをつけたいので、MagicaVoxel でエクスポートし…

【Unity】マルチタッチの開発に役立つ Unity Remote

ピンチイン、ピンチアウトで拡大縮小する処理を Unity で実装する際に、いちいちビルドして実機に転送して確認だと開発効率が悪いので Unity Remote を使ってみたのですが、結構使えたので導入手順を記載しておきます。 Unity Remote を使えば、Unity Editor…

【Unity】3Dモデルにシェーダーでアウトラインをつける(失敗編)

キャラクターと背景の色が同系色だと見にくいので、白猫プロジェクトみたいに3Dキャラクターの周りを線で囲みたいと思い、やりかたを調べてみました。 トゥーンシェーダー 最初に行き着いたのが、トゥーンシェーダー。 Unity 付属のシェーダーにアウトライン…

Unity のアプリを TestFlight で配信する(iOS編)

ゲームがある程度動くようになったので、自分以外の人(特に非エンジニア)にも遊んでもらうために、TestFlight で 開発途中のゲームを特定のメンバーにだけ配信することにしました。iOS の場合、配信までの手続きが多くて大変だったのでまとめておきます。…

【Unity】uGUIのオブジェクトをタッチしているか判定する

実装方法 EventSystem.current.IsPointerOverGameObject () で判定できます。ただし、これだと実機ではうまくいきません。 EventSystem.current.IsPointerOverGameObject (fingerId) 実機の場合は、fingerIdも指定しないといけません。fingerId は Input#Get…

MagicaVoxel の 3Dドット絵を Unity に取り込むまで

今開発中のローグライクゲームを、最終的には Crossy Road のような3Dドットにしようという野望がありまして。 クロッシーロード HIPSTER WHALE ゲーム 無料 作り方をいろいろ調べてみたんですが、エンジニアでも簡単に扱えそうな MagicaVoxel というツール…

Unity 5.3 で Application.LoadLevel が Obsolete になりました

シーンを遷移するときに呼び出す Application.LoadLevel が、Unity 5.3 から非推奨になったんですね。MonoDevelop で Application.LoadLevel を呼び出している箇所に警告が出ていました。 `UnityEngine.Application.LoadLevel(int)' is obsolete: `Use Scene…

Unity 5.3 に アップデートした感想まとめ

Unity 5.2.1 を 5.3 にアップデートして、いま開発中のゲームを動かしてみました。 アップデート方法 以下のリンクからインストーラーをダウンロードして実行すればインストールできます。 https://unity3d.com/jp/get-unity/update 変更点の詳細は、以下の…

【Unity】DOTween のインストール

Unityで使えそうなTween系のツールとして、iTween、HOTween、LeanTween などありますが、コードが簡潔に書けるので、個人的には DOTween が好みです。アニメーションのほとんどは Unityアニメーション(Mechanim)で作っていますが、例えばA地点からB地点へ…

【C#】リストや配列のソート方法まとめ

リスト(List)や 配列(Array)の 並び替えの方法をまとめました。 《CASE1》リスト内のオブジェクトの変数で並び替え 社員オブジェクト(Employee)を格納した 社員リスト(employeeList)があるとして、その社員リストを 社員番号(Employee.ID)で並び替…

【C#】数値を符号(プラス/マイナス)を付けた文字列に変換する

たとえば・・ 数値がプラスの場合は、 「こんぼう +1」 数値がマイナスの場合は、 「こんぼう -1」 数値がゼロの場合は、 「こんぼう」 と表示するとします。 もちろん、if分で場合分けして、文字列を組み立てればできるのですが、 string.Format ("{0} {1}"…

【Unity】GameObjectをSetParentするとエラーになる件

エラー内容 Setting the parent of a transform which resides in a prefab is disabled to prevent data corruption. この時点では何のことなのか、さっぱりわからず... エラー箇所 gameObj.transform.SetParent (baseTransform); 子のゲームオブジェクト(…

【Unity】Unity 5.2.1 の uGUI で Source Image がない Image の表示がおかしくなる件

Unity を 5.2.0f3 から 5.2.1f1(2015/10/13時点の最新版)にアップデートしたところ、uGUIの一部のImageコンポーネントの表示がおかしくなってしまいました。 単純に、画面全体を覆う白い背景を表示したくて、上図のように Source Image を設定せずに、Colo…

【Unity】 Animator has not been initialized と警告されてしまう件

UnityのMechanim(メカニム)を使ったアニメーションの実装をしている時にたまにゲーム画面がフリーズすることがあって、何だろうと思ってコンソールログを見ると "Animator has not been initialized" とwarningが出ていることがありました。 「Animator が…

Unity で作ったゲームを はてなブログ で公開する手順

Unityで作成したアプリをはてなブログで公開するまでの手順を書いておきます。実際にアプリを公開したページはこちら。 ローグライクゲームの進捗状況(20150905) - NinaLabo 公開までの手順 Step1. Unityのビルド Step2. Google Driveへのアップロード Ste…

"Invalid AABB aabb" という謎のエラーが出る件

先日、Unityで実装していたら、Consoleウィンドウに突然 Invalid AABB aabb という謎のエラーが出はじめました Inspector上で、GameObjectをアクティブにしたり非アクティブにしたりすると出続ける状態。最初は訳がわからず、誰かがふざけてデバッグログに仕…

C#で Vector3 を Vector2 に変換するには

こういうVector3があるとして、 Vector3 three = new Vector3 (1, 2, 3); zを無視してVector2に変換する場合、もちろんこう書けばできるけど、 Vector2 two = new Vector2 (three.x, three.y); 暗黙的にキャストしてくれるので、これで大丈夫です。 Vector2 …

C#で Enum(列挙型)と 数値や文字列 との変換

こんな Enum(列挙型)があるとして、 public enum ItemType{ Weapon = 1, Shield = 2,} Enum (列挙型)→ 文字列 ItemType.Weapon.ToString(); Enum (列挙型)→ 数値 int itemTypeNo = (int)ItemType.Weapon; 文字列 → Enum (列挙型) ItemType type = En…

C#で 任意の個数の引数をもつメソッドをつくるには

キーワード params をメソッドの引数の配列型の前につけるだけ。例えばこんな感じ。 public void ShowMessage (string message, params object[] messageParams) 呼び出し側は引数を何個でも渡せます。 ShowMessage ("message", param1, param2, param3); 文…

EXC_BAD_ACCESS: UnityでビルドしたソースコードをXCode経由で実行するとエラーになる件

再現環境 Unity 5.1.2 iOS 8.3 / iPhone 5 XCode 6.4 エラー内容 Unityで製作したアプリを端末上で動作確認したいと思い、以下の手順を実行したところ、EXC_BAD_ACCESS エラーが発生してしまいました。 1. Unity上でiOS向けにビルド(IL2CPP) 2. ビルドした…

Unityで新しくプロジェクトを作成したときに最初にやっておくべきこと

Unityで新しくプロジェクトを作成した際に、はじめに設定しておいたほうが良いことをまとめました。 目次 iOS 64bit に対応する(IL2CPP) アセットをテキストで保存する設定にする(Force Text) iOS 64bit に対応する(IL2CPP) 1. [Edit] - [Project Sett…