Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
エディタ拡張でゲームを作りたい
Search
akatsukinewgrad
December 14, 2021
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
エディタ拡張でゲームを作りたい
akatsukinewgrad
December 14, 2021
More Decks by akatsukinewgrad
See All by akatsukinewgrad
2023/1/25_QAテスター meet up!
akatsukinewgrad
0
180
成果発表資料.pdf
akatsukinewgrad
0
2.3k
広大なフィールドを気持ちよく駆け抜けるための技術.pdf
akatsukinewgrad
0
700
正規表現とReDoS.pdf
akatsukinewgrad
0
680
Unityで大量のオブジェクト_を吹き飛ばしたい.pdf
akatsukinewgrad
0
730
新卒2年目が思う1年目の学び.pdf
akatsukinewgrad
0
660
障害訓練の取り組みについて.pdf
akatsukinewgrad
0
840
7分でわかるアカツキゲームス
akatsukinewgrad
0
680
Bitcoinだけでスマートコントラクト.pdf
akatsukinewgrad
1
1.2k
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
109
250k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Designing for Performance
lara
612
70k
How STYLIGHT went responsive
nonsquared
100
6.3k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Everyday Curiosity
cassininazir
0
350
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
400
HDC tutorial
michielstock
2
950
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
A designer walks into a library…
pauljervisheath
211
25k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
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