Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
エディタ拡張でゲームを作りたい
Search
akatsukinewgrad
December 14, 2021
0
1k
エディタ拡張でゲームを作りたい
akatsukinewgrad
December 14, 2021
Tweet
Share
More Decks by akatsukinewgrad
See All by akatsukinewgrad
2023/1/25_QAテスター meet up!
akatsukinewgrad
0
130
成果発表資料.pdf
akatsukinewgrad
0
2k
広大なフィールドを気持ちよく駆け抜けるための技術.pdf
akatsukinewgrad
0
550
正規表現とReDoS.pdf
akatsukinewgrad
0
540
Unityで大量のオブジェクト_を吹き飛ばしたい.pdf
akatsukinewgrad
0
580
新卒2年目が思う1年目の学び.pdf
akatsukinewgrad
0
510
障害訓練の取り組みについて.pdf
akatsukinewgrad
0
680
7分でわかるアカツキゲームス
akatsukinewgrad
0
550
Bitcoinだけでスマートコントラクト.pdf
akatsukinewgrad
1
870
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.8k
Embracing the Ebb and Flow
colly
86
4.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Designing for Performance
lara
609
69k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
A better future with KSS
kneath
239
17k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Balancing Empowerment & Direction
lara
1
300
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Facilitating Awesome Meetings
lara
54
6.4k
Transcript
エディタ拡張で ゲームを作りたい なかじ / 7min 1
アジェンダ 自己紹介 エディタ拡張とは? ゲームを作ってみた 実装ポイント 2 1 2 3 4
⾃⼰紹介 3
21新卒 クライアントエンジニア 中島悠介(なかじ) - ゲームを作る - ライブに行く - ぐっすり寝る -
ワクワクする雰囲気、社風 - 楽しそうに仕事をしている 自己紹介 4 好きなこと 就活でアカツキに決めた動機
エディタ拡張とは? 5
Unityのエディタを拡張する機能 - あるクラスのinspectorに表示される見た目を変える: Property Drawer - 自作のウィンドウ(ツール)を作る: Editor Window など
https://docs.unity3d.com/ja/2020.3/Manual/ExtendingTheEditor.html エディタ拡張とは 6
Unityのエディタを拡張する機能 - あるクラスのinspectorに表示される見た目を変える: Property Drawer - 自作のウィンドウ(ツール)を作る: Editor Window など ↑今回主に使うのはこれ
https://docs.unity3d.com/ja/2020.3/Manual/ExtendingTheEditor.html エディタ拡張とは 7
- デバッグ用ツールの作成 - セーブデータを修正するツール - 特定のフラグを立てて実行するツール - アセット/データ管理ツールの作成 - プロジェクト内の特定のアセットを検索するツール
- 外部からデータをインポートするツール ゲーム開発を補助する機能として用意されている EditorWindowの利用例 8
- デバッグ用ツールの作成 - セーブデータを修正するツール - 特定のフラグを立てて実行するツール - アセット/データ管理ツールの作成 - プロジェクト内の特定のアセットを検索するツール
- 外部からデータをインポートするツール ゲーム開発を補助する機能として用意されている EditorWindowの利用例 9 ゲーム開発を補助する機能で ゲーム開発したら面白くない??
ゲーム作ってみた 10
11
デフォルトGUIを活用 こだわりポイント 12 クリア時にチェックマーク ブロック = Button ボール = Toggle
バー = MinMaxSlider
実装ポイント 13
Update()メソッド内 位置や色の計算を行う OnGUI()メソッド内 計算された位置や色に基づいて描画処理を行う おおまかな実装方針 14
実装ポイント 15 毎フレーム表示を更新する方法 deltaTimeを取得する方法 効果音を再生する方法 1 2 3
描画処理を書くOnGUI() はマウス操作などがあったときにしか呼び出されない →ボールの位置などを毎フレーム更新できない →Update()内でRepaint()を呼び出すことで、毎フレーム再描画できる https://docs.unity3d.com/ja/current/ScriptReference/MonoBehaviour.OnGUI.html https://docs.unity3d.com/ja/2018.4/Manual/ExecutionOrder.html https://docs.unity3d.com/ja/current/ScriptReference/EditorWindow.Repaint.html 毎フレーム表示を更新する方法 16
1
EditMode中(実行中ではないとき)は Time.deltaTimeが固定値を返すようになり、 実際の経過時間とは異なる →Time.deltaTimeを使うと位置計算やアニメーションが正確にできない →EditorApplication.timeSinceStartupの値の差分をdeltaTimeとして利用した https://docs.unity3d.com/ja/2020.3/ScriptReference/Time-deltaTime.html https://docs.unity3d.com/ScriptReference/EditorApplication-timeSinceStartup.html https://forum.unity.com/threads/time-deltatime-alternative-in-editorwindow.501786/ deltaTime(前回処理した時からの時間経過)を取得する方法
17 2
PlayMode中でないとAudioSourceでの効果音再生はできない →リフレクションを使ってサウンドアセットを再生する (Unity内部のメソッドも無理やり呼び出せる) UnityEditor.AudioUtil クラス内の PlayPreviewClip() メソッドを呼び出す 効果音を再生する方法 18
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/reflection https://github.com/Unity-Technologies/UnityCsReference/blob/master/Editor/Mono/Audio/Bindings/AudioUtil.bindings.cs 3
リフレクションで効果音を再生するコード 19 PlayPreviewClip()を取得 サウンドアセットをAudioClipとして取得 PlayPreviewClip()を実行 https://docs.unity3d.com/ScriptReference/AssetDatabase.LoadAssetAtPath.html
よければ是非遊んでみてください https://github.com/Yusuke57/EditorBreakout GitHubで公開済み 20 このスライドも 後ほど公開されるはず
エディタ拡張で ゲームを作れた! なかじ ありがとうございました 21