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
680
正規表現とReDoS.pdf
akatsukinewgrad
0
660
Unityで大量のオブジェクト_を吹き飛ばしたい.pdf
akatsukinewgrad
0
710
新卒2年目が思う1年目の学び.pdf
akatsukinewgrad
0
640
障害訓練の取り組みについて.pdf
akatsukinewgrad
0
820
7分でわかるアカツキゲームス
akatsukinewgrad
0
670
Bitcoinだけでスマートコントラクト.pdf
akatsukinewgrad
1
1.1k
Other Decks in Programming
See All in Programming
源内ハンズオン概要編
hideg
0
190
VibeCodingからAgenticWorkflowへ
starfish719
0
620
Android CLI
fornewid
0
220
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.6k
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
570
AIを紡ぐPMのお話
swdtkuy
0
110
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
270
数百円から始めるRuby電子工作
tarosay
0
160
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
150
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
560
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
1
130
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
300
Featured
See All Featured
HDC tutorial
michielstock
2
790
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Docker and Python
trallard
47
4.1k
Visualization
eitanlees
152
17k
Technical Leadership for Architectural Decision Making
baasie
3
490
Amusing Abliteration
ianozsvald
1
250
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
800
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 引けました