Micomprocedure Wiki
UnityFAQ
をテンプレートにして作成
開始行:
Unityでゲームを作るにあたり実際につまづいた点などをまとめてみました。
同様の疑問を持つ人もいるかと思うので、それぞれの疑問をFAQとして共有できればと思いページを作成してみました。
#contents
**Unity4とUnity5の重大な違い [#nab0ae6f]
Unity4での書き方
#code(csharp){{
rigidbody.transform;
renderer.material;
}}
Unity5での書き方
#code(csharp){{
GetComponent<Rigidbody>().transform;
GetComponent<Renderer>().material;
}}
ネットで資料を検索するとunity4の記事が出てきて、その通りに書くとunity5では動かないです。
**GetKeyUp,GetKeyDownがたまに動かない [#r6b4717f]
→その処理をFixedUpdateに書いている可能性。
GetKeyDown,UpはUpdateでしか使用できません。FixedUpdateには物理演算関連の処理を書きますが、GetKey系と混在する場合、Update内でFlagを立てる、FixedUpdate内で物理演算するという解決策があります。
参考
[[http://stackoverflow.com/questions/19259097/is-it-really-wrong-to-use-input-getkey-on-fixedupdate]]
**MonoDevelop Ctrl Z できるけど Ctrl Y できない? [#cca0a881]
→Shift + Ctrl Z が ReDo機能
**UIが動かない時の対処 [#h7946a9c]
→EventSystemが存在しているか?
→2つ以上のUIが重なっていないか?
UIをタッチした場合手前のものしかタッチされないという仕様。
その為ボタンが入り乱れる場合
#code(csharp){{
Button.GetComponent<Button> ().interactable = true;
}}
でボタン機能そのものをONOFFするよりも
#code(csharp){{
Button.gameObject.SetActive(true);
}}
のようにボタン自体ONOFFした方が良いと思われる。
と思ったが今度はsetActiveがfalseの時Find系に発見されなくなるなど使い分けが必要な模様。
**他のシーンで作ったUIのPanelが動かない [#j40dcaa9]
→Canvasのサイズが一致していない可能性
CanvasScalerの値を一致させると治ることがある。
**シーン再生中に動的にUIやらゲームオブジェクトを生成する場合 [#ceb7a77a]
inspector上でアタッチする方法は使えない。(はずである)
→Find系を使用する。
**RectTransformについて [#m957bb0b]
RectTransformはTransformと違い、PresetAnchorによって構成要素の名前がたびたび変わる。
たとえばPosYとTopの指定の違いやWidthとXdeltaの指定の違いなど、一見するとどうしてこれが違ってるのだろうということが起こりうる。
unityのCreateでuGUIのテキストやパネルは初期設定で異なるPresetAnchorが指定されていることもあり、知らないと混乱を招く。
**uGUIにおいてCanvasScalerの値を間違えた状態でUIを配置してしまった [#pb4a1fc4]
→一つ一つ手直ししました。
事の顛末は9:16の想定でCanvasScalerの値を設定したつもりが16:9の数値を入れてしまっていたことが始まり。
AspectRatioFitterなどいろいろ試してみたのですが、うまくいかずただただ時間が過ぎていってしまったので手直しという選択をしました。
手直しはscaleに9/16をひたすらかけるという方法をとりました。
配置し始める前であれば以下のようにアスペクト比を固定することができるようです。
[[http://tsubakit1.hateblo.jp/entry/2014/12/11/223427]]
**animationを座標変更に使用したい [#tdf08ceb]
→Unityにおいてanimationは便利な機能の1つであり、座標の変更行うことが出来る。
animationを加えたいGameObjectを選択してからAnimationWindowを開き設定を行うわけだが、
AddCurveから座標を設定してanimationを再生してみると、初期設定では座標変更に慣性がかかり補正がかかった移動がされる。
この補正が自分はおせっかいに感じたので変更方法をここに記す。
変更方向としては、キーを右クリック→BothTangents→Linearとすることで前後の移動慣性を無視するようになる。
また、animationWindowの左下の所のDopeSheetとCurvesというところを、Curveに切り替えると詳細な移動の様子を見ることが出来る。
実際に変更を適用するとCurveが変わっていることが確認できる。
参考 Unity Manual
[[http://docs.unity3d.com/ja/current/Manual/EditingCurves.html]]
**Unity 2DのZ座標 [#j3257f54]
→初期設定では手前がマイナス。座標軸は奥に向いている。
**2Dオブジェクトの幅を取得 [#m6466862]
#code(csharp){{
gameObject.GetComponent<SpriteRenderer>().bounds.size.x;
}}
でスプライトの幅を取得できます。
**Unity.Random(min,max)について [#t95d0acd]
→Int型で運用する場合返り値はmin<=x<=max -1。
よってUnity.Random(0,a.Length)やUnity.Random(0,a.Count)といった使い方ができる。
終了行:
Unityでゲームを作るにあたり実際につまづいた点などをまとめてみました。
同様の疑問を持つ人もいるかと思うので、それぞれの疑問をFAQとして共有できればと思いページを作成してみました。
#contents
**Unity4とUnity5の重大な違い [#nab0ae6f]
Unity4での書き方
#code(csharp){{
rigidbody.transform;
renderer.material;
}}
Unity5での書き方
#code(csharp){{
GetComponent<Rigidbody>().transform;
GetComponent<Renderer>().material;
}}
ネットで資料を検索するとunity4の記事が出てきて、その通りに書くとunity5では動かないです。
**GetKeyUp,GetKeyDownがたまに動かない [#r6b4717f]
→その処理をFixedUpdateに書いている可能性。
GetKeyDown,UpはUpdateでしか使用できません。FixedUpdateには物理演算関連の処理を書きますが、GetKey系と混在する場合、Update内でFlagを立てる、FixedUpdate内で物理演算するという解決策があります。
参考
[[http://stackoverflow.com/questions/19259097/is-it-really-wrong-to-use-input-getkey-on-fixedupdate]]
**MonoDevelop Ctrl Z できるけど Ctrl Y できない? [#cca0a881]
→Shift + Ctrl Z が ReDo機能
**UIが動かない時の対処 [#h7946a9c]
→EventSystemが存在しているか?
→2つ以上のUIが重なっていないか?
UIをタッチした場合手前のものしかタッチされないという仕様。
その為ボタンが入り乱れる場合
#code(csharp){{
Button.GetComponent<Button> ().interactable = true;
}}
でボタン機能そのものをONOFFするよりも
#code(csharp){{
Button.gameObject.SetActive(true);
}}
のようにボタン自体ONOFFした方が良いと思われる。
と思ったが今度はsetActiveがfalseの時Find系に発見されなくなるなど使い分けが必要な模様。
**他のシーンで作ったUIのPanelが動かない [#j40dcaa9]
→Canvasのサイズが一致していない可能性
CanvasScalerの値を一致させると治ることがある。
**シーン再生中に動的にUIやらゲームオブジェクトを生成する場合 [#ceb7a77a]
inspector上でアタッチする方法は使えない。(はずである)
→Find系を使用する。
**RectTransformについて [#m957bb0b]
RectTransformはTransformと違い、PresetAnchorによって構成要素の名前がたびたび変わる。
たとえばPosYとTopの指定の違いやWidthとXdeltaの指定の違いなど、一見するとどうしてこれが違ってるのだろうということが起こりうる。
unityのCreateでuGUIのテキストやパネルは初期設定で異なるPresetAnchorが指定されていることもあり、知らないと混乱を招く。
**uGUIにおいてCanvasScalerの値を間違えた状態でUIを配置してしまった [#pb4a1fc4]
→一つ一つ手直ししました。
事の顛末は9:16の想定でCanvasScalerの値を設定したつもりが16:9の数値を入れてしまっていたことが始まり。
AspectRatioFitterなどいろいろ試してみたのですが、うまくいかずただただ時間が過ぎていってしまったので手直しという選択をしました。
手直しはscaleに9/16をひたすらかけるという方法をとりました。
配置し始める前であれば以下のようにアスペクト比を固定することができるようです。
[[http://tsubakit1.hateblo.jp/entry/2014/12/11/223427]]
**animationを座標変更に使用したい [#tdf08ceb]
→Unityにおいてanimationは便利な機能の1つであり、座標の変更行うことが出来る。
animationを加えたいGameObjectを選択してからAnimationWindowを開き設定を行うわけだが、
AddCurveから座標を設定してanimationを再生してみると、初期設定では座標変更に慣性がかかり補正がかかった移動がされる。
この補正が自分はおせっかいに感じたので変更方法をここに記す。
変更方向としては、キーを右クリック→BothTangents→Linearとすることで前後の移動慣性を無視するようになる。
また、animationWindowの左下の所のDopeSheetとCurvesというところを、Curveに切り替えると詳細な移動の様子を見ることが出来る。
実際に変更を適用するとCurveが変わっていることが確認できる。
参考 Unity Manual
[[http://docs.unity3d.com/ja/current/Manual/EditingCurves.html]]
**Unity 2DのZ座標 [#j3257f54]
→初期設定では手前がマイナス。座標軸は奥に向いている。
**2Dオブジェクトの幅を取得 [#m6466862]
#code(csharp){{
gameObject.GetComponent<SpriteRenderer>().bounds.size.x;
}}
でスプライトの幅を取得できます。
**Unity.Random(min,max)について [#t95d0acd]
→Int型で運用する場合返り値はmin<=x<=max -1。
よってUnity.Random(0,a.Length)やUnity.Random(0,a.Count)といった使い方ができる。
ページ名:
サイト内を検索
AND検索
OR検索
操作メニュー
サークル情報
†
名称
東北大学文化部登録団体
東北大学マイコンプロシージャ
部室
川内北キャンパス内
川内サークル部室棟 4階
416号室
設立
1979年4月1日
(45年前)
活動内容
ゲームの制作・発表等
(
詳細
)
連絡先
こちら
↑
Twitter
†
@micom_procedure からのツイート
このウェブページについて
ここを編集
コンテンツ
†
トップページ
マイコンプロシージャとは?
公開中の作品
その他の作品
資料室
情報室
リンク
部内向けページトップ
最新の20件
2023年05月25日
ContactUs
2022年11月03日
公開中の作品/2021年度新入生プロジェクト/Gravity-Lost
公開中の作品/2021年度新入生プロジェクト/はるさがし
2021年12月13日
公開中の作品/2021年度新入生プロジェクト/落単・タイム・アタック!
公開中の作品/2021年度新入生プロジェクト/神社からの脱出
RecentDeleted
公開中の作品/2021年度新入生プロジェクト/THE Unexpected Fighting Operation
公開中の作品/2021年度新入生プロジェクト
2021年12月03日
公開中の作品/2020年度新入生プロジェクト/城熊
公開中の作品/2020年度新入生プロジェクト
2021年07月18日
公開中の作品
ProcGameJam9
Inneer/C++_const
2021年04月18日
公開中の作品/2020年度新入生プロジェクト/CrossFade
2021年04月17日
2021年度新歓情報
公開中の作品/2020年度新入生プロジェクト/TeamC no game
2021年04月07日
ようこそ
公開中の作品/2020年度新入生プロジェクト/トキノカダイ
2021年04月04日
2020年度新歓情報
2020年09月15日
ProcGameJam10
ここを編集