【unity入門】ゲーム開発だけじゃない、Unityで出来ること

18/12/02 14:53:31     19/05/05 16:17:57

Unityのイメージ

Unityは基本的にゲーム開発用の環境として認識されていますが、もともとゲーム専用の環境というわけではありません。たしかに2Dにも3Dにも対応していてなおかつゲーム開発用のインターフェースをGUIで呼び出すことが可能なのですが、それはUnityの一部の機能に過ぎません。

またゲーム用のグラフィック等はWebシステムにも流用可能で、簡単に高機能なグラフィックを実現できます。つまり、ゲームだけではなくグラフィックのクオリティが高いWebシステムを開発したい方にもUnityは最適なのです。

それでは、具体的にUnityで何ができるのかを解説していきます。

Unityの特徴

まずUnityの大まかな特徴として以下のようなものが挙げられます。

  • マルチプラットフォームに対応している
  • アセットストアが充実している
  • GUIで操作できる

以上のような特徴があります。

まずマルチプラットフォームについてですが、これは主にOSの話です。Windows、Mac、Linux、iOS、Android、と様々なOSに対応しています。最近はソーシャルゲームに注目が集まっていますが、パソコン用のオンラインゲームなどでもUnityはフル活用されています。

次にアセットストアについてですが、アセットストアとはユーザーが独自に作成したプログラムを部品として販売するものです。この仕組みによって自分がプログラムを販売することも可能ですが、購入して機能拡張することも可能です。

また無料で提供してくれているユーザーも多いので、有効活用しましょう。すべて自分の手作業だけで作るのも勉強になりますが、便利なツールを使用することも勉強になります。

ソースコードをまったく見ずに使っているだけではたしかにあまり成長できないのですが、ソースコードを見て参考にしつつツールを利用すれば、凄腕プログラマーが開発したツールを自分のスキルアップに役立てつつ有効活用することができます。

GUI操作については、プログラミングなしにグラフィックを動かすことなどが可能です。もちろん細かい部分は自分でプログラミングして書き換える必要がありますが、大まかな動作はもともとツールとして提供されています。

仮にマニアックな動作を求めるとしても、既存のツールを書き換えて使用することが可能なので、そういった意味でも利便性が高いです。ちなみに、Unityで使用できるプログラミング言語はJavaScript、C#、Booの三つです。

Booについては初めて聞く方も多いかと思いますが、言語仕様はPythonに近いです。

トライ&エラーによる開発

Unityの特徴は上記の通りですが、具体的な開発の進め方としてトライ&エラーでの開発が進めやすいというメリットがあります。その理由は、Unityがもともとゲーム開発用の環境だからです。

ゲーム開発の経験がある方はわかるかと思いますが、ゲーム開発はその他のシステムに比べてコードを書いてすぐに挙動を試すことが多いです。ゲーム開発がメインのUnityでは書いてすぐに実行して修正しながら開発することを前提としているため、ほぼゲームの実機そのまま操作していくイメージになります。

ゲームの場合挙動を確認しながら作業しないと完成しないのですが、Webシステムでもトライ&エラーで開発を進めるメリットは大きいです。挙動の推測が付く部分はどんどん記述を進めれば良いのですが、挙動の詳細が気になる部分はトライ&エラーで進めていくと良いでしょう。

スクリプトでの処理実行

アセットのインポートやビルドはGUIからでも可能ですが、スクリプトから処理を記述して実行することも可能です。

たとえば、C#でAndroid、iOSをビルドする処理は以下のようになります。

using UnityEditor;
using UnityEngine;
using System.Linq;
public class NewBehaviourScript
{
     [MenuItem("Build/Android & iOS")]
     public static void Build()
     {
          BuildPlayer("Android.apk", BuildTarget.Android, BuildOptions.None);
          BuildPlayer("iOS", BuildTarget.iPhone, BuildOptions.None);
     }
     static void BuildPlayer(string location, BuildTarget target, BuildOptions options)
     {
          Directory.CreateDirectory("Build");
          BuildPipeline.BuildPlayer(GetLevels (), "Build/" + location, target, options);
     }
     static string[] GetLevels()
     {
          return EditorBuildSettings.scenes.
               Where(scene => scene.enabled).Select(scene => scene.path).ToArray();
     }
}

上記ソースコードの内容はGUIでも実行可能ですが、このようにスクリプトを記述して実行することも可能です。

画面の機能

Unityで実際にソースコードを記述する際は、四つの画面に分かれています。

具体的には、「Hierarchy」「Scene」「Project」「Inspector」の四つです。まずHierarchyはSceneに配置するオブジェクトを一覧表示する部分です。

次にSceneはオブジェクトを配置する場所で、実際に開発を進める場所でもあります。Projectはオブジェクトに付ける色や重力などの要素が置かれる場所です。Inspectorはオブジェクトの位置を調整するものです。

Event Triggerの使い方

Unityはグラフィックを動的に実装できることに強みがありますが、その結果Event Triggerの使い方が重要になります。Event Triggerとはユーザーが何かアクションを起こした際に発動させるためのコードです。

ゲームだと基本的にユーザーが何か操作をした際に動くプログラムがWebサービスよりも多いので、Event Triggerが充実しています。具体的には以下のようなコードが存在します。

PointerEnter
ポインターがオブジェクトに乗ったとき
PointerExit
ポインターがオブジェクトから離れたとき
PointerDown
ポインターがオブジェクトを押下したとき
PointerUp
ポインターを押下状態から離したとき
PointerCheck
オブジェクト上でポインターを押下し、同一のオブジェクト上で離したとき
Drag
オブジェクトがドラッグされている間
Drop
ドラッグされてきた他のオブジェクトが、範囲内でドラッグ解除されたとき
Scroll
オブジェクトの範囲内でマウスホイールスクロールをしたとき
UpdateSelected
選択中のオブジェクトで毎フレーム発生
Select
オブジェクトが選択されたとき
Deselect
選択中のオブジェクトで、選択状態が解除されたとき
Move
キー入力による移動イベント(左、右、上、下など)が起こったとき
InitializePotentialDrag
ドラッグ対象が見つかったとき
BeginDrag
ドラッグを開始したとき
EndDrag
ドラッグが終了したとき
Submit
サブミットボタン(リターンキーやスペースキー)が押されたとき
Cancel
キャンセルボタン(エスケープキーなど)が押されたとき

Unityはゲーム以外のシステムでも幅広く利用されていますが、基本的にはゲーム開発がメインの環境です。

そのため、ゲームに使えるツールやコードをなるべく活かすと他のシステムでも高い機能性を実現できます。

Unityのフリーランス案件情報をチェック

Unity関連のフリーランス案件の一覧はこちらのページにてご確認ください!

→Unityの案件情報一覧

Unity関連記事
1, 【unityのフリーランス求人・案件情報】エンジニア需要や開発単価、未経験でもいける?
2, (この記事)【unity入門】ゲーム開発だけじゃない、Unityで出来ること
3, UnityでMMDモデルを自由自在に動かしてみよう!
4, Unityでオブジェクトを回転させる方法をわかりやすくまとめました
5, Unityで簡単にアニメーションを作成する方法をまとめました
6, Unity adsを使って簡単に広告を導入しよう
7, Unityのパーティクルを使って演出できるエフェクト例
8, Unityのtransformを使ってオブジェクトの座標や回転を操作する
9, Unityのコルーチンとは?使い方をまとめました
10, Unityのアセットストアの上手な使い方
11, Unityのアニメーターを簡単に作成する方法まとめ
12, UnityのShaderの解説と使い方まとめました
13, Unityのrigidbodyを使って物理演算を導入してみよう
14, Unityを使って半日でFPSゲームを作ってみよう

人気記事

編集部おすすめ記事

この記事を読んだ人はこんな記事を読んでいます

案件探しやフリーランスになるための相談する