Unityな日々(Unity Geek)

Unityで可視化アプリを開発するための試行錯誤の覚書

2012-11-01から1ヶ月間の記事一覧

ベジェ曲線にそってオブジェクトを動かす

参考:Bezier Curve Unityは標準ではベジェ曲線を扱うクラスはない。そこで、デベロッパーネットワークの投稿にあったベジェ曲線のクラスを使ってみた。1.ベジェ曲線のクラス P0〜P3は制御点、関数GetPointAtTime( float t )で、曲線上の座標を取得できる…

親オブジェクトを取得する

これは基本かもしれないが、親オブジェクトを取得するには、childGameObject.transform.parent とする。つまり、"transform"が必要。たとえば、衝突してきたオブジェクトのコライダがあるオブジェクトの親オブジェクトにメッセージを渡す場合は次のようにな…

GUISkinを変更する

UnityのデフォルトのGUSkinは、Assetに実体がないため、カスタマイズできない。 "Built-in GUI Skin"をダウンロードし、このGUISkinをデフォルトに設定することで、カスタマイズが可能になる。なお上のパッケージのSkinにデフォルトで設定されているフォント…

書式を使って文字化する

String.format()関数を使えば、書式付きで数値を文字化できる。 String.Format メソッド (String, Object) (System)書式の中に"{"や"}"を入れたい時は、"{{", "}}"と2重化する。string.Formatの書式指定文字列に中カッコを入れる方法 - うっかりプログラミ…

Unityから連番画像を書き出す

画面のスクリーンショットはApplication.CaptureScreenshot(ファイル名)で取得する。 下の例は、スクリーンショットをループ(Update等)に入れて、動画を連番ファイルで書き出すサンプル。(出典:ScreenShotMovie - Unify Community Wiki) using UnityEng…

C#  値型・参照型、値渡し・参照渡し

次のサブクラスに対し、 using UnityEngine; using System.Collections; //Sub Class public class Sub : MonoBehaviour { public int a; }次のメインクラスがあるとする。 using UnityEngine; using System.Collections; //Main Class public class Main : …

C#でcoroutineを使う

javascriptでcoroutineを使う際は、 処理1 yield WaitForSeconds(2); 処理2 と、yiledをはさむだけでよい。C#の場合は、StartCoroutine/IENumearatorの組になるようだ。 public void endRecording(){ if(isFile){ titleScreen.endRecording(); // StartCor…

ポリゴン・メッシュを裏返す

参考:ReverseNormals - Unify Community Wikiモデルのポリゴン・メッシュの一部が裏返っている場合の修正。下の例は、水平面で上向きに揃える。 // ReverseMesh (Flip Mesh) // First Version 2015/06/02 by A.Y.@XOOMS // Last Update 2015/06/02 by A.Y.@…

Materialの色を変える

Materialの色は、(renderer.)material.SetColor("_Color", Color)で変更する。下の例は、materialをPublic変数として受け取り、指定したOn/Off時間で色を変えるもの using UnityEngine; using System.Collections; public class FlashingLight : MonoBehavio…

InputManagerの設定を再利用する

Unity - Inputを参考に。XBOX360用コントローラーはのアサインは、XBOX360コントローラを使う - Unityな日々(Unity Geek)に書いた。InputManagerの設定は、プロジェクトフォルダ-ProjectSettings-InputManager.assetファイルにある。このファイルをコピー…

日付と時間

日付と時間の取得は、DateTimeクラスを使う。DateTime Structure (System) DateTimeは.NETクラスのため、Using System; (jsは、import System;)が必要。 using System; public class TestTime : MonoBehaviour { void Start () { DateTime thisDay = DateTi…

シーンを再スタートする

まっさらの状態から始めたい場合は、Application.LoadLeveo(0)を使う。 たとえば、ESCキーでリスタートしたい場合 if (Input.GetKeyDown(KeyCode.Escape)){ Application.LoadLevel(0); }