青空の月

PHP, Unity, C#, アプリ開発関連について。

2013-01-01から1年間の記事一覧

GUIの横幅をマウスのドラッグで変更する

UnityでEditor拡張機能を作っていると、LabelFieldやTextFiledなどGUIでwidthが足りなくて見きれてたりして、何て書いてあるか分からない時がある。 windowの横幅を取得してその何%とかで指定すれば割と動的にできる。 今回はマウスでドラッグしてTextField…

Asset Store申請用のテンプレート画像について

申請用のテンプレ画像のZipファイルにキー画像の説明pngファイルが追加されていた。 キー画像、3種類。見えない部分が赤色のところかな。

Inspectorで表示される変数の文字列に変換する

Unityでは変数名をインスペクター上に表示すると自動的に見やすくしてくれる。 小文字と大文字の間にスペースを入れてくれたり、変数名の頭が「_」や「m_」、「k」で始まる場合は自動的に除いてくれる。 ObjectNames.NicifyVariableNameは文字列をこのルール…

アセットストアにつながらない場合の対処法

ブラウザでhttps://www.assetstore.unity3d.com/ はみれるけどUnity本体で見るAssetStoreにはつながらない場合があるようで公式ブログにその事について載っていた。 主な原因は2つで、プロキシーの設定とウイルス対策ソフトが原因で繋がらなくなる場合があ…

ディレクティブ一覧を取得する

ディレクティブである UNITY_3_5_1 UNITY_EDITOR とかは EditorUserBuildSettings.activeScriptCompilationDefines で取得できる。 Edit>Project Settings>PlayerのScripting Define Symbolsで設定しているのも取得できる。 各プラットフォームごとに取得…

ボタンなどの画像サイズを変更する

Editor拡張でボタンなどに使用する画像のサイズを変更する方法。 EditorGUIUtility.SetIconSize を使用してサイズを変更する。引数には変更したいサイズのVector2を渡す。 こんな感じにボタンにも好きな画像サイズで載せられる。 引数にVector2.zeroを指定す…

画面全体に対して特殊効果をかける(Pro専用)

Unityでこんな感じにカメラに写ってるものに対して渦のように描画を表現したい場合、Proバージョンならとても簡単に使える。 RPGの敵とエンカウントした時とかによく見るエフェクトかな。 ちなみにエフェクトをかけていない場合の元の画面はこんな感じ。Plan…

UnityでプライベートIPアドレスを取得する

サーバーを使ったアプリなどを作っていると、ローカル環境に立てたサーバーに対して接続する時などがある。 IPアドレスを指定して接続したい場合、人によってIPアドレスが違うのでチームで開発していると何かと面倒なのでスクリプトからIPアドレスの取得を試…

販売者アカウントの設定がWebから設定できるようになっていた

Asset Storeで販売する用のアカウントの設定がWeb上からできるようになっていた。 今まではAssetStore ToolのPublisher Acountボタンから変更できた。 最近、Asset販売用の管理画面のInfoタブから変更できるようになってたみたい。

EidtorWindowのタイトルに好きなアイコンを付けてみた

「EditorWindowのタイトルにアイコンをつける」を見て、 EditorWindowに好きなアイコンを付けれるという事なので試してみた。 こんな感じになり、かなり見やすくなる。 「Assets/Editor Default Resources/Icons/」配下にタイトル名と同じ名前のpng画像を入…

外部のアセット、ライブラリは要注意

Unityのアセットとか便利だけど落とし穴もある。 アセットは汎用的というか自分のプロジェクト用に作られていないので変数のデータ型とかが用途と合っていない場合が出てくる。 このスクリプトを実行するとどうなるか。 処理の内容としては、string型の数値…

Unityプロライセンスか判別する

Unity Pro Licenseを持っている環境かをスクリプトで判別するのに Application.HasProLicense がある。 これはUnity4.1から追加された。 以前ならRenderTextureを使ってProか判別してたけど、Unity標準機能で判別できるようになってた。 でも使う機会ってあ…

Unityに負荷をかける

Unityで負荷かけたいと言われちょっと調べたけど見当たらなかったので試しに作ってみた。 Unityは非同期処理のコルーチンとかあるけど、Unityはシングルスレッドなのでコルーチンももろにアプリに影響が出るので、別スレッドで処理させるようにもしてみた。 …

数学関数をUnityで扱う

数学関数をUnityで使う場合、C#のMathクラスから使うことができる。 もしくはUnityが用意しているMathfを使用することができる。 ちなみに、数学関数には累乗、平方根、三角関数など高校の数学で出てくるような数式を扱うものがある。 UnityではMathよりもMa…

シーンをメニューから素早く開く機能を自動化するEditor拡張

シーンをメニューから開く機能。メニューにシーンを追加するのも自動化してみた。 こんな感じにメニューに追加される。 メニューからも再作成できるけど、InitializeOnLoadで自動で更新される。

Unity4.2が公開

更新内容は既に公式サイトに日本語でも載っているけど、420点も変更点があるみたい。読むだけでも結構、大変な量だ。 「けいごのなんとか」さんで変更点のトピックをまとめてくれているのでこれを見るだけでもバージョンアップしたくなる。 変更点のトピ…

【GAE】 taskqueueからbackendsで動作させる

GAE

Google App Engineでバックグラウンドで処理をさせようとした時に色々迷ったのでメモ。 言語はPythonでtaskqueueを使用してバックグラウンドで処理させる。 まず、backends.yamlを用意する。 backends.yaml backends: - name: backends_name class: B1 insta…

見てわかるUnityゲーム制作超入門

見てわかるUnityゲーム制作超入門 新しく発売されたUnity書籍を買ってみたので、その感想。 見てわかるUnityゲーム制作超入門 (GAME DEVELOPER BOOKS)作者: 掌田津耶乃出版社/メーカー: 秀和システム発売日: 2013/06メディア: 単行本この商品を含むブログを…

マージを手伝ってくれるアセット。 Unity Merge

気になるアセットを見かけたのでメモ。 Unityでオブジェクトをマージするアセット。「Unity Merge」 ちょっと見た感じだと、マージしてくれるというよりも、オブジェクトの差分を見やすくしてくれるのとパラメータの入力を補助してくれるってところなのかな…

TlsExceptionを解消

HttpWebRequestを使用している箇所でこんなエラーが出る時があったので、その解消法をメモ。 Mono.Security.Protocol.Tls.TlsException: Invalid certificate received from server. Error code: 0xffffffff80092012 at Mono.Security.Protocol.Tls.Handshak…

CodeGuardでEditor拡張系のDLLを難読化する

CodeGuardで自動的に難読化してくれるのは、ビルドで生成したDLLが対象なのでエディター系のDLLは難読化しない。 Editor系のDLLも難読化してくれるとAssetStoreで販売する時にすごい良いのに。 と思ってDocument見てたら。 メニューに「Guard Unity Project …

CodeGuardを使ってみた

どのタイミングで難読化するか、気になっていたけど。 ビルドした後に自動的に難読化してくれる。(PostProcessBuildを使用している) ビルドでTempフォルダに作成されるdllを難読化する。なのでスクリプトは影響は受けないし、C#でもUnityScriptでも難読化…

Unityで難読化する 「CodeGuard」

Unityでソースコードを難読化してくれるアセット。 「CodeGuard」 AndroidだとPro Guardとかあるけど、メンドイしAndroidだけだしと思っていたら5月くらいに難読化のアセットが出てたみたい。 しかもAndroidもiOSも対応してる。Proじゃなくても使えるし全環…

【Asset】ScriptDefineManagerリリースしました

「ScriptDefineManager」というAssetを新たにリリースしました。 どんなAssetかというと、PlayerSettingsの「Scripting Define Symbols」を管理するアセットです。 こんな画面で操作します。上部が現在の設定。下部で編集します。 プロファイルとして色んな…

Unityが標準で持っているアイコンを取得してみた

Unityが標準で持っている?アイコンを取得してみた。 EditorGUIUtility.Loadを使ってパスを指定してTextureを取得する。 Texture tex = EditorGUIUtility.Load("icons/d_BuildSettings.Android.png") as Texture2D; パスは公開されてはいないと思うのでUnity…

【Asset】Unity Extras Toolbar

「Unity Extras Toolbar」という無料のアセットが公開されたので試してみた。アセットの中身はスクリプト1つだけ。 このアセットの機能はPlayerSettingsとかちょっと開くのがめんどくさいリンクとかをまとめてボタンから開く事ができるよという機能になって…

TypeLoadExceptionに遭遇した

UnityでTypeLoadExceptionのエラーが出たのでその解決法をメモ。 TypeLoadException: Could not load type 'masa795.ScriptDefineMgr.ScriptDefineUtil' from assembly 'ScriptDefineManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'. Asse…

画像の重なり状態を調べる

シーンビューのOverdrawモードを使用すると、画像の重なり具合を可視化して簡単に調べることができる。 無駄に画像が重なっていて、隠れているのにアクティブなオブジェクトを調べるときに役立ちそう。 シーンビューのOverdrawを選択。 NGUIのサンプルを可視…

ブックマークでUnityドキュメントの日本語/英語を切り替える

スクリプトリファレンスも徐々に日本語化され始めているので、以前ブックマークで英語ページと日本語ページを切り替えるソースを公開していた方がいたので改めて紹介。 Unityのオンラインドキュメントの日本語/英語を切り替えるブックマークレット 使い方は…

プリミティブオブジェクト(Cube/Sphere等)をスクリプトで作成する

meshとcolliderが付いた基本的なオブジェクトをスクリプトから作成する方法。 PrimitiveTypeを指定して作成するオブジェクトを決める。 GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Cube); スクリプトリファレンス http://docs-jp.unity3d.c…