俺俺ScriptTemplate
anchan828/ScriptTemplates · GitHub
ScriptTemplates
スクリプトファイルのテンプレート集
ダウンロードしたtxtファイルを{Unity.app}/Contents/Resources/ScriptTemplates
フォルダに配置します。
作成するテンプレートファイルは以下の構成のファイル名にしなければいけません
{priority}-{メニュー名}-{ファイル名}.{拡張子}.txt
例:
120-C# Editor Script-NewEditor.cs.txt 121-C# EditorWindow Script-NewEditorWindow.cs.txt 122-C# EditorCallbacks Script-New EditorCallbacks.cs.txt
priorityは 95-190 が好ましいです。
PolymerでUnityWebPlayerを表示するやつ作ったよ
2行(Web Componentsをサポートしてないブラウザでは3行)でWebPlayerを埋め込めるように。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>unity-webplayer</title> <script src="//cdnjs.cloudflare.com/ajax/libs/polymer/0.3.3/platform.js"></script> </head> <body> <link rel="import" href="https://dl.dropboxusercontent.com/u/153254465/Unity/unity-webplayer.html"/> <unity-webplayer width="960" height="600" data="https://dl.dropboxusercontent.com/u/153254465/Unity/Game/GoroGoro/GoroGoro.unity3d"/> </body> </html>
実際に動いているページ
簡単に説明
<script src="//cdnjs.cloudflare.com/ajax/libs/polymer/0.3.3/platform.js"></script>
Web ComponentsをサポートしてないブラウザでPolymer使うために必須。
<link rel="import" href="https://dl.dropboxusercontent.com/u/153254465/Unity/unity-webplayer.html"/>
polymer-elementをインポートする。
<unity-webplayer width="960" height="600" data="Hoge.unity3d"/>
WebPlayerを埋め込むタグ。幅とかWebPlayerデータとかを属性として設定。dataはurlでもいいよ。
TODO
作ったといってもWebPlayer設定部分はまだ作ってないのでいつかやる。
WebPlayerTemplateも簡単なので作る。
WebPlayerでの公開をかっこ良く - WebPlayerTemplateを使う
みなさん、ユニティちゃんのunitypackageに「WebPlayerTemplates」が含まれているのをご存知ですか?
WebPlayerTemplatesを使用すると下記URLのようなHTMLページがすぐ作れちゃいます。
http://unity3d-jp.github.io/unitychan2d/
できること
シェアボタン
TwitterとFacebookのシェアボタンがWebPlayerの右下に表示されます。
使い方
WebPlatyerTemplatesをAssetsフォルダ直下に置きましょう
Edit -> Project Settings -> Player
の所にあるWebPlayer Templateで使いたいテンプレートを選択するだけです。
FacebookでURL共有した時の挙動(OGPの設定)
[注意] この設定は unity3d-jp/webplayer-templates · GitHub のWebPlayerTemplateで行うことが出来ます。ユニティちゃんパッケージに含まれているものでは出来ません(2014/06/22 現在)
何も設定していない時、FacebookでWebPlayerを共有しようとすると残念な見た目になります。
WebPlayerTemplateを使用するとサムネや説明が追加されて良くなります。
仕様的な説明
サムネはビルド直前に開いているシーンをサムネとして使用します。 TemplatesEditorScriptフォルダにあるWebPlayerTemplatesPostProcessBuild.csは絶対に削除しないでください。
using UnityEngine; using UnityEditor; using UnityEditor.Callbacks; public class WebPlayerTemplatesPostProcessBuild { [PostProcessBuild] public static void OnPostprocessBuild (BuildTarget target, string pathToBuiltProject) { if (target == BuildTarget.WebPlayer) { Application.CaptureScreenshot (pathToBuiltProject + "/thumbnail.png"); } } }
説明(og:description)の記入はPlayer Settingsから行うことが出来ます。
サムネと説明はビルドごとに毎回上書きされてしまうので注意してね。
AssetDatabase.StartAssetEditing
この情報はUnity Documentation Tabsでも閲覧することが出来ます
Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です
まとめて編集&再インポートに使用する
インポート中にダイアログを表示させるのには「EditorUtility.DisplayDialog」を使用しますが複数のアセットの再インポートを行う場合は「AssetDatabase.StartAssetEditing」と「AssetDatabase.StopAssetEditing」を使用します。こうすることでStartAssetEditingとStopAssetEditingに囲まれたインポート処理中はダイアログ表示が自動で行われるようになります。
例としてサウンドのインポート設定を3Dから2Dへ変更します。
using UnityEngine; using UnityEditor; public class AudioImporterSettings { [MenuItem("Assets/Apply 2D Sound")] static void Apply2DSound () { var sounds = Selection.GetFiltered (typeof(AudioClip), SelectionMode.DeepAssets); AssetDatabase.StartAssetEditing (); foreach (var sound in sounds) { var path = AssetDatabase.GetAssetPath (sound); var audioImporter = AudioImporter.GetAtPath (path) as AudioImporter; if (audioImporter == false) continue; audioImporter.threeD = false; AssetDatabase.ImportAsset(path); } AssetDatabase.StopAssetEditing (); AssetDatabase.Refresh (); Debug.Log ("done."); } [MenuItem("Assets/Apply 2D Sound",true)] static bool IsFolder () { var sounds = Selection.GetFiltered (typeof(AudioClip), SelectionMode.DeepAssets); return sounds.Length != 0; } }
動画を再生するにはvideoタグをサポートしたブラウザが必要です。
コンポーネントの順番を変更する「Component Move Up」「Component Move Down」をコードで管理する
何度も「Move Up」とか押しまくるの疲れたので作ってみた
Github - https://github.com/anchan828/ComponentOrderAttribute
コンポーネントの「Move Up」「Move Down」をコードで自動管理
ComponentOrderAttribute
ComponentOrderAttribute(uint order)
指定した順番通りに並び替える。
ただしTransformは必ず一番上でなければいけない。
using UnityEngine; using System.Collections; [ComponentOrder(1)] public class Order1 : MonoBehaviour { }
ComponentOrderAttribute(Type type)
指定したTypeの直下に移動する
using UnityEngine; using System.Collections; [ComponentOrder(typeof(Rigidbody))] public class OrderRigidbody : MonoBehaviour { }
タグ、レイヤー、シーン、インプット名を定数で扱う
結構前にシーン名とタグ名をタイプセーフに扱いたかったので作ってました。
スクリプトでシーン名を扱うのをタイプセーフにしてみた
http://anchan828.tumblr.com/post/37544410340
Tag名を定数で扱えるように
https://gist.github.com/anchan828/3cf9014a8493ab023925
今だとこちらが最新なのかな
【Unity】シーン名を定数で管理するクラスを生成する拡張機能 - コガネブログ
【Unity】タグ名を定数で管理するクラスを生成する拡張機能 - コガネブログ
他にも定数で管理したいところはあるので前作ったのを整理して公開してみました。
「Layer」「NavMeshLayer」「SortingLayer」「Input」が追加されてます。
anchan828/namecreator · GitHub
使い方
各クラスファイルが作成されるのはUnity起動直後か、メニューからの手動か。
メニューからはAssets/Name Creator/Force Rebuilds で実行できます。
全部生成したくない、いらないって人はここの行( link )をコメントアウトすればいいです。
Name Creator
色んな文字列情報をタイプセーフに使うやつ