コガネブログ

平日更新を目標にUnityやC#、Visual Studioなどのゲーム開発アレコレを書いていきます

【Unity】JsonUtilityを使用して出力するJsonファイルの容量を少しでも減らす

[Serializable] public class Character { public int m_id ; public string m_name ; } ... var ch = new Character(); var json = JsonUtility.ToJson( ch, true ); { "m_id": 0, "m_name": "" } 例えばこのような処理で出力したJSONを テキストファイルで…

【Unity】AndroidにおいてFirebaseを使用しているアプリがイベント登録時にハングするようになった

発生状況 Unity 5.4.3f1 Android IL2CPPビルド Firebase SDK導入済み Firebase.TokenReceived 参照時にアプリがハングする 原因 UnityのAndroid IL2CPPビルドのキャッシュが壊れていた 修正方法 下記のファイルを削除してからROMをビルドし直したら直った il…

【Unity】ネットワークにアクセス可能かどうかを取得する方法

Application.internetReachability を使用する switch ( Application.internetReachability ) { case NetworkReachability.NotReachable: Debug.Log( "ネットワークが使えない" ); break; case NetworkReachability.ReachableViaCarrierDataNetwork: Debug.L…

【Unity】Unityプロジェクトを5.3から5.4にアップデートしたらシーン遷移時にフリーズする現象が発生するようになった場合の対応方法

Unityを終了しておく Unityプロジェクト直下の下記のフォルダを削除する Library Temp Unityプロジェクトを開く

【Unity】「DontDestroyOnLoad only work for root GameObjects or components on root GameObjects.」

子オブジェクトに対して DontDestroyOnLoad 関数を使用すると表示される警告 DontDestroyOnLoad 関数はルートのオブジェクトにのみ使用可能

【Unity】AnimatorでTime.timeScaleを無視する方法

updateMode プロパティを使用する // タイムスケールを考慮する animator.updateMode = AnimatorUpdateMode.Normal; // タイムスケールを無視する animator.updateMode = AnimatorUpdateMode.UnscaledTime; 参考サイト様

【Unity】DOTweenでTime.timeScaleを無視する方法

SetUpdate 関数を使用する DOTween .To( value => { }, 0, 1, 1 ) .SetUpdate( true ) ; 参考サイト様

【Unity】Time.timeScaleを無視したdeltaTimeを取得する方法

Time.unscaledDeltaTime を使用する Debug.Log( Time.unscaledDeltaTime ); 参考サイト様

【Unity】UnityでLuaを使用できるようにする「slua」を触ってみる

はじめに 「slua」はUnityでLuaを使用できるようにするアセットです 前回紹介した「MoonSharp」は LuaからUnityのAPIを呼び出すことができなかったですが こちらの「slua」は呼び出すことができるようです 特徴(公式サイトから引用) static code generatin…

【Unity】FileUtil.GetProjectRelativePathでプロジェクトからの相対パスを取得する

var path = ""; Debug.Log( FileUtil.GetProjectRelativePath( path ) ); FileUtil.GetProjectRelativePathを使用することで 指定したファイルのプロジェクトからの相対パスを取得することができます

【Unity】NGUIのUISpriteをUIWidgetに置き換えるコンテキストメニューを追加するエディタ拡張

目次 概要

【Unity】Mathf.Clampの拡張メソッド

using UnityEngine; public static class IntExtensions { public static float Clamp( this int value, int min, int max ) { return Mathf.Clamp( value, min, max ); } } public static class FloatExtensions { public static float Clamp( this float v…

【Unity】UnityEditor.TextureUtilを使う

【Unity】NGUIのUISpriteに有効なスプライト名が設定されているかどうかを確認する拡張メソッド

using System.Linq; public static class UISpriteExtensions { /// <summary> /// 有効なスプライト名が設定されている場合 true を返します /// </summary> public static bool IsValidSpriteName( this UISprite self ) { var spriteName = self.spriteName; var spriteList …

【Unity】「UnityVS」をインポートしているプロジェクトはエディタ再生時にPlayerSettingsの「Run In Background」が自動でオンになる

「UnityVS」をインポートしているプロジェクトで OnApplicationPauseの動作確認をしようとした時に遭遇しました アプリのサスペンドレジューム時の動作確認をしたい時は 「UnityVS」をプロジェクトから削除する必要があるかもしれません Unity 停止時 Unity …

【Unity】UnauthorizedAccessException: Access to the path "Library\UnityAssemblies\UnityEngine.xml" is denied.

UnauthorizedAccessException: Access to the path "Library\UnityAssemblies\UnityEngine.xml" is denied. UnityVS を使用しており、かつ Visual Studio を開いている状態で 「Visual Studio Tools>Generate Project Files」を選択した時に遭遇 一度 Visual…

【Unity】LineRendererの頂点をVector3型の配列やリストで一括で設定できる拡張メソッド

using UnityEngine; public static class LineRendererExtensions { public static void SetPositions( this LineRenderer self, IList<Vector3> positions ) { self.SetVertexCount( positions.Count ); for ( int i = 0; i < positions.Count; i++ ) { self.SetPosi</vector3>…

【Unity】Plane.Raycastで一時変数を宣言する必要がない拡張メソッド

using UnityEngine; public static class PlaneExtensions { public static float Raycast( this Plane self, Ray ray ) { float enter; self.Raycast( ray, out enter ); return enter; } }

【Unity】スクリプトからUnityVS.OpenFileを実行するためのクラス

参考サイト様 Visual Studio Tools for Unity - Script opening with Unity 4.2

【Unity】Unityの.dllを逆コンパイルしたソースコード一式

MattRix/UnityDecompiled UnityのAPIがどのように実装されているのかを見ることができます

【Unity】無効なコンポーネントがアタッチされているかどうかを返す拡張メソッド

using UnityEngine; using System.Linq; public static class GameObjectExtensions { /// <summary> /// 無効なコンポーネントがアタッチされている場合 true を返します /// </summary> public static bool HasMissingScript( this GameObject self ) { return self .GetCompo…

【Unity】Unity 4.x で UnityEngine.Assertions を使えるようにするスクリプト

【Unity】リストがnullまたは空であることを保証する関数

using System.Collections.Generic; using System.Diagnostics; using UnityEngine.Assertions; public static class AssertUtils { [Conditional( "UNITY_ASSERTIONS" )] public static void IsNullOrEmpty<T>( this IList<T> self ) { Assert.IsTrue( self == nu</t></t>…

【Unity】リストがnullまたは空でないことを保証する関数

using System.Collections.Generic; using System.Diagnostics; using UnityEngine.Assertions; public static class AssertUtils { [Conditional( "UNITY_ASSERTIONS" )] public static void IsNotNullOrEmpty<T>( this IList<T> self ) { Assert.IsTrue( self !=</t></t>…

【Unity】各拡張子におけるアセットタイプ一覧

拡張子 アセットタイプ anim AnimationClip wav AudioClip mp3 AudioClip ogg AudioClip aif AudioClip aiff AudioClip xm AudioClip mod AudioClip it AudioClip s3m AudioClip hdr Cubemap cubemap Cubemap ttf Font otf Font dfont Font prefab GameObjec…

【greegdm01】「リアルタイムマルチプレイのタワーディフェンス『ポイッとヒーロー』のUnity5移行事例」メモ

GREE GameDevelopers' Meetup 01 - #greegdm01 発表資料 ポイッとヒーロー紹介 ポイッとヒーロー◆4人協力タワーディフェンスPokelabo, Inc.ゲーム無料 テーマ Unity4からUnity5 Unity5に移行した理由 iOSの64bit対応問題 Unity4.6よりUnity5のほうが対応が早…

【Unity】Sceneビューのグリッドの表示をオフにするエディタ拡張

概要 参考サイト様 [C#] unity3d Disable Grid - Pastebin.com 関連記事

【Unity】Sceneビューのすべてのアイコンの表示をオフにするエディタ拡張

概要 参考サイト様 "Uncheck all" in Gizmos menu in Scene view? - Unity Answers 関連記事

【Unity】Sceneビューのすべてのギズモの表示をオフにするエディタ拡張

概要 参考サイト様 "Uncheck all" in Gizmos menu in Scene view? - Unity Answers 関連記事

【Unity】メニュー付きの検索欄を表示するエディタ拡張

目次 概要 private string mText ; private int mSearchMode ; private void OnGUI() { var rect = new Rect( 0, 0, 200, 20 ); var searchModes = new []{ "ヒトカゲ", "リザード", "リザードン" }; mText = EditorGUIUtils.ToolbarSearchField( rect , mTe…