読者です 読者をやめる 読者になる 読者になる

(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

エディタ実行中だけ開くウィンドウの実装【Unity】【エディタ拡張】


この記事でのバージョン
Unity 5.5.1f1


はじめに

今回はタイトル通り、エディタ実行中だけ開くウィンドウのご紹介!

イメージは以下の通り。


f:id:kan_kikuchi:20170222205516g:plain



再生ボタンを押した時に表示され、終了ボタンを押した時に非表示にされる感じです。


WindowWhenEditorExecuted

続きを読む

コンポーネントを重複してアタッチできないようにする 【Unity】【属性】

この記事でのバージョン
Unity 5.5.1f1


はじめに

このコンポーネントは一つのGameObjectに複数付いてたら困る!

うっかり付けられないようにしたい!

今回はそんな時に役立つ記事です。


DisallowMultipleComponent

続きを読む

独自のショートカットキー(ホットキー)を作成する【Unity】【エディタ拡張】


この記事でのバージョン
Unity 5.5.1f1


はじめに


エディタ拡張で便利な機能を作ったから、瞬時に呼び出せるようにしたい!

機能にショートカットキーを設定したい!

今回はそんな感じの記事です。


MenuItem

続きを読む

エディター上で選択しているオブジェクトを取得したり、任意のオブジェクトを選択したり【Unity】【エディタ拡張】


この記事でのバージョン
Unity 5.5.1f1


はじめに

今回はエディターでの選択オブジェクトに関する諸々の話です。

選択しているオブジェクトの情報を取得したい、任意のオブジェクトを選択したい

そんな感じの時に役立つはずです!


Selection

続きを読む

SpriteRendererで9Slice【Unity】

この記事でのバージョン
Unity 5.5.1f1


はじめに

今回はSpriteRendererで9Sliceをしてみようという記事です。

以下はイメージで、左がそのままスケールしたもの、右が9Sliceしてスケールしたものです。


f:id:kan_kikuchi:20170301122304g:plain


使用している画像は以下のものです。



なお、Unity5.6で追加される(されている?)公式のものではありませんのであしからず。





9スライスとは

続きを読む

OnDisableやOnDestroyをエディタを止めた時には実行しないようにする【Unity】

この記事でのバージョン
Unity 5.5.0p1


はじめに

MonoBehaviourには無効になったときに呼ばれるOnDisableと、



破棄される時に呼ばれるOnDestroyという関数があります。



なお、GameObjectを削除すると両方呼ばれます。

イメージとしては以下のような感じ。

using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {

  private void OnDisable () {
    Debug.Log("OnDisable");
  }

  private void OnDestroy(){
    Debug.Log("OnDestroy");
  }

}

f:id:kan_kikuchi:20170201101539g:plain


ただし、これらの関数はエディタを止めた時にも実行されてしまいます。


f:id:kan_kikuchi:20170201101807g:plain


今回はエディタを止めた時にこれらを実行しない方法のご紹介です!


OnApplicationQuit

続きを読む

Hierarchyの変更を検知する【Unity】【エディタ拡張】

この記事でのバージョン
Unity 5.5.0p1


はじめに

今回はHierarchyの変更を検知する方法のご紹介。

なお、エディタ上だけの方法なのであしからず


EditorApplication.hierarchyWindowChanged

続きを読む

timeScaleを無視してParticleSystemを再生させる【Unity】

この記事でのバージョン
Unity 5.5.0p1


はじめに

ParticleSystemはtimeScale変更するとそれに合わせて再生速度も変わるようになっています。


f:id:kan_kikuchi:20170118145634g:plain


ただ、残念ながらtimeScaleを無視して一定速度で再生するような設定はないようです。


Simulate

続きを読む

Windows向けにビルドしたらなんか音が変だった件【Unity】【Windows】【トラブルシューティング】

この記事でのバージョン
Unity 5.5.0p1


はじめに

タイトル通り、Windows向けにビルドし、実行してみたら、なんか音がおかしかった時の話です。


DSPBufferSize

さっそく原因ですが、AudioManagerの設定の問題でした。

なお、AudioManagerの設定はEdit->ProjectSettings->Audioから行う事が出来ます。


f:id:kan_kikuchi:20170108143308p:plain


この設定の中で、DSPBufferSizeがBest Latencyになっていたため

パフォーマンスが低下(音が劣化)してしまっていたようです。

Best Latency パフォーマンスの低下と引き換えにレイテンシを抑えます


f:id:kan_kikuchi:20170108143315p:plain


DSPBufferSizeは初期状態だとDefaultになっているので普通なら大丈夫ですが、

スマホ向けの時はそれだと音ズレする事があり、

Best Latencyにする癖がついていたため、問題が発生してしまいました。



なお、DSPBufferSizeをDefaultにした所、音が正常に発せられるようになり、

音ズレが起きるという事もありませんでした。



Rigidbody2DがSleepして衝突しなくなる問題【Unity】

この記事でのバージョン
Unity 5.5.0p1


はじめに

Rigidbody2Dはデフォルトの状態だと、

一定時間動かない場合はSleep状態となり、衝突を判定しなくなります。

なお、Sleep状態となると以下のようにCollider2Dの色が薄くなります。


f:id:kan_kikuchi:20170115145003g:plain


上記の例では二つのオブジェクトにRigidbody2DとCollider2Dを付け、

右のオブジェクトに以下のようなに衝突時にログを出すようなコンポーネントを付けています。

private void OnTriggerStay2D (Collider2D other){
   Debug.Log(other.gameObject.name);
}



Sleeping Mode

続きを読む