ゲームブートキャンプ4日目
ねんがんのどようび 16:00-19:00,20:30-
今日やること
3画面作成
- スタート画面
- メイン画面
- ゲームオーバー画面
スタート画面
- 背景を白に
- CMD+S -> シーンの保存 StartGameScene
- GameObject -> CreateEmpty
- AddComponent -> Script -> StartGameScene (C#)
MonoBehaviourについて
- Start
- はじめに1度呼ばれる
- Update
- 毎フレームの描画で呼ばれる
試しにログを仕込む
void Update () {
print ("Update");
}
わかりやすい - http://habu-st.com/blog/2011/10/unity_monobehaviour/
スタートボタンを配置
// Update GUI
void OnGUI() {
if (GUI.Button(new Rect (100, 100, 100, 20), "Start")) {
print ("Start Button Pressed");
}
}
MonoDevelopがタブインデントなので、スペースに変更 - http://d.hatena.ne.jp/shinriyo/20120608/p1
ボタンを真ん中に配置する.
// Update GUI
void OnGUI() {
const int btnWidth = 100;
const int btnHeight = 20;
int btnLeft = (Screen.width - btnWidth) / 2;
int btnTop = (Screen.height - btnHeight) / 2;
Rect btnRect = new Rect(btnLeft, btnTop, btnWidth, btnHeight);
if (GUI.Button(btnRect, "Start")) {
print ("Start Button Pressed");
}
}
ゲームタイトル
// Draw Label
void DrawLabel () {
// rect
Rect rect;
{
const int offsetHeight = -40;
const int width = 200;
const int height = 40;
int left = (Screen.width - width) / 2;
int top = (Screen.height - height + offsetHeight) / 2;
rect = new Rect( left, top, width, height );
}
// font
GUIStyle style = GUI.skin.GetStyle("Label");// new GUIStyle();
{
// font color
GUIStyleState state = new GUIStyleState();
state.textColor = Color.gray; // new Color(10, 10, 10);
style.normal = state;
// font size
style.fontSize = 20;
// alignment
style.alignment = TextAnchor.MiddleCenter;
}
GUI.Label (rect, "BANANA HANTER", style);
}
Skinでまとめる
Assets -> Create -> GUISkins
GUISkinをGameObjectに適用する方法がよくわからない。。。
GameObject->Script->MySkinで対象のスキンを選択でいけた!
美咲フォントを適用してみる
いい感じ
ボタンをカスタマイズ
NGUI購入 Assets -> NGUI -> Create 2D UI
このチュートリアルビデオがわかりやすい http://www.youtube.com/watch?v=B66xhIvYF00
- 1:48- ボタンの追加
- 10:58- ボタンにエフェクト追加
ボタンのフォントの変更方法よくわからん、、 NGUI->OPEN -> Font Maker type: dynamic Source: Open-Sans Regular
http://caitsithware.com/wordpress/?p=78
...
スタート画面完成
いろいろあってこんなんになりました。
ゲームシーン
シーンを結びつける方法
ビルド設定に対象のシーンを追加 - File -> Build Settings -> Add Current
ゲームスタート画面のButtonに対してScriptを追加。 OnClick内にビルド設定に追加したシーンを記述
void OnClick() {
Application.LoadLevel ("MainGameScene");
}
一定時間後に遷移
void Start () {
Invoke("GameOver", 5); // 5 sec
}
void GameOver () {
Application.LoadLevel("GameOverScene");
}
ゲームオーバーシーン
トップ画面とほぼ同様.
まとめ
- 3画面側だけ作成
- NGUIべんりー