Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
エディタ拡張でゲームを作りたい
Search
akatsukinewgrad
December 14, 2021
0
1.1k
エディタ拡張でゲームを作りたい
akatsukinewgrad
December 14, 2021
Tweet
Share
More Decks by akatsukinewgrad
See All by akatsukinewgrad
2023/1/25_QAテスター meet up!
akatsukinewgrad
0
150
成果発表資料.pdf
akatsukinewgrad
0
2.1k
広大なフィールドを気持ちよく駆け抜けるための技術.pdf
akatsukinewgrad
0
600
正規表現とReDoS.pdf
akatsukinewgrad
0
590
Unityで大量のオブジェクト_を吹き飛ばしたい.pdf
akatsukinewgrad
0
640
新卒2年目が思う1年目の学び.pdf
akatsukinewgrad
0
560
障害訓練の取り組みについて.pdf
akatsukinewgrad
0
730
7分でわかるアカツキゲームス
akatsukinewgrad
0
600
Bitcoinだけでスマートコントラクト.pdf
akatsukinewgrad
1
990
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
A Tale of Four Properties
chriscoyier
162
23k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
For a Future-Friendly Web
brad_frost
180
10k
GitHub's CSS Performance
jonrohan
1032
470k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
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