C#
みなさんは、シーン名の指定をするときにどうしてますか。直接文字列で指定するのがよくあるパターンですが、この場合、主に2つの問題点があります。 タイプミスによりシーン名の指定を間違えても、実行するまでエラーに気づかない シーンの設定が変わるなど…
我々が普段Animatorを作成するときは、まずアニメーションさせたいオブジェクトを選択してAnimationウインドウからCreateを選んで、AnimationClipを追加していきますが、 自分の場合、Parameterを追加して、Transitionを設定して、HasExitTimeのチェックを外…
↓こんなのをつくります。続きからどうぞ (画像はFurball 2Dからお借りしました)
この記事はさいたまげーむす Advent Calendar 2016 4日目の記事です。 UnityというよりはC#ですが… string配列の0番目を除いた1番目以降を可変長引数のメソッドに渡し、それぞれの型を復元したいケースがありました。 このとき、一度 List<object>に入れてから渡して</object>…
この記事は Unity Advent Calendar 2016 3日目の記事です Unityは2つとも満員で、さすがに盛り上がってますねー。自分は普段縁がないようなWeb系やサーバーサイドのアドカレをぼんやり眺めるのが好きです。同じプログラミングでもかなり世界が違うものだなと…
今度は、これを作ってみます。
Transformをこのようにする方法を紹介します。
boolの配列って普通こうなりますよね。 それを… こうすると見やすくありませんか。これを紹介します。
何かのクラスを[Serializable]してインスペクタに表示させるとき、そのままだとこうなりますよね…。 これを… こう表示できたらカッコよくありませんか?(省スペースにもなりますし。)これのやり方を紹介します。
続きからどうぞ。
github.com を実装するときに調べたものです。 関数オブジェクトを使うときに、使える候補を自動で列挙する役割があります。
Unityでの開発では、transform.positionやcolorの要素の一部だけを変更したいことがよくありますが、C#ではtransform.position.x += 10;やcolor.a = 1;などとするとエラーになってしまいます。 JavascriptではできるのになんでC#ではできないのか、とずっと…
ボタンなどのUIの選択で、マウスカーソルを乗せるとおっきくなるのありますよね?あれを実現します。
おとといのスクリプトをもとに、ColorBlockについても同様のことができるようにしてみました。パラメータを指定してApplyボタンを押すとColorBlockを持ってる(=Selectableクラスを継承している:Button, Toggle, Slider, Scrollbar, DropDown, InputField)の…
TextのBest Fitが利かない Horizontal/Vertical OverflowがそれぞれWrap/Truncateになっている必要がある uGUIのTextのタッチ/クリック判定 直接はできないので同じサイズ(または子要素にしてanchorがstretch/stretch)のButtonなどで対応する RectTransfor…
テキストや画像に色のグラデーション効果を付加する uGUIでグラデーション、色合成を行うUIエフェクト オプションなど、複数のシーンから呼ばれる可能性のあるシーンの取り扱い Application.LoadLevelAdditive()でシーンを読み込むことで、 そのシーンのGame…
ショートカット Ctrl+Shift+A = Add Component Ctrl + 数字キー = 対応するウィンドウにフォーカスする。 特にCtrl + 3(インスペクター)とCtrl + 4(ヒエラルキー)が利用頻度が高い。 スライスしたスプライトを動的に変更 testという画像をスライスして生成さ…
Panelのクラス PanelはText, Button, Sliderなどと違ってそれ自身のクラスを持っていないため、 スクリプトからアクセスするときはRectTransformで受け取る。 スプライト画像の比率を保持 例えばPanelの子要素にImageを入れてRectTransformのアンカーをスト…
スマートフォン向けゲームのUIのまとめ http://gameui.matme.info/blog/ 車がハングしたときのレスキュー処理 ①タイヤがひとつも接地していないことと②車がほとんど動いていないことの2つの条件を満たしたときに車をスタート地点にリスポーンさせる。 [Seria…
Start()などの戻り値 MonoBehaviourの関数は戻り値をvoidではなくIEnumeratorにしても動作する。 List<>の内容を文字列化する(C#) List<Object> list; list.ToString(); とすると、"System.Collections.Generic.List 1[System.Single]"なる文字列が取得され、意図と</object>…
サーバーを立てずにオンラインランキング機能の実装 niftyのクラウドを利用する場合 http://mb.cloud.nifty.com/doc/current/tutorial/tutorial.htmlの左側のカテゴリのプルダウンメニューから「Unity」を選択したのち「SDKダウンロード」からダウンロードし…
衝突した場所にParticleSystemを生成 public void OnCollisionEnter(Collision coll) { var p = Instantiate(collParticle, coll.contacts[0].point, Quaternion.identity) as ParticleSystem; Destroy(p.gameObject, p.duration); } 下からも水面が見えるよ…
「オブジェクトを生成して1秒後に削除」を簡潔に記述する Destroy(Instantiate(yourObj).gameObject, 1); ステータスバーを表示 Edit > Project Settings > Player > Resolution and Presentation > StatusBarの Status Bar Hiddenをオフにすることで、画面…
Unityでのシングルトンの例 public class SingltonExample : MonoBehaciour { public static SingltonExample instance; void Awake() { if(instance != null) { // すでに生成されていれば新しいインスタンスは破棄する Destroy(gameObject); } else { // …
Staticにできるオブジェクト コライダーがついていてRigidbodyがついていないオブジェクトは動かないオブジェクトと考えられるので、Staticにすることでパフォーマンス向上が見込まれる。 オブジェクトプール Instantiate()はUnityで最も遅い関数のひとつで…
ミニマップ 上空から撮影するカメラを用意し、AudioListenerなどカメラ以外のコンポーネントを削除、 Clear FlagsをDepthOnlyにしてDepthをメインカメラより大きく、ProjectionをOrthographicにし、 ViewportRectとSizeを適宜調整することでミニマップが表示…
続いたので続けます FixedUpdate()を使うとコマ落ちするように見える場合 Edit > Project Setting > Time の Fixed TimestepがFixedUpdate()が呼ばれる間隔になっている。 デフォルトでは0.02になっているが、これでは位置の更新が50FPSなので、この値を小さ…
ネット上にある情報は黒いテクスチャが必要だったり、フェードアウトとシーンの遷移が結びつきすぎていたりと、使いやすいのが見つからなかったので自作しました。 こちらからスクリプトがダウンロードできます。 github.com 使い方: 使い方が大幅に変わり…
今回でUnityメモシリーズはいったんお休みになるかもしれません。 プレイヤーを追従するカメラ プレイヤーのGameObjectの子オブジェクトにメインカメラを置く。 uGUIのOnClick()に適用可能な関数 戻り値はvoidで、引数を1つまでとることができる。 複数の引…
スマホでのゲーム画面の回転を縦と上下反転のみに制限する ProjectSettings > Player で、androidかiPhoneを選択して Resolution and presentation から設定できる。 端末を回転させた際の画面の向きを固定する (これを設定すると、ChromeTVと互換性がなく…