Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unity開発準備 勉強会

Unity開発準備 勉強会

KINDAI Info-Tech HUBに向けた勉強会資料です。

UnityにHello worldしたあと、もうちょっと凝ってゲームを作ってみたい、チームでゲームづくりを始めたい、だけど、やり方がわからない。

といった人に向けた内容です。

Unityにおける開発の手順や設計の方法の一案を提示します。

Keita Sanefuji

April 19, 2024
Tweet

More Decks by Keita Sanefuji

Other Decks in Programming

Transcript

  1. Unity開発準備 勉強会 <author name = ‘さねふじ けいた’ grade = ‘24卒’

    class = ‘OB’> <contact discord = ‘sane21.’ github = ‘sane21’ > <!-- 急な開催で会社に許可をとってないので所属は非公開で! --> <title> </title>
  2. なにを作りたいのか 決めること • ターゲット • 打ち出す強み • 既存品との差別化 • かかるコスト

    • 得られるリターン など 企画 なぜ作るのか 誰のためのどんなゲームか ブレない軸を持てる 道に迷ったときの指針になる 参考 • ビジネスモデルキャンバス • リーンキャンバス 画像 : いらすとや 15
  3. • どんな技術を使う? • どんな画面がある? • ユーザは何ができる? • どんな入力をする? • 入力にはどんな結果が起こる?

    • 放置したらどうなる? • どんなデータがある? • データが変わったらどうなる? • 画面が変わる? • 他のデータに影響を及ぼす? など 要件定義 作るために必要なことはなにか 事前に考えられること 用意できることを洗い出す 作るものを明確にイメージできる 作る道筋が明らかになる 画像 : いらすとや 16
  4. • アーキテクチャ • オブジェクト指向 • デザインパターン • SOLID原則 など 設計

    どのように作るのか 作る手段や方式を確立する 作る道筋を舗装できる 画像 : いらすとや 17
  5. 設計 • MonoBehaviourに依存しがち • データの入出力や見た目の管理などなんでもできる → 継承関係の複雑化 • 〇〇Manager増えがち •

    最初からGameManagerがあることに引っ張られる? → 複数箇所に影響を及ぼす可能性 • Start()やUpdate()がたくさんできがち • MonoBhehaviourの数だけ設定できる → 処理を管理しきれない bad : Unity 19
  6. 設計 • Model • データを管理する • View • 見た目を管理する •

    ユーザの入力を受け取る MonoBehaviourはココだけ • Presenter • Viewからの入力をModelに渡す • Modelのデータの変更をViewに渡す 処理のメインはココ MVPアーキテクチャ 20
  7. 設計 • UniRx • Reactive Extensions for Unity • もう更新されないけど、

    記事がたくさん • R3 • あたらしいUniRx • より安全に速く • 同じ開発者 • Unity 2021.03 以上 • MVPに便利 データ更新の通知をサポート god : Unity UniRx [ https://github.com/neuecc/UniRx ], R3 [ https://github.com/Cysharp/R3 ] 21
  8. 設計 • Observerパターン • Observable : 被観測対象 • Observer :

    観測者 • Observableにイベント発生 → Observerに通知 • MVPでは Model(Observable)にデータ変更 → Presenter(Observer)に通知 → Viewに見た目の変更を命令など データ更新の通知の詳細 22
  9. まとめ • MVPアーキテクチャ • Observerパターン • Reactive Extension (UniRx, R3)

    • データを管理できるように、Modelを定義する! • 処理を追えるように、Presenterを組み合わせる! • 見た目を的確に表すために、Viewを整える! Unityゲームの設計例 27