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
InternshipReport-santaro
Search
akatsukinewgrad
January 08, 2021
Programming
1.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
InternshipReport-santaro
akatsukinewgrad
January 08, 2021
More Decks by akatsukinewgrad
See All by akatsukinewgrad
2023/1/25_QAテスター meet up!
akatsukinewgrad
0
180
成果発表資料.pdf
akatsukinewgrad
0
2.2k
広大なフィールドを気持ちよく駆け抜けるための技術.pdf
akatsukinewgrad
0
690
正規表現とReDoS.pdf
akatsukinewgrad
0
670
Unityで大量のオブジェクト_を吹き飛ばしたい.pdf
akatsukinewgrad
0
720
新卒2年目が思う1年目の学び.pdf
akatsukinewgrad
0
650
障害訓練の取り組みについて.pdf
akatsukinewgrad
0
830
7分でわかるアカツキゲームス
akatsukinewgrad
0
670
Bitcoinだけでスマートコントラクト.pdf
akatsukinewgrad
1
1.2k
Other Decks in Programming
See All in Programming
Building an Out-of-Order CPU
latte72
1
720
typoなんかねぇよ
raspython3
0
670
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
160
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
180
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
4
3k
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
270
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
420
スマート反転とウェブアクセシビリティ
camiha
0
150
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
170
Laravelのアプリケーションをどこにデプロイするか #ツナギメオフライン.9
akase244
0
120
デプロイ直後のレイテンシスパイクを調べたら、 Railsの仕様にたどり着いた
nhsykym
0
110
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
460
Featured
See All Featured
We Are The Robots
honzajavorek
0
350
Optimizing for Happiness
mojombo
378
71k
Claude Code のすすめ
schroneko
67
230k
Ruling the World: When Life Gets Gamed
codingconduct
0
330
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Code Review Best Practice
trishagee
74
20k
The Language of Interfaces
destraynor
162
27k
Evolving SEO for Evolving Search Engines
ryanjones
0
280
Prompt Engineering for Job Search
mfonobong
0
440
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
290
Fireside Chat
paigeccino
42
4k
Transcript
インターン成果報告 花房 三太郎 2020/12/24
目次 1. 自己紹介 2. インターンシップの概要 3. 課題1 4. 課題2 5.
インターンを通して感じたこと・学んだこと 6. さいごに 2
1. 自己紹介 ・名前: 花房 三太郎 ・大学: 北海道 室蘭工業大学 情報電子工学系学科 学部3年
・所属: LOCAL学生部、Unityゲーム開発者ギルド ・趣味: 所属コミュニティ内の交流、知見を溜める、スマブラ観戦 3
2. インターンシップの概要 ・配属先: 「八月のシンデレラナイン」のクライアントエンジニア ・期間: 12/1 ~ 12/24まで。12日間 ・課題: シーン共通で使用されているヘッダー(以下共通ヘッダー)の修正、
ScrollView用のハチナイ独自のクラスにpaddingとspacingを追加 4
2. インターンシップの概要 ・課題1: 共通ヘッダーの修正 ・環境構築(2日) ・調査・実装(8日) ・課題2: ScrollView用のハチナイ独自のクラスにpaddingとspacingを追加 ・実装(2日) 5
課題1. 共通ヘッダーの修正 6
3.1 元気回復までの時間「あと00:00」を消したい 7
3.2 ふたつの実装方法のパフォーマンスを比較 「GameObjectを非アクティブにする」vs「Textに空文字列を代入する」 <常時消費メモリ> 非アクティブの方が0.5MBほど少ない <1回の実行> 非アクティブはGCAllocが700Bほど発生。実行速度は0.01ms 空文字列代入はGCAllocも実行速度も微々たるもの <その他> 非アクティブにするなら、監視用GameObjectが必要
非アクティブの方が直感的 8
3.2 ふたつの実装方法のパフォーマンスを比較 「GameObjectを非アクティブにする」vs「Textに空文字列を代入する」 <常時消費メモリ> 非アクティブの方が0.5MBほど少ない <1回の実行> 非アクティブはGCAllocが700Bほど発生。実行速度は0.01ms 空文字列代入はGCAllocも実行速度も微々たるもの <その他> 非アクティブにするなら、監視用GameObjectが必要
非アクティブの方が直感的 9 更新頻度も少ないし、非アクティブにしよう
3.3 GameObjectを非アクティブにしようとしたが... 「元気回復時間表示の処理」が2つのクラスに分かれている! 共通ヘッダーPrefabの一部を抜粋して使っているシーンがある! (Prefab内の変更で修正されない) →影響範囲をできるだけ小さくしなければいけない 10
3.3 GameObjectを非アクティブにしようとしたが... 「元気回復時間表示の処理」が2つのクラスに分かれている! 共通ヘッダーPrefabの一部を抜粋して使っているシーンがある! (Prefab内の変更で修正されない) →影響範囲をできるだけ小さくしなければいけない 11 空文字列代入にしよう
3.4 元気ヘッダーの修正 変更前 変更後 妙な余白ができてしまう 12
3.5 プランナー、デザイナーの方と相談 ・元気回復ボタンもつける ・デレスト編成画面にもヘッダーを配置する(以前はタイトル画面だけ) 13
3.6 影響範囲の検索 <前提> ・元気ヘッダーを使っているシーンを全て調べたい ・元気ヘッダーのGameObjectは共通ヘッダーPrefabの一部である ・PrefabのrootにはヘッダーをまとめるクラスAがある ・クラスAのbool型フィールドによって、どのヘッダーを表示するか指定 →クラスAのGUIDを持っていて、元気ヘッダー表示フラグがtrueのシーンを探索する →2つのシーンが見つかった →メンターの方が6つのシーンがあるはず、と指摘
14
3.6 影響範囲の検索 実はPrefab内にあるMonoBehaviour継承クラスのGUIDは、.prefab内に記述されるも ので、.unity内には記述されない!!! →PrefabのGUIDを持っていて、元気ヘッダー表示フラグがtrueのシーンを探索する →無事6つのシーンが見つかった! 15
3.7 .csファイルのGUIDが.unityに記述される原因調査 Prefab内の.csファイルのGUIDは.unityには記述されないのなら、なぜ2つのシーンが 最初の検索で引っかかったのか? <.unityファイル内を調べるプログラムを作成> ①.csファイルのGUIDを参照しているfileIDを検索 ②そのfileIDを参照しているfileIDを検索 ③②のfileIDがGameObjectなら表示。そうでなければ②を繰り返す このプログラムを実行した結果... 表示されるGameObjectは全て「その.csファイルをInspectorから参照している
Componentを持っている」ものだった。 16
課題2. ScrollView用のハチナイ独自のクラスに paddingとspacing機能を追加 17
4.1 ScrollView用のハチナイ独自のクラスにpaddingとspacing機能 を追加 <独自クラスの概要> Viewportに表示する分のアイテムを生成し、Viewport外にいったアイテムをViewport内 に入るアイテムとして再利用するもの <実装> スライドした時にアイテムひとつずつ位置を指定している →このときにpadding(Content外枠の余白)、spacing(アイテム間の余白)を考慮した位 置にする
そのほか、Contentの大きさにアイテムの大きさを合わせる機能を追加 18
4.1 content 19 content
4.1 items 20 items
4.1 padding, spacing 21 paddingTop paddingLeft spacing
5.1 インターンを通して感じたこと・学んだこと ・コミュニケーション ・影響範囲の考慮 ・問題解決の順序 22
5.2 コミュニケーション <簡潔に伝える> 特にリアルタイムな会話において、質問に対して結論をまとめて伝えられない →作業ログをこまめにとり、「やったこと」「その結果」をまとめておく <明確に伝える> 特にテキストコミュニケーションにおいて、ニュアンスが伝わりにくい →「この連絡で何を伝えたいのか」を意識する <状況を伝える> 大切な部分がわからないところで詰まる
→「今◯◯をしています」と伝える。助言の判断はメンターの方に任せる 23
5.3 影響範囲の考慮 今回のインターンでは、影響範囲を詳しく調べる前に実装に移ってしまうことが多かった その結果、実装方法を後から変更するようなこともあった ・自分の知らない部分に影響を与えているかもしれないという意識 ・まず最初に影響範囲を調査する。それから、影響範囲を考慮してどの実装が最適なの か考える 24
5.4 問題解決の順序 今回は実装と同じくらい調査をおこなった 調査は実装と比較して最終的に何ができればいいのかわからないことが多い その問題に対する知識が浅いほど、自分の推測する答えだけに進むべきではない 簡単な調査結果から、問題解決への新しい糸口が見つかることもある 解決する可能性が高いと判断した3時間かかる調査より、 10分で終わる調査をまずやるべき 25
6. さいごに 初めて触れる技術が多く、調べることに多くの時間を割いてしまい、想定していたほどの 進捗にならず正直悔しいです。 しかし、自分で調べて問題を解決していくことはとても楽しく、仕事としてのゲーム開発も 楽しくできる気がして安心しました。 自分の間違った言動に対して的確な指摘をしてくださり、その一方で自分なりの結論が 出るまで見守ってくださったメンターの方にはとても感謝しています。 26
6. さいごに 年末という大変お忙しい中、私を支えてくださった社員のみなさん、本当にありがとうご ざいました! 約1ヶ月間お世話になりました!!! 27 引けました