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
1.2k
エディタ拡張でゲームを作りたい
akatsukinewgrad
December 14, 2021
Tweet
Share
More Decks by akatsukinewgrad
See All by akatsukinewgrad
2023/1/25_QAテスター meet up!
akatsukinewgrad
0
160
成果発表資料.pdf
akatsukinewgrad
0
2.1k
広大なフィールドを気持ちよく駆け抜けるための技術.pdf
akatsukinewgrad
0
620
正規表現とReDoS.pdf
akatsukinewgrad
0
610
Unityで大量のオブジェクト_を吹き飛ばしたい.pdf
akatsukinewgrad
0
670
新卒2年目が思う1年目の学び.pdf
akatsukinewgrad
0
580
障害訓練の取り組みについて.pdf
akatsukinewgrad
0
760
7分でわかるアカツキゲームス
akatsukinewgrad
0
620
Bitcoinだけでスマートコントラクト.pdf
akatsukinewgrad
1
1k
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
150
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
67
37k
Exploring anti-patterns in Rails
aemeredith
2
290
Typedesign – Prime Four
hannesfritz
42
3k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
140
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
52k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
77
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
320
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
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