ScriptableObject とそれ以外のパフォーマンス比較
調査内容
下記のような ScriptableObject や struct に対しデータの読み込み速度を測ってみた。
public class TestScriptableObject : ScriptableObject { public string[] stringValue; public int[] intValue; public float[] floatValue; }
public struct TestStruct{ public string[] stringValue; public int[] intValue; public float[] floatValue; }
Unity のバージョンは 2017.3.1f1。 デバイスは ZenPad3 8.0 Z581KL 。
結果
// ハードコーディング // PFS=36 for ( var i = 0; i < 2000; ++i ){ var data = ScriptableObject.CreateInstance< TestScriptableObject >(); data.stringValue = new string [ 10 ]; for ( var n = 0; n < data.stringValue.Length; ++n ) data.stringValue[ n ] = "Hello"; data.intValue = new int [ 10 ]; for ( var n = 0; n < data.intValue.Length; ++n ) data.intValue[ n ] = 1; data.floatValue = new float [ 10 ]; for ( var n = 0; n < data.floatValue.Length; ++n ) data.floatValue[ n ] = 9.8f; }
// ScriptableObject // PFS=14 for ( var n = 0; n < 2000; ++n ){ var data = Resources.Load( "ScriptableObject/TestScriptableObject" ) as TestScriptableObject; Resources.UnloadAsset( data ); }
// Text // PFS=8 for ( var i = 0; i < 2000; ++i ){ var text = Resources.Load( "ScriptableObject/TestText" ) as TextAsset; var separator = new char []{ '\n' }; var strings = text.text.Split( separator ); Resources.UnloadAsset( text ); var data = new TestStruct(); var index = 0; var length = 0; length = int.Parse( strings[ index++ ] ); data.stringValue = new string [ length ]; for ( var n = 0; n < data.stringValue.Length; ++n ) data.stringValue[ n ] = strings[ index++ ]; length = int.Parse( strings[ index++ ] ); data.intValue = new int [ length ]; for ( var n = 0; n < data.intValue.Length; ++n ) data.intValue[ n ] = int.Parse( strings[ index++ ] ); length = int.Parse( strings[ index++ ] ); data.floatValue = new float [ length ]; for ( var n = 0; n < data.floatValue.Length; ++n ) data.floatValue[ n ] = float.Parse( strings[ index++ ] ); }
// Binary // PFS=13 for ( var i = 0; i < 2000; ++i ){ var text = Resources.Load( "ScriptableObject/TestBin" ) as TextAsset; using( var fos = new MemoryStream( text.bytes ) ){ using ( var reader = new BinaryReader( fos ) ){ var data = new TestStruct(); var length = 0; length = reader.ReadInt32(); data.stringValue = new string [ length ]; for ( var n = 0; n < data.stringValue.Length; ++n ) data.stringValue[ n ] = reader.ReadString(); length = reader.ReadInt32(); data.intValue = new int [ length ]; for ( var n = 0; n < data.intValue.Length; ++n ) data.intValue[ n ] = reader.ReadInt32(); length = reader.ReadInt32(); data.floatValue = new float [ length ]; for ( var n = 0; n < data.floatValue.Length; ++n ) data.floatValue[ n ] = reader.ReadSingle(); } } Resources.UnloadAsset( text ); }
まとめ
1.ハードコーディング(FPS=36) 2.ScriptableObject(FPS=14) 3.バイナリ読み込み(FPS=13) 4.テキスト読み込み(FPS=8)
実測してみると ScriptableObject が優秀だと分かった。
バイナリ読み込みは速度が出るけど自力でパースする手間がある。 テキスト読み込みはちょっと遅い。
開発初期は XML, JSON, CSV でデータを用意し、ある程度データ形式が固まってきたらパフォーマンスが気になるところを ScriptableObject に変えていくとかが現実的な使い方かもしれない。
※XML, JSON, CSV は Editor ディレクトリに入れてエディタ拡張で ScriptableObject に変換。
使用したプロジェクト
【CEDEC 2017】記事リンク
4gamer
■[CEDEC 2017]一周年で驚異的な伸びを見せた「逆転オセロニア」における,データアナリストの働き方とは
■[CEDEC 2017]基礎からすっかり分かる「これで解決! ゲームに必要な3Dオーディオの全て」の聴講レポート
■[CEDEC 2017]観客のための画面を作り,e-Sportsを分かりやすく。セガ独自の「ゲーム大会実況システム」とは
■[CEDEC2017]売れないアプリが蘇る。「ジョーカー」「グリモア」の成功事例から見る,アプリボット秘伝の「ダカイ」術
■[CEDEC 2017]ゲームの品質管理はAIに任せる時代!? スクウェア・エニックスが活用法を語る
■[CEDEC 2017] 診察室でゲームが「処方」される未来へ。医療の視点からゲームの力が語られたセッションをレポート
■[CEDEC 2017]シニア向けゲームの現状と未来が語られたセッション「はじめてスマホに触れるシニア世代のゲーム事情」をレポート
■[CEDEC 2017]日本で高額賞金のe-Sports大会を開催するには? 刑法賭博罪・景表法・風営法による規制が解説されたセッションをレポート
■[CEDEC 2017]「Pokémon GO」に至るNianticの道のりを日本人スタッフが紹介した基調講演の模様をレポート
■[CEDEC 2017]「ゼルダの伝説BotW」の完璧なゲーム世界は,任天堂の開発スタイルが変わったからこそ生まれた
■[CEDEC 2017]分析結果をシナリオにして開発者に伝える。「モンスターハンター エクスプロア」のデータ分析が語られたセッションをレポート
■[CEDEC 2017]なぜゲームのモブキャラは「膝に矢を受けてしまって」程度しか話せないのか? 産業界の研究事例から学ぶ「AIと人との会話技術」
■[CEDEC 2017]コントローラ,メッセージ,メニュー。ゲームの“お約束”を捨てた「ヘディング工場」の秘密はさまざまな制約にあり
■[CEDEC 2017]「グランツーリスモSPORT」が実現した「HDR&広色域のネイティブ対応」とは何か?
■[CEDEC 2017]“ユーザーと運営の友情”とは。セッション「ユーザーとのエンゲージメントを育むコミュニティ運営『友情マーケティング』の解説」をレポート
■[CEDEC 2017]女流棋士とゲームクリエイターのコラボから見いだされた結論とは? 「ゲームビジネスの可能性を広げる異業種コラボ! 双方の市場を拡大するためのノウハウ」レポート
■[CEDEC 2017]女流棋士とゲームクリエイターのコラボから見いだされた結論とは? 「ゲームビジネスの可能性を広げる異業種コラボ! 双方の市場を拡大するためのノウハウ」レポート
■[CEDEC 2017]「ソードアート・オンライン」のようなMMORPGは本当に実現できるのか? 川原 礫氏と原田勝弘氏,二見鷹介氏による基調講演をレポート
■[CEDEC 2017]参加者を魅了する謎の砂場「流動床インタフェース」とは?
■[CEDEC 2017]ニューラルネットがキャラの動きを自然に,処理負荷を低くする? キャラクターアニメーション品質向上に向けた新提案
■[CEDEC 2017]過去最大級の規模でCEDEC 2017が本日開幕。今年も現地からゲーム業界の最新情報をお届け
ファミ通
■CEDEC 2018が8月22日~8月24日に開催決定、セッション講演者は2月1日より募集開始
■『Horizon Zero Dawn』でオープンワールドに初挑戦したゲリラゲームズの気風と取り組み【CEDEC 2017】
■RPGで抑うつ治療? 毎朝のトイレが課金の代わりに? ゲームが“処方”される未来へ向けた、最新のヘルスケア・ゲームの紹介と展望【CEDEC 2017】
■『サマーレッスン』のドキドキ体験はいかに“家庭用ゲーム化”されていったのか?【CEDEC2017】
■中国でのローカライズは検閲がたいへん!? プレイステーションの取り組みからSIEが実感した、中国のゲーム事情とは【CEDEC 2017】
■『ゼルダの伝説 BotW』何気ないウィンドウやアイコンなどに隠された、プレイヤーを冒険の世界に没頭させる工夫と技術【CEDEC 2017】
■DMM.comの担当プロデューサーが実例を交えてアドバイスする、VRコンテンツを企画する前に考えるべきこと【CEDEC 2017】
■『ファイナルファンタジーXV』サウンド制作事例に見る ゲームのサウンドは映画に迫れる!? オーソリティーが問題点を解説【CEDEC 2017】
■『ゼルダの伝説 BotW』アーティストのクリエイティブな作業を支えたエンジニアの仕事と制作フロー【CEDEC 2017】
■イメージアートの技法やメカデザインの哲学などを最前線で活躍するトップクリエイターが紹介【CEDEC 2017】
■『GRAVITY DAZE』シリーズはゲーム仕様という制限の中でどのようなシナリオ作りを行っていたのか!【CEDEC 2017】
■超大作の成否をも左右する!?、テクニカルディレクターの“立ち居振る舞いかた”とは?【CEDEC 2017】
■『ポケモンGO』を開発したナイアンティックが目指す“世界を動かすAR”【CEDEC 2017】
■『逆転オセロニア』の成長を舞台裏から支える分析チームのプロフェッショナルなお仕事【CEDEC 2017】
■CEDEC AWARDS 2017授賞式リポート 10回目の節目となるアワードの各部門最優秀賞者の喜びの声をお届け【CEDEC 2017】
■ゲームの4K化やHDR対応にはまだまだ苦労あり? 最新ハイエンドゲームグラフィックスの先駆者たちによるパネルディスカッション【CEDEC 2017】
■『人喰いの大鷲トリコ』トリコをリアルに動かすプロシージャルアニメーションとは!?【CEDEC 2017】
■UE4でのモバイル開発環境はここまで進化した! 開発トラブル回避テクニックも【CEDEC 2017】
■女流棋士・香川愛生さんとゲーム開発のプロとのコラボから生まれる将棋ゲームとは?【CEDEC 2017】
■ゲーム業界で働くワーキングマザーたちが議論! 仕事と子育てを両立するためのヒントとは【CEDEC 2017】
■『シャドウバース』ユーザーの行動ログからデッキのトレンドを分析する手法とは?【CEDEC 2017】
■『ソードアート・オンライン』作者の川原礫氏やBNE原田氏が、小説内と現実の最新技術について語る! 未来のVRやAIはどうなる?【CEDEC 2017】
■『チェンクロ』4年の歴史から考察するスマホゲームで物語を更新し続けること【CEDEC 2017】
Social Game Info
■【CEDEC2017】ディライトワークスが語る、継続的に会社が成長する方法とは…優れたエンジニア「採用」「育成」「評価」サイクルについて
■【CEDEC2017】複数アプリログデータを対象としたメタップスの利用状態解析から見えてくる消費者のゲームとの関わり方
■【CEDEC2017】『FFXV』の12言語対応はいかに実現したのか…スクウェア・エニックスが誇る翻訳管理システム「Byblos」に迫る
■【CEDEC 2017】『グリムノーツ』のキャラに”暖かみ”がある理由…イラスト・モーション・エフェクトなど多方面の制作から見る驚きの手法
■【CEDEC 2017】『Shadowverse』の行動ログから見た「デッキのトレンド分析」…流行を把握してよりゲームを面白く改善する手法とは
■【CEDEC2017】ゲーム開発のノウハウの書面化と共有をどのように進めるべきか? Cygamesの「教科書プロジェクト」の取り組みを紹介
■【CEDEC 2017】『Shadowverse』の制作事例におけるゲームを盛り上げるアニメーション制作法とは…快適なプレイを求めて高品質&低負荷を両立
■【CEDEC2017】人気タイトル『アナザーエデン』になぜ通信待ちストレスがないか。その理由は非同期オートセーブにあった
■【CEDEC2017】キャラの個性や違いを可視化してシナリオライティングを支援する「キャラクターらしさ学習AI」について…効率化&品質向上に貢献
■【CEDEC 2017】少人数での効率的な仕事方法…『武器よさらば』におけるカットシーン制作事例
■【CEDEC2017】“最高のコンテンツ作り”のための開発運用を支えるCygames独自のDSL その仕組みとノウハウが明かされる
■【CEDEC2017】グリーのリードエンジニアが教える「クラウド時代の長く効率よく運用するためのゲームサーバとインフラ設計」
■【CEDEC 2017】スマホゲームに「エンディング」を入れるのは是か否か…『チェインクロニクル』4年間の変遷から実績データに基づいた結果を公開
■【CEDEC2017】グリーのflashクリエイターはネイティブアプリ開発でブラウザゲームの知見をどう活かし、どのように役割を変えたか?
■【CEDEC2017】『ジョーカー』『グリモア』を再生させたアプリボットのダカイ! 事例から紐解くその秘訣
■【CEDEC2017】開発初期から振り返る『アナザーエデン』のマル秘話…「イベントやマップの作り方」や「バトルを5回作り直した理由」を明かす
■【CEDEC2017】増大し続けるQA工数の削減を目指して!自動リプレイを用いたディライトワークスのQA改善への挑戦
■【CEDEC 2017】Wright Flyer Studiosの不正アクセスによる影響とその対処法…実際にBANシステムを作ってみて苦労した点とは
■【CEDEC2017】分析業務をブーストするBIツール活用術…ツール選定のススメと落とし穴
■【CEDEC2017】『SINoALICE』&『CARAVAN STORIES』制作事例から見る、SPARK GEARを用いたハイクオリティなVFX開発
■【CEDEC2017】ディライトワークス『FGO』の企画、デザイン、エンジニアが語る面白いゲームを創り続けるにあたって重視していること
■【CEDEC2017】Cygamesが開発中のゲームエンジン「Cyllista Game Engine」を紹介…ゲーム開発者が最高のパフォーマンスを出せるエンジンに
■【CEDEC2017】「自信を持ってゲームを異業種へ広げよう」…モノビット、蛭田健司氏と女流棋士の香川愛生氏が語る異業種コラボの可能性とは
■【CEDEC2017】キャラクターモーションに対する熱いこだわりが生んだ、『武器よさらば』の薙ぎ払う爽快感
■【CEDEC2017】Cygames Researchが語る「サーバサイド技術」とは…ゲームシステムと連動した“ビジュアルチェックイン”サービスを紹介
■【CEDEC2017】デジタルアニメ制作の未来展望…デジタル化を先進する3社が語る最前線の制作手法とは
■【CEDEC2017】『オルタナティブガールズ』エンジニアが挑んだAssetBundleの管理方法―基盤化に伴う問題と対処法を紹介
■【CEDEC2017】先進事例と展望から見えてきた「ヘルスケア×ゲーム」の医学的なメリットやビジネスとしての可能性
■【CEDEC 2017】マルチプレイ機能実装に欠かせない「Photon」のメリットとは…『ガルパ』『みんゴル』での採用実例を公開
■【CEDEC2017】セガ・インタラクティブが開発・運用するゲーム大会実況システムが、今後のeSportsに対する取り組みの方向性を示す
■【CEDEC2017】カヤックが実践する「友情マーケティング」とは? コミュニティ形成を通じてユーザーと一緒にタイトルを継続的に育てていくために
■【CEDEC2017】モバイル開発の必須機能が揃う「Unreal Engine 4」とは…『リネージュ2 レボリューション』『Hit』の実例から見る機能・開発
■【CEDEC2017】ダビスタはどのようにして操作テンポと開発スピードを上げたのか ドリコムが実践するUIフレームワークの作り方
■【CEDEC2017】固定観念を覆す『モンスターハンター エクスプロア』のデータ分析…開発者の感性を最大限引き出すデータサイエンスに
■【CEDEC2017】PMの役割は連携、進捗管理、情報整理しPJを牽引すること…ディライトワークス「FGO」開発チームが明かす面白いゲームを創り続ける要諦とは
■【CEDEC2017】シニア世代もオンラインでゲームを遊ぶ時代…いつでも手軽に将棋を指せる相手が見つかるのは画期的
■【CEDEC2017】ゲームの運営や収益化に深刻な被害を与えるチートをどのように防ぐのか? サイファー・テックが事例を交えて紹介
■【CEDEC2017】スマホゲームのセキュリティの課題と対策は? アプリへの攻撃を可視化する「DxShield」でわかった攻撃の傾向や事例を紹介
■【CEDEC2017】『ポケモンGO』はどう開発されてきたのか…ナイアンティックが考えるARの在り方
■【CEDEC2017】Cygames Researchが語る「サーバサイド技術」とは…ゲームシステムと連動した“ビジュアルチェックイン”サービスを紹介
■【CECED2017】制度的枠組みに関する知見を交え、国際カジノ研究所の木曽氏が語ったカジノとeSportsの未来
Gpara
■[CEDEC2017]将棋人口を増やし、ゲームの売上拡大も狙う/「ゲームビジネスの可能性を広げる異業種コラボ! 双方の市場を拡大するためのノウハウ」レポート
■[CEDEC 2017]人を外に出すことで世界を変えることができる『Ingress』『Pokémon GO』に込められた思い
■[CEDEC 2017]サービスから4年を迎えた『チェインクロニクル』。結果と向き合い“正しく”変えて行くことが重要だった
■[CEDEC 2017]基調講演「ソードアート・オンライン」の世界で描かれるVR、AR、AIは果たしてオーバーテクノロジーなのか
■[CEDEC2017]ユーザーと運営が互いに友情を高め合うために大切なこと/「ユーザーとのエンゲージメントを育むコミュニティ運営“友情マーケティング”の解説」
■[CEDEC2017]温故知新で学ぶゲームのマップデザイン/「ゲームにおける『マップ』のデザイン~アナログゲームの知見から」レポート」
Gamer
■【CEDEC 2017】PS VRの最新状況と「傷物語VR」の開発で目指したことをSIEの秋山氏とカヤックの天野氏が語る
■【CEDEC 2017】プロダクトチームの「糊」となる―プロダクトを成功に導くプロダクトマネージャーの仕事術とは?
■【CEDEC 2017】「年末年始イベント」で一気に大ブレーク!1300万ダウンロード突破の人気スマホゲーム「逆転オセロニア」を下支えしてきたアナリストたちの仕事とは?
■【CEDEC 2017】「根性論と残業はダメ!」―「GRAVITY DAZE」シリーズのスタッフが合理性と効率を考慮したシナリオ制作の手法を紹介
■【CEDEC 2017】高品位フォントは、こうして生まれる―国内シェアNo.1のモリサワのフォントが作られるまで
■【CEDEC 2017】世界最初のMMORPGから「Pokémon GO」へ―全世界で160億キロメートル歩かれたタイトルは如何にして生まれたのか?
■【CEDEC 2017】「オープンエア」の世界はこうして作られた―「ゼルダの伝説 ブレス オブ ザ ワイルド」におけるフィールドレベルデザインの講演をレポート
■【CEDEC 2017】開発ノウハウのなさからバトルシステム完成まで5回も作り直し―「アナザーエデン」が完成するまでの意外な裏話とは?
■【CEDEC 2017】「サマーレッスン」技術デモから製品化へ―求められるものが真逆という困難を乗り越えるために必要だったこととは?
■【CEDEC 2017】胸は大げさに揺らせばいいものではない―「Fate/Grand Order VR feat.マシュ・キリエライト」制作秘話
■【CEDEC 2017】5秒に1マシュ―塩川洋介氏が語る、「FGO VR」を支える“非常識”な企画術とは?
■【CEDEC 2017】プラチナゲームズが明かす、アクションゲームにおけるアニメーションとは―モーションひとつを突き詰めていくそのこだわりと極意
■【CEDEC 2017】企画からリリースまで若手だけでやってみた―「『若手小規模プロジェクト』のススメ ~昨今の業界における若手育成の問題点とその解決方法の提案~」をレポート
■【CEDEC 2017】「ソードアート・オンライン」の世界は現実になるのか―作者の川原氏がバンナムの原田氏、二見氏と小説内の技術について大いに語る
■【CEDEC 2017】コラボとは「読み合う」こと―ゲームクリエイターと女流棋士が語る“異業種コラボで双方の市場を拡大するためのノウハウ”をレポート
IGN
■[CEDEC 2017]ゲーム特許とはなにか? 効果的なゲーム特許の取得方法
■[CEDEC 2017]会社員からフリーランスになるという選択は正しいのか
■[CEDEC 2017]「乖離性ミリオンアーサーVR」に見るVRリアルタイムCGアニメーションの作り方
■[CEDEC 2017]Oculus VRによる新作ゲームから見られる最新の知見
■[CEDEC 2017]ゲーム開発者こそ,優れたゲームライターになれる。「ゲーム開発経験を生かすライター活動のすすめ」をレポート
■[CEDEC 2017]ヘキサドライブが新人教育のために導入した「若手小規模プロジェクト」とは何か
■[CEDEC 2017]Steamの膨大なゲーム群に埋もれないために。どのように自社タイトルをPRすればいいのか
■[CEDEC 2017]HTCによるViveの業者向け(?)Tipsと今後の展開
GameBusiness
■【CEDEC 2017】AIは『人狼』をプレイできるのか?人間vs AI戦も展開されたセッションレポ
■【CEDEC2017】継続率を高めるKPI管理の仕組みースマホゲームのカスタマーサポート運用ノウハウ
■【CEDEC 2017】日本とベトナムのゲーム共同開発の要は「チームとなること」―GIANTYセッションレポート
■【CEDEC 2017】PS VR『Fate/Grand Order feat.マシュ・キリエライト』のコンセプトと非常識な企画術、そして隠された秘密とは
■【CEDEC 2017】増え続けるチート被害、その傾向と具体的な対策とは
■【CEDEC 2017】プレイヤーAIを使用したバランス調整、増え続けるQAコストを抑えるためにできること
■【CEDEC 2017】アカツキが語るハッカソン成功の秘訣は「主催者の愛」
■【CEDEC 2017】『NieR:Automata』の世界を彩る効果音はどのように実装されたのか?デザインコンセプトとその仕組みについて
■【CEDEC 2017】グリー『アナザーエデン』開発における課題の解決術...円滑な開発は失敗から?
■【CEDEC 2017】『Fate/Grand Order』開発チームが語る、面白いゲームを創り続ける秘訣
■【CEDEC 2017】ゲームの特許は難しくない!だれでもわかる効果的なゲーム特許の取得方法
■【CEDEC 2017】基調講演『ソードアート・オンライン』が見せる未来、小説とテクノロジーについて語る
MoguraVR
■HoloLensのユースケース、複数人での使用や、対話インターフェイスなど【CEDEC 2017】
■視聴者を「置いてけぼり」にしないVRコンテンツの作り方【CEDEC 2017】
■人気スマホゲームをどうVRコンテンツにする?『FGO VR』の企画で追求された3つのコンセプト【CEDEC 2017レポ】
■「ビデオゲームのお約束を捨てよ」-VRゲーム『ヘディング工場』の開発事例-【CEDEC 2017】
■VRの災害活用 ゲームエンジンの“嘘の表現”をどこまで取り入れるか【CEDEC 2017】
■PSVR『サマーレッスン』数分の技術デモからじっくり遊べる製品化への道のり【CEDEC 2017】
■子育てVRエンタテイメントは社会への提案ができるのか!? ”Real Baby – Real Family”【CEDEC2017】
■『ポケモンGO』が出来るまで Niantic川島氏・野村氏がARに託した思い【CEDEC2017】
■実写VR制作の問題点・解決策とは? ソニー・ミュージック『anywhereVR』制作事例【CEDEC2017】
■Wright Flyer Studiosが語る、VRリアルタイムCGアニメーション制作の秘訣とは?【CEDEC2017】
■液体のように動く砂が開発者の好奇心を刺激!「流動床インターフェース」【CEDEC2017】
■遠隔地にいてもそこにいる『HoloPortationLite』で新時代のコミュニケーション【CEDEC2017】
■VRで重要な3Dオーディオの使い方 各論編 Ambisonics、HRTF、バイノーラル【CEDEC2017】
■基調講演『ソードアート・オンライン』川原氏と『サマーレッスン』原田氏らが語る、VR/ARの未来【CEDEC2017】
■VRで重要な3Dオーディオの使い方 基礎と事例紹介編【CEDEC2017】
■移動、アバター…VRゲーム開発の最前線からのノウハウをOculusが一挙紹介 【CEDEC2017】
■かわいいアイドルに、モブ(聴衆)がいてこその最高のVRライブ体験。『シンデレラガールズ ビューイングレボリューション』開発者セッション【CEDEC2017】
【Unity】今更ながら RectTransform をスクリプトから制御する方法が調べてみた3
関係性
「offsetMin / offsetMax」を操作した後 「anchoredPosition と pivot と sizeDelta」を操作すると 「offsetMin / offsetMax」が反映されない。 逆に、 「anchoredPosition と pivot と sizeDelta」を操作した後 「offsetMin / offsetMax」を操作すると 「anchoredPosition と pivot と sizeDelta」が反映されない。
調査に使用したプロジェクトはこちら。
■HAL9HARUKU/TestRecttTansform
RectTransform をスクリプトで制御するためのまとめ
[1] anchorMin で左下の制御点(アンカー)を、 anchorMax で右上の制御点(アンカー)を決める。
[2] 「offsetMin / offsetMax」または「anchoredPosition と pivot と sizeDelta」 で配置を確定させる(混ぜて使わない)。
【Unity】今更ながら RectTransform をスクリプトから制御する方法が調べてみた2
※anchorMax の x,y を 0.6、anchorMin の x,y を 0.4 に固定
pivot のみの制御
pivot を
x | y |
---|---|
0.0 | 0.0 |
0.5 | 0.5 |
1.0 | 1.0 |
で試してみたが sizeDelta の x,y が 0.0, 0.0 である限りは何も変化がなかった。
pivot と sizeDelta の制御
sizeDelta を 100, 100 に変えてみたところ、
pivot が 0.0, 0.0 の場合は右上方向に大きくなった。 pivot が 0.5, 0.5 の場合は真ん中を中心に大きくなった。 pivot が 1.0, 1.0 の場合は左下方向に大きくなった。
anchoredPosition の制御
anchoredPosition を変更すると全体的に移動した。
【Unity】今更ながら RectTransform をスクリプトから制御する方法が調べてみた
■unity DOCUMENTATION # RectTransform
https://docs.unity3d.com/jp/540/ScriptReference/RectTransform.html
そもそもアンカーとは何か?
■英辞郎 # anchor
https://eow.alc.co.jp/search?q=anchor
anchor 【自動】 いかりを下ろす、投錨する
※pivot は 0.5, 0.5 で固定
anchorMax / anchorMin / offsetMax / offsetMin の x,y を 0 にしてみた。 何も表示されない。 Scene を見ると左下にオブジェクトがあるようだ。
anchorMax / anchorMin の x,y を 0.5 にしてみた。 同じく何も表示されない。 Scene を見ると中心にオブジェクトが移動した。
offsetMax の x,y を 100 にしてみた。 100 ピクセルの矩形が表示された。
offsetMin の x,y を -100 にしてみた。 左下の頂点の x,y が -100 移動し、縦横 200 ピクセルの矩形が表示された。 (このことから offsetMax は右上の頂点を制御しているようだ)
anchorMax の x,y を 0.75 してみた。 右上の頂点が 3/4 より少し上に移動した。
まとめ
- anchorMax は右上頂点を制御する。値は親オブジェクトの割合で 1.0 = 100%。
- anchorMin は左下頂点を制御する。値は親オブジェクトの割合で 1.0 = 100%。
- offsetMax は左下頂点を制御する。値は anchorMax からの相対位置。
- offsetMin は左下頂点を制御する。値は anchorMin からの相対位置。
【Unite Tokyo 2017】記事リンク
4gamer
■大損害を与えるスマートフォンゲームのチートに,いかに対策するか。「スマホゲーム開発者が知っておくべきチートのリスク&対策」をレポート
■映像制作にも使える高機能シェーダ「ユニティちゃんトゥーンシェーダーVer.2」はどのように作られたのか
■中国2億人市場にゲームを届ける! Xiaomi-Unityプロジェクト概要
■AIの進化はゲームデザインとプレイヤーにどんな影響をもたらすのか。セッション「ゲームAI・ゲームデザインから考えるゲームの過去・現在・未来」をレポート
■Unityがプリキュアの制作現場を効率化する。「『魔法つかいプリキュア!』EDでのUnity映像表現の詳細解説」聴講レポート
■Unite 2017 Tokyo開催,基調講演から見るUnityの現状と最新機能
Social Game Info
【Unite Tokyo 2016】記事リンク
4gamer
■新世代Unity 5.4でゲーム制作環境はどう変わるか? 最新機能を総まとめしたUnite 2016 Tokyo基調講演レポート
■インディーズゲームを世に知らしめるのは開発者自身が抱く“狂気”。セッション「Unityを使った個人ゲーム開発における『収益化』の現状と未来」聴講レポート
■オリジナルツールを作って作業の効率化を図る。『「ファイナルファンタジーグランドマスターズ」MayaからUnityへの橋渡し』聴講レポート
■Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。~カジュアル放置ゲームでのUnityの使い方~」聴講レポート
■個人のUnityスキルを評価する「Unity認定試験」の展開が紹介されたセッション「Unity教育への取り組み」聴講レポート
Social Game Info
■快適な通信プレイに欠かせない「Photon」とは 『ファイナルファンタジーグランドマスターズ』での実例で魅力を伝える
■『FFグランドマスターズ』MayaからUnityに橋渡しする際の最適化ツールやコスト削減について事例を交えて紹介
■『Fate/Grand Order』開発・運営のディライトワークスがこだわりぬいたモーションの非共通化と、その実装方法
■プログラマなしでマルチプレイの実装も可能 モノビットが提供する「Monobit Unity Networking」の全貌に迫る
■運営中のモバイルゲーム『ドラゴンファング』をNewニンテンドー3DSへ移植…二画面対応にボタン操作など考慮する点とは
■ユニティ、「Unite 2016 Tokyo」の講演動画を公式サイトにて公開 トレーニングデイ、基調講演、一般講演の動画43本を公開!