狠狠撸

狠狠撸Share a Scribd company logo
初めてのUnity
2016/5
Unityとは?
?ゲーム開発環境
?Unityそのものは無料で入手可能(一定以上の収益を持つ企業は有料)
?ライセンスは「ユーザ単位ライセンス」
?マルチプラットフォーム対応と汎用性の高さから、ゲームだけでなく、
ウェアラブルやVRなど、最近の新技術の開発手段としても注目されている
?Asset Storeというマーケットがあり、開発者が機能追加できる
マルチプラットフォーム
Windows,Mac,Linux,iOS,Androidなど、およそ一般的なプラットフォーム向け
の実行ファイルを生成可能
WiiU,PS4など、家庭用コンソール向けにも出力可能だが、特殊な契約が必要
(一般開発者は原則契約できない)
?Unityの基本機能は意外に少ない。
→アセットという形で機能追加ができる。
(eclipseの「プラグイン」みたいなもの)
?Unity Asset Store というサイトで、誰でもアセッ
トの売買が可能(無料もある)
?Asset Storeには、Unityか
Webブラウザでアクセス可能
(アセットのインポートはUnity
のみ可能)
アセットとは(1/2)
アセットの種類は多様。やりたいことはだいたい揃っている
アセットとは(2/2)
【動き制御】
【状態制御】
【モデリング】
开発时の罢颈辫蝉
基本的な考え方(1)
Scene View
Game View
Hierarchy View
Project View
空間構築用
シーン実行時に
表示される画面プレビュー
空間内に配置されている
オブジェクト一覧
準備しているオブジェクト、
スクリプト、ファイル一覧
Viewの並びは変更可能
基本的な考え方(2)
?Unityはシングルスレッド
?開発空間上(SceneView)に配置したオブジェクトに
スクリプトをアタッチすることで、プログラム制御ができる
?単位時間にオブジェクト毎のスクリプトが次々呼ばれ、結
果的に処理が並行して進むように見える
?特殊APIの中に処理を書くのが基本
(C言語のmainや、Android(Java)のOnCreateのような関
数を、開発者が使うことはない)
プログラマ向け
参考:特殊APIの例
Void Awake(){
}
Void Start(){
}
Void Update(){
}
Void FixedUpdate(){
}
Void LateUpdate(){
}
シーン実行時、オブジェクトが生成される前に
1回だけ呼ばれる。
シーン実行時、オブジェクトの初期化時に呼ばれる
他オブジェクトの情報を取得するGetComponent
は、この中で呼ぶとよい
シーン実行時、毎秒50回程度呼ばれる。通常処理
を呼び出すときに使う(回数は環境依存)
シーン実行時、固定回数呼ばれる。物理エンジン
処理を呼び出す時に使う(回数は環境非依存)
シーン実行時、Updateの後に呼ばれる。
(普段使わないので詳しくはわかりません。。)
プログラマ向け
参考:Updateの呼ばれる回数
コンピュータの環境やCPU使用状況によって、1秒間に
呼ばれる回数は変わる
基本的な考え方(3)
?プログラム用言語としては、C#とUnityScript(Javascript
ベース)があるが、最近はC#での記述の方が主流(と思われる)
?変数宣言には、int,?oat,enumなど、他言語と同様の型が
ある。それ以外に、コンポーネント型でも宣言ができる
?コンポーネント型は、他クラスの名前そのもの。他クラスに
アクセスするときは、そのクラスのコンポーネントを取得する
手順が必要
プログラマ向け
基本的な考え方(4)
<コンポーネントにアクセスする方法>
プログラマ向け
public class Button : MonoBehaviour {
private CalledCount cc;
void Start () {
cc = GameObject.Find("CalledObjTest").GetComponent<CalledCount>();
}
}
public class CalledCount : MonoBehaviour {
public void CheckTime(){
flag =true;
}
}
Button.cs
CalledCount.cs
/*CalledCountという型で宣言*/
/*CalledObjTestにアタッチされたCalledCountを取得*/
Project Viewの中では、いくつかの例外を除いて、オブジェクトを移動させても
よい。
ただし、Pluginsフォルダ、その他指定があるフォルダはダメ
(経験的に、取得したアセットは、初期ファイルパスから移動しない方がよい)
基本的な考え方(5)
使ってみる
UIを並べて、マルチプラットフォーム出力してみる
マルチプラットフォーム出力の例
iPhone
UWP
Windows10 Desktop
終わりに
Unityは、同一言語で色々なOS向けにビルドができる
ゲーム開発環境なので、表現も多彩
(ただし基本機能は意外と少ないので、アセットの導入がお勧め)
Unityについて調べたことをブログにまとめているので、ご覧ください。
http://magicbullet.hatenablog.jp

More Related Content

Unity information for new developer