これからのゲーム開発はUnityエンジン!!
PS3からPSP,XBOX,iPhone,Androidと幅広いゲームの開発ができる「Unity」の開発用メモ。
しかも無料で使えます!
公式
フォーラム系
日本語ブログ/Wiki
- Radium Software
- ゲームの神の子 daiのキセキ
- ユニッコ – Unity3D初心者の日記
- 強火で進め
- DIZGID | POLYGON LOVE
- MURAKUMO.NET – Unity3D
- Unity(Unity3D)に関する情報を扱うWiki
- Unity 2ch Wiki – トップページ
- nakamura001 @ ウィキ – トップページ/Unity(Unity3D)
チュートリアル
- YouTube – bugzilla2001 さんのチャンネル
- 2010年9月あたりからUnityのわかりやすいビデオが。
- Unity – Documentation
-
このドキュメントは有志により翻訳されたもので、オフィシャルではありません。オリジナルのページはこちら。
This document is unofficially translated by users.Please see the original document here. - UNITY: 3D Platform Game
- 3DGame作成の公式チュートリアル
- Unity 3D Selfish Training
- はえたたきゲームのチュートリアル記事。サンプル有
- [Unity]用語解説? | iPhoneアプリをつくりんぐ
- Vector3、RigidBody、Transform、Mesh、Collider(Collision)、instantiate、Quaternion、Time.deltaTime、RayCast
- [Unity]基本的なJavaScriptコマンド集 | iPhoneアプリをつくりんぐ
- YouTube – TornadoTwins さんのチャンネル
- Richard Hart’s videos on Vimeo
- Unity for Flash Developers – Tutorial 1〜7
- iPhoneゲームを20分間で作る【メダルプッシャー編】 ‐ ニコニコ動画(原宿)
- 短時間でざっくり掴むにはコレが一番わかりやすいかも
GUI関連
- Unityの主なGUIパーツの使い方 – 強火で進め
- YouTube – Unity-Using GUISkin YOUTUBE
- GUISkinの基本的な使い方のチュートリアルビデオ
- ざんないプログラマァのiPhoneアプリ開発日記 Unity 3D グラフィカルボタン
- サンプル有り
【GUI Skin を利用する方法】
GUI Skin を作成して Custom Styles にボタンの数分スタイルを登録する。
それぞれのスタイルに、それぞれのテクスチャを指定するればよい。
実行はスクリプト GUI.Button でスキンのスタイルを指定する。
・GUI.Button
・GUI Skin
・テクスチャについて
PC の場合
Normal:通常の状態(初期状態)
Hover:マウスカーソルが上にある時の状態
Active:クリックしている状態
iOS の場合
Normal:通常の状態(初期状態)
Hover:タッチ状態から離した時
Active:タッチしている状態
※iOS での Hover
Hover 状態の時、他のボタンがアクティブになるまでこの状態が継続されるようだ。
これは最後にタッチしていたボタンを示すことができるが、それを望まない場合は Normal と Hover は同じテクスチャを指定する。 - Unityで2D描画物を扱う (Graphics.DrawTexture)
- GUI.DrawTexture or Graphics.DrawTexture
- sehm@メモ 3軒目 Unity iPhone4 Retina ディスプレイ対応:GUI 部分
- Screen.widthからサイズ指定。
- Reading 3DPlatformTutorial 3rd – だらだら?無味無臭?
- Adding iPhone Touch Scrolling to a UnityGUI ScrollView | MindTheCube
iOS関連
- Unity – Getting Started with iOS Development
- Unity (iOS)で画面の回転を封じる
-
これを防ぐための強力な方法として、AppController.mmを書き換えるというものがある。次の一行をコメントアウトすればいい。
//KeyboardOnScreen::Init(); - Unity (iOS)で言語設定を拾うことができない
-
これを正しく取得するにはプラグインを書く必要がある。
- Unityで作ったiOSアプリを60fpsで動かす – Radium Software
- Unityから出力されたソースのAppController.mmにある定数kFPSを60に変更する
- 【3Dゲームエンジン】Unity 2 | 801 | 2番街.net
-
iOS用のパフォーマンスTips読んでたら、加速度センサ使わないときはOFFにしろって書いてあってそのとおりにしたら明らかに早くなってわろた
UIKit連携
- UnityとUIKitの合成表示
- gitにコード有。これ使えれば、いろいろ捗りそう。
このサンプルプログラムでは、Unity画面の上にテキスト(UITextView)とボタン(UIButton)を重ねて表示している。インタラクションの確認のために、Unity側ではタッチ入力に対して黒い丸を表示している。
- Unityで日本語フォントを使う(モバイル編)
-
まず、日本語云々の前にいくつかの前提を確認しておこう。モバイル向けのUnityではフォントのダイナミックレンダリ
ングをサポートしていない。これはつまり、フォントはあらかじめビットマップ化しておく必要があるということだ。そしてそのビットマップは1枚の
alpha 8テクスチャに収めなければいけない。もし、使える文字を減らしてでもフォントを大きくしたい、という場合には、Masashi
Wadaさんの作られたSelected U3D Japanese Fontを使うといいだろう。こちらは同じM+
FONTSをベースとしていながらも、格納文字を教育漢字+αに限定することによって、25ピクセルで1024×1024に収まるよう調整されている。あ、そうだ。最後に一言。Unityのスクリプト内でUnicodeを使うにはエンコーディングにUTF-16を指定する必要がある。普段UTF-8を使っている人は注意が必要だ。
画面遷移
- FadeInOut – Unify Community Wiki
- SceneのFadeInOutの方法
- Unity Script Reference – Application.LoadLevel
- これを使ってScene切り替えを行う
外部読み込み
- Resources外部読みこみ
-
やっとFBXをResourcesフォルダーから出せたので、報告。(C#)
//外部FBXのスポーン
private GameObject obj;
string FBXFileName=”Corn”;
obj = Resources.Load(FBXFileName) as GameObject;
Instantiate(obj, Vector3.zero, Quaternion.identity);
obj.transform.localScale = new Vector3(100, 100, 100);
obj.name = “HelloCorn”;あとは、おまけ
画像
private Texture2D ImageTex;
string ImageFileName=”title”;
ImageTex = Resources.Load(ImageFileName, typeof(Texture2D)) as Texture2D;サウンド
private AudioClip mySound;
string SoundFileName=”bgm”;
mySound = Resources.Load(SoundFileName, typeof(AudioClip)) as AudioClip;シェーダ
private Material newMat;
string MaterialFileName=”stone”;
newMat = Resources.Load(MaterialFileName, typeof(Material)) as Material;
renderer.material = newMat; - sehm@メモ 3軒目 Unity : iPhone アプリリソースに AssetBundle ファイルを持つ方法
- Unity Script Reference – BuildPipeline.BuildAssetBundle
- Unity Script Reference – AssetBundle
- Load Asset Bundle in Editor – Unity Answers
- Unity – Loading Resources at Runtime
- Unity3D File Based Assetbundles on the iPhone ? Chris Danielson’s Blog
- AssetBundleのビルドとロード方法
- Unity asset streaming | netobrev
- Possible for one web player to load scenes created in different projects? – Unity Answers
- LoaderSceneでAssetBundleを読み込んでから、loadLevelを実行する。
- Build asset bundle .unity3d
- Asset Bundles failing to load (on iOS)
- Instantiate(www.assetBundle.mainAsset) cause EXC_BAD_ACCESS(SIGABRT)
- Strippingを使ってコンパイルするクラスの量を削減できるけど、AssetBundleを使うときはdummyの変数を作っておいて、読み込み側にAssetBundle内のクラスをコンパイルしておきなさいという話
-
There are several ways to deal with this problem:
a) Add dummy variables to your scripts that reference Types that are
included into your assetbundles and so preserve parts of Unity runtime
from stripping.
b) Include dummy scene into build that references all the Types that are included into your assetbundles.
開発TIPSなど
- ざんないプログラマァのiPhoneアプリ開発日記 Unity 3D ライセンスについて
- ざんないプログラマァのiPhoneアプリ開発日記 Unity 3D セーブデータ(1)
- セーブデータ管理の基本処理。サンプルリンク有。
設定保存に使えそう? - ざんないプログラマァのiPhoneアプリ開発日記 Unity3D Singleton
- Unity3D上でSingletonを実装する方法
- ざんないプログラマァのiPhoneアプリ開発日記 Unity3D Sound
- Unity3Dのサウンド処理の注意点
- UnityとC#とJavaScript – Radium Software
-
例えば、構造体(struct)をJavaScriptで書くことはできない。Vectorクラスなどのように、代入で値コピーが発生して欲しいようなデータ構造を作成するには、C#で書くしかない。AIなどもC#で書いた方がすっきりするだろう。
結局、UnityのプロジェクトにはJavaScriptとC#が混在することになる。とてもグロい状態だ。グロいプログラミングが好きな人にはたまらない。
- Unityプロジェクトのバージョン管理 – Radium Software
-
Editor Settingsの”External Version Control
Support”をenableした後に、Assetディレクトリだけをバージョン管理に入れればOKだ。他にセッティング関連のファイルがいくつか
Libraryディレクトリの中に存在するので、それもバージョン管理に入れるとなお良い。 - [Unity]使えるライブラリiTween | iPhoneアプリをつくりんぐ
-
主にオブジェクト操作に関するライブラリなんですが、
サンプルとかがかっこいいし、なかなか使いやすそうなので、
知らない方は是非試してみてください☆ - [Unity]基本的な衝突判定 | iPhoneアプリをつくりんぐ
- FramesPerSecond – Unify Community Wiki
- FPS表示用Script
- Unity Script Reference – Overview: Accessing Other Game Objects
- 他のゲームオブジェクトの参照取得方法3種類
- loaded assetbundle new scene – Unity Answers
- loadLevelしたあとに変数を保持したままに出来る方法
- [Unity] 無名関数とコルーチン
-
例えば「数秒待つ、ただし何らかの入力で短縮可能」なんてコルーチンを生成する関数を書いてみる。
- Game Center using Unity
- Unityのコードサイズと戦う
- 空のSceneでiOSBuildした際に、appファイルが13.9MBまで落ちることを確認
- iOS 4.3 App Rejected
-
apple rejected my build using iOS SDK 4.3 with Xcode 4.
I built the application again on iOS SDK 4.2 with Xcode 3.x and it got approved right away.
Something is wrong with Unity3D and iOS SDK 4.3 w/ Xcode 4
その他
- Unity3d Archive – Everyday 3D
- 3Dに強い海外ブログのUnity3Dカテゴリ
- GamePrefabs – Products
- プレハブ素材販売サイト
- Prime31 – Unity iPhone Plugins
- UnityのPlugin販売サイト
書籍
日本語版の書籍はまだなさそう・・・。
とりあえずこれが入門本。入門本だけだとアプリ開発はつらいかも。