太郎Work

Unityとかで困ったこと等を残しておきます

ScriptableObjectのメンバリネーム

ScriptableObjectを使用している時に変数定義を変えたくなることがあると思います。
例えばpublicで定義していたけどやはりprivateのSerializeFieldにしてスクリプトからは読み込み専用にしたくなった等
その時は

[System.Serializable]
public class Data
{
  [SerializeField]
  [UnityEngine.Serialization.FormerlySerializedAs ("name")]
  private string _name;
}

これで変数名の移行が行われます。
この状態でプロジェクトの保存を行うと_nameに値が移行されていることを確認することが出来ます。
全ての関連ファイルの変更が行われたことを確認できたらFormerlySerializedAs属性は消しても大丈夫です。

※これに限らないですがPrefabと同じようにSaveProjectを実行しないと見た目は差し替わっていてもファイルに書き込まれていないため、書き込まれていることを確認してから属性削除は行う必要があります。

コマンド引数を指定しつつUnityを複数起動する方法

クローン後の初プロジェクトオープン時PC&Macでプロジェクトが開かれてしまい、そこからiOSにswitchPlatformするのも時間がかかりすぎるのでコマンドラインから起動する方法
そして複数起動も出来る方法です

open -n /Applications/Unity/Unity.app --args -buildTarget iPhone -projectPath projectpath

--args をつけるのがミソみたいです。

UnityEditorのObjectFieldでフォルダのみ入れる

もっと簡単な方法あれば教えて下さい><

Object folder;
var newFolder = EditorGUILayout.ObjectField (folder, typeof(Object), false);
var path = AssetDatabase.GetAssetPath (newFolder);
if (AssetDatabase.IsValidFolder (path)) {
	folder = newFolder;
} else {
	folder = null;
}

どこかにありそうですが、パッと見つからず、試しにそれっぽく使ってみたら上手く行ったのでメモとして残しました。

AssetBundleメモ

Unity5.1.0での話

  • AssetBundle.CreateFromFileはエラーになって動かない
  • ビルド時は出力フォルダの.manifestファイルを参照しているためファイルをリネームすると再ビルドが走る
  • AssetBundle本体のファイルが存在しているかどうかのチェックはされていないのでリネームしても可
  • AppendHashフラグを持たせるとファイル名の後にハッシュ値が付与されたファイル名になる。

MementoBeta使ってみた

Mementoというサービスを使用して適当なフィギュアから簡易的に3Dモデル化してみました。
f:id:tarowork:20150326012101p:plain

WebPlayer版
Unity Web Player | Figure

Memento

少し前ですがMementoというサービスがベータ版で公開されたので少し試してみました。
Autodesk Memento


簡単に言うと複数の角度から写真を撮影し、アップロードするといい感じに3D化してくれるサービスです。www.youtube.com
(PVかっこいい)


と、いってもいい被写体がなかったので近くにあったフィギュアで試してみました。

続きを読む

Vector3.magnitudeの負荷について

きっかけ

とある実装でC#処理負荷が非常に高く困っていたのですが、C#の実行速度が遅いからと考えていました。

ふと、magnitudeの平方根計算が非常に高負荷になっているのではないかと思い、検証してみました。

A,B2点間の距離を出す式は以下のようになり、公式リファレンスにも負荷があるよと記述があります

{ \displaystyle
V = V_A - V_B\\
length = \sqrt{Dot(V,V)}
}
HatenaってTex記述もできるんだねすごぃ
Unity - Scripting API: Vector3.sqrMagnitude

続きを読む