Unityのメニューから出前注文やってみた。
これでゲームジャムも大丈夫。
#どうして出前?
1.@kaorun55 さんのtweetを見て。
2.twitterでOculusGoの話の流れから2014年グローバルゲームジャムの話が出てきて、ランチ外出する余裕なくて会場にピザ出前したの思い出したので。
(出前がらみといえば MA11鹿児島ハッカソンのやつも出前がらみだった。
#ざっくり仕組み
VisualStudioでwindowにブラウザ表示するエディタ拡張するクラスライブラリ作ってUnityに適用する。
#2.「Visual C#」の「クラスライブラリ」を選択、名前(とりあえずdemae)を入力しOK押下。
##「アプリケーション」→「ターゲットフレームワーク」を「.NET Framework 3.5」に変更。プロジェクト再起動を求められるのでOKを押下。
##「参照マネージャー」で「参照」をクリックし利用するUnityフォルダ内の「\Editor\Data\Managed」開き「UnityEditor.dll」と「UnityEngine.dll」を選択して「追加」ボタン押下。
#6.「ソリューション エクスプローラー」で「Properties」内の「AssemblyInfo.cs」を選択。
##「using UnityEngine;」 、「 [assembly: AssemblyIsEditorAssembly] 」を追加
#7.「Class1.cs」にコード記述してエディタにWeb ページを表示実装。
using System.Reflection;
using UnityEditor;
namespace demae
{
public class Class1
{
[MenuItem("Tools/demae")]
private static void Show()
{
var type = typeof(Editor)
.Assembly
.GetType("UnityEditor.Web.WebViewEditorWindowTabs");
var attr =
BindingFlags.Public |
BindingFlags.Static |
BindingFlags.FlattenHierarchy;
var methodInfo = type
.GetMethod("Create", attr)
.MakeGenericMethod(type);
methodInfo.Invoke(null, new object[]
{
"demae", // 表示ウィンドウのタブ名
"https://demae-can.com/", // URL
300, // 最小幅
300, // 最小高
1000, // 最大幅
1000 // 最大高
});
}
}
}
#8.「ビルド」→「demaeのビルド」でDLLのビルド。「【3で保存したフォルダ】\ClassLibrary1\bin\Debug」フォルダに「demae.dll」が作成。
#9.利用バージョンUnityフォルダ配下の「Editor\Data\UnityExtensions\Unity」に「demae」フォルダ作成しdllやunityバージョンを指定し「ivy.xml」の作成。
<?xml version="1.0" encoding="utf-8"?>
<ivy-module version="2.0">
<info version="1.0.0" organisation="yourname" module="demae" e:packageType="UnityExtension" e:unityVersion="2018.1.3f1" xmlns:e="http://ant.apache.org/ivy/extra" />
<publications xmlns:e="http://ant.apache.org/ivy/extra">
<artifact name="Editor/demae" type="dll" ext="dll" />
</publications>
</ivy-module>
#10.「demae」フォルダ内に「Editor」フォルダ作成し「demae.dll」配置。
#11.Unity起動して確認。
#これでUnityからピザでも寿司でもカレーでも、出前取れますね。
ここまでして思ったけど、Qiitaを表示しても地味に便利かもしれない…