Unity 2ch Wiki

Tips

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

アセット


インポート可能なファイル形式は→Asset Importing参考のこと。

3Dモデル

Lightwave3DからFBXファイルでボーンアニメーションを付けたオブジェクトをエクスポートする際の制限事項。


Blenderからのインポート方法

  • Blender2.49bを利用し、FBXエクスポータで出力したものをインポートする方法をお勧めします。
  • Blender2.5の.blendやFBXエクスポータで出力したものはインポートできません(2010/4/7現在)
  • インポートされるデータは以下になります(2010/4/7現在)
    • All nodes with position, rotation and scale. Pivot points and Names are also imported.
    • Meshes with vertices, polygons, triangles, UVs, and normals.
    • Bones
    • Skinned Meshes
    • Animations
  • ※.blendを直接インポートできますが、内部的にBlenderのFBX変換を利用してインポートが行われます。
  • ※この方法ではIPO周りが読み込まれませんので、FBXエクスポータで出力してインポートするのが良いようです。(→参考


SketchUp(フリー版)からのインポート方法

SketchUpの.kmz形式の実体はzipファイルであり、COLLADA形式(.dae)のモデルを含んでいます。拡張子を.zipにリネームしてモデルを抽出すればUnityにインポート可能です。

ゲームオブジェクト



GUI


画面全面に画像表示

GUI.DrawTexture()を使い、GUIレイヤにテクスチャを表示する方法で実現します。
やり方としては下記のスクリプトをカメラに割り当て、プロパティbgに画像を設定します。
public class NewBehaviourScript : MonoBehaviour {
	public Texture2D bg;
	
	void OnGUI () {
		GUI.DrawTexture(new Rect(0,0, Screen.width, Screen.height), bg);
	}
}

なお、ゲームオブジェクトの背面に表示するにはPro版でないとできないようです(→参考


日本語表示

16 名前:名前は開発中のものです。[sage] 投稿日:2009/11/19(木) 15:05:58 ID:xSzD3fum
日本語をラベルにしたボタンを表示できたので記念パピコ

日本語のTTFファイルをアセットに追加した後、
スクリプトでpublicなGUISkinを定義したらそれがアセットに自動追加されるから、
インスペクタで各フォームアイテムのデフォルトフォントとしてさっきのTTFを指定したら行けた

ちなみに公式ドキュメントはここ
ttp://unity3d.com/support/documentation/Components/class-Font.html

追加情報:
Unity3.0ではttfをアセットに含めたり、独自のGUISkinを定義したりすることなく日本語表示できる。(上の情報はバージョンが古いか、iPhone版とかの情報なのかも)
ただし、文字コードに気をつける必要あり。セットで付いてくるテキストエディタ(UniSciTE(Windows版)/Unitron(Mac版))はいずれもデフォルトのエンコードがUTF8だと思うので、そのままだとでない。
Windows版だと
SJIS ○ (ただし、Inspector上だと文字化け。ゲーム画面では正しく表示される。UniSciTEでは書けない)
UTF8 × (Inspector上では正しく表示されるが、Monoが文字列リテラルの終了を正しく認識できず、スクリプトがコンパイルできない)
UTF8 BOM ○
UCS2 LE ○
UCS2 BE ○
MacOSX版だと
SJIS ×
UTF8 × (Inspector上では正しく表示され、コンパイルも通るが、UnityGUIでは?に置換されて表示されてしまう)
UTF8 BOM 不明 (手元にMacでUTF8 BOMを書けるエディタがなかった)
UTF16 ○
UCS2 LE 未検証
UCS2 BE 未検証

UCS2 BEはUTF16互換なはずなので、Macとクロスプラットフォーム開発したい人はスクリプトをUTF16(UCS2 BE)で現状統一する必要がある。

スクリプト


  • スクリーンショット保存

  • 画面上のクリックした場所にあるオブジェクト名を取得
//C#
void Update () {
	if (Input.GetMouseButtonUp(0)) {
		Ray clkRay = Camera.main.ScreenPointToRay(Input.mousePosition);

		RaycastHit rh;
		if (Physics.Raycast(clkRay, out rh)) {
			Debug.Log("hit object name: " + rh.transform.root.name);
		}
	}
}


その他


  • ショートカット一覧