20
Unity講習会 2015/03/27

Unity講習会

  • Upload
    masato

  • View
    178

  • Download
    4

Embed Size (px)

Citation preview

Unity講習会2015/03/27

概要

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要素など

コンポーネント : ゲームオブジェクトに機能や性質を与えるもの

実習

プロジェクトの作成

2Dを選ぶ

アセットのインポート

Project画面にドラッグ・アンド・ドロップするか

直接ファイルを入れるか

基本的なコンポーネント

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本 : 古めの本なので注意(読んでない)