Upload
masato
View
178
Download
4
Embed Size (px)
Citation preview
Unityとは
ゲームエンジン;ゲーム開発に必要な機能が用意されたソフトウェア
PCやスマートフォン、ゲーム機など数多くの環境に出力できる
環境固有の部分を除けば”Write Once, Run Anywhere”できる
この特徴からゲームとは関係のないソフトウェアの開発に使われることも
開発に使う言語はC#かjavascript(もどき)
他のユーザーが作成したコンテンツを購入できる”Asset Store”がある
条件を満たせば無料で利用可能
プログラマ的観点
「どこでも動く」のタネはMonoとXamarin
Monoとは.Net Framework(C#におけるJavaランタイム)のオープンな互換環境
MonoはWindowsに加えてMacやLinuxでも動く
XamarinとはMonoをiOSやAndroidで動かす環境
最近の動向
最新バージョンのUnity5が今月発表された
無料で使えるPersonal版の機能制約がほぼなくなった
従来は高度な描画やプラグインなど一部機能が有料版限定だった
描画エンジンが一新されてリアルな絵が出せるように
javascriptとWebGLを使ったブラウザ動作が可能に
従来は専用プラグインを使って動作
日本語マニュアルの内容が英語版にほぼ追いついた
画面構成
Project : ゲームで使うアセットの一覧
Hierarchy : シーン内のゲームオブジェクト一覧
Inspector : ゲームオブジェクトの設定を編集
Scene : シーン内でのゲームオブジェクトの配置
Game : ゲームを実行した時に見える画面
Unityで使う基本概念
アセット : ゲームで使う画像や音、スクリプトなどのリソース
シーン : ゲームを構成する1単位、「ステージ」や「画面」にあたる
ゲームオブジェクト : シーンを構成する1単位、キャラクターやUI要素など
コンポーネント : ゲームオブジェクトに機能や性質を与えるもの
基本的なコンポーネント
Transform : ゲームオブジェクトの座標を表す、全てのゲームオブジェクトが持つ
Camera : ゲーム画面を見るための視点
Sprite Renderer : 2D画像を描画する
Rigidbody2D : 剛体、物理的挙動を与える
Collider 2D : ゲームオブジェクト同士の接触を検知する、色々な形状がある
Script : スクリプトファイル
Audio Source : 音を鳴らす
スクリプトの基礎
コンポーネントとして使うスクリプトはMonoBehaviourを継承する
コンポーネントとして使わないなら継承する必要はない
1ファイル1クラス
コンストラクタの代わりにStartメソッド
毎フレーム実行されるUpdateメソッド
スクリプトにおけるthisはそのスクリプト自身であってGameobjectではない
gameObjectプロパティで参照可能
他のコンポーネントを取りたいときはGetComponentメソッドを使う
簡単なUI
Unity4.6で導入されたuGUI(またはUnityUI)
画面内の端や中心からの相対座標により位置を決める方式
UI要素はCanvasというコンポーネントを参照する
Button : クリック時にシーン内のオブジェクトの持つスクリプトの関数を実行できる
Prefabとオブジェクトの動的生成
Prefab : ゲームオブジェクトを使いまわすための仕組み、アセットとして記録される
スクリプトからゲームオブジェクトを生成するにはInstansinate
new PlayerInput()などとやってもスクリプトが作られるだけ
生成するオブジェクトはシーン内から取得することもできるが、Prefabを使うこと推奨
ゲームオブジェクト、厳密にはtransformコンポーネントは親子関係を持てる
子オブジェクトは親の移動に追従する
スクリプトで使えるもの
現在Unityが使っているMono 2.0は.Net 3.5に相当する
使えるもの : LINQ, Lambda式, var
使えないもの : Task, await/async, dynamic, HttpClient, Tuple
.Net3.5でも一部の機能は使えないことがある
使えるライブラリ
Unityにはプラグイン機能が搭載されている
.Netのアセンブリファイルなら多くの環境で共通して使える
WindowsならC++などで書かれたDLL(32bitか64bitかに注意)
Macなら Loadable Bundle?
Androidならjar
iOSならStatic Library
使いこなせると便利なもの
アニメーションシステム : 単なるアニメーションだけでなく、時間変化するものには大抵使える
コルーチン : 普通に書くと面倒な「0.1秒待ってからこの操作を行う」というコードが簡単に書ける
Visual Studio Tools Unity : 普通のVisual Studio開発のように高機能なデバッガが使える、IntelliSenseも効く
調べ物をするときの注意
Unityはバージョンアップで結構変わっているため古い情報は使えない
GUIなら OnGUI とスクリプトに書いているのは古い
アニメーションならAnimation Controllerを使っていないのは古い
3Dグラフィック系は最新版で色々変わったので注意
会社にある参考書籍
『 UnityゲームUI実践ガイド』 : uGUIの使いかたが詳しく書かれている
『 Unityではじめる2Dゲーム作り徹底ガイド』 : 横スクロール2Dアクションを作る詳しい解説、Unity初心者向け、アニメーション機能の使いかたが分かりやすい
O’ReillyのUnity本 : 古めの本なので注意(読んでない)