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
940
エディタ拡張でゲームを作りたい
akatsukinewgrad
December 14, 2021
Tweet
Share
More Decks by akatsukinewgrad
See All by akatsukinewgrad
2023/1/25_QAテスター meet up!
akatsukinewgrad
0
100
成果発表資料.pdf
akatsukinewgrad
0
1.9k
広大なフィールドを気持ちよく駆け抜けるための技術.pdf
akatsukinewgrad
0
460
正規表現とReDoS.pdf
akatsukinewgrad
0
470
Unityで大量のオブジェクト_を吹き飛ばしたい.pdf
akatsukinewgrad
0
490
新卒2年目が思う1年目の学び.pdf
akatsukinewgrad
0
440
障害訓練の取り組みについて.pdf
akatsukinewgrad
0
560
7分でわかるアカツキゲームス
akatsukinewgrad
0
480
Bitcoinだけでスマートコントラクト.pdf
akatsukinewgrad
1
740
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Teambox: Starting and Learning
jrom
133
8.8k
How GitHub (no longer) Works
holman
310
140k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
How to Ace a Technical Interview
jacobian
276
23k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
The Cult of Friendly URLs
andyhume
78
6k
Thoughts on Productivity
jonyablonski
67
4.3k
Docker and Python
trallard
40
3.1k
A designer walks into a library…
pauljervisheath
204
24k
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