質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

4871閲覧

unity ScrollView内のContentの位置がずれる

jabu

総合スコア38

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2019/07/11 20:30

編集2019/07/12 02:18

Unity2DのScrollViewについて質問です。
UI=>Scroll Viewで作ったオブジェクトの中のContentに動的にNodePrefabを追加しているのですが、プロジェクトを停止した後にContentのRect TransformのPos Xの値がなぜか意図しない値に置き換わってしまいます。

初期値のPos Xは0なのですが、プロジェクト実行=>実行停止=>(ここでなぜか値が変わる)もう一度実行=>Contentに並べたNodePrefabのX座標がずれる。

となるのですが、原因がわかりません。

●試したこと
ScrollView.GetComponentInChildren<UIScrollView>().ResetPosition();
を呼ぶとあったのですが、UIScrollViewコンポーネントは使っておらず、UIScrollViewが使えません。

どなたか解決方法のご教授をお願いいたします。

以下、情報を追加します。

●Unityのバージョン
=> 2018.3.6f1

●NodePrefabを追加するスクリプト
=> 以下に記載しました。

●ScrollViewがプレハブかどうか
=> ScrollViewはプレハブではありません。参考画像を添付いたします。
イメージ説明

●Contentに付けている他のコンポーネント
=>
イメージ説明

●ずれているのは「ContentのX位置」なのか「NodePrefabのX位置」なのか
=> ずれるのはContentのRect TransformのPos Xの値です。参考画像の青いところが初期値は0なのですが、プロジェクトを実行=>停止とすると毎回Pos Xが154に置き換わってしまいます。
イメージ説明

=> 以下、NodePrefabを追加するスクリプトです

public class AddRankingNode : MonoBehaviour { [SerializeField] RectTransform prefab = null; public void MakeRnaking() { for (int i = 0; i < 5; i++) { var item = GameObject.Instantiate(prefab) as RectTransform; item.SetParent(transform, false); } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura_hana

2019/07/12 01:23

Unityのバージョン・NodePrefabを追加するスクリプト・ScrollViewがプレハブかどうか・Contentに付けている他のコンポーネント・ずれているのは「ContentのX位置」なのか「NodePrefabのX位置」なのか 上記を質問に追加頂けますでしょうか。
jabu

2019/07/12 02:19

sakura_hana様情報追加のご依頼ありがとうございます。上記質問を編集しました。ご確認ください。宜しくお願いします。
sakura_hana

2019/07/12 05:18

未検証ですが、恐らくVerticalLayoutGroupのChildForceExpandの為にWidthが親(Viewport)の幅まで伸びて、Pivotが0.5なのでX位置がWidthの半分の値(中央を示すから)になって、それがどういう訳か再生終了後も維持されてる、ってことなんじゃないかと思います。 ChildForceExpandのWidthのチェックを外してみてください。
jabu

2019/07/12 11:52

sakura_hana様ご回答ありがとうございます。ChildForceExpandのWidthのチェックを外してみたのですがやはり値が変わってしまいました。いろいろと試行錯誤した挙句ContentのAnchorsを変更したところ値が変わらなくなりましたので、自己解決方法に記載しました。参考にあるご意見ありがとうございました。とても勉強になりました。今後とも宜しくお願いいたします。
guest

回答1

0

自己解決

ContentのAnchors
Min:X0 Y1、Max:X1 Y1、Pivot:X0.5 Y0.5に変更したとこと値がとりあえず問題解決しました。
参考画像
イメージ説明
ご回答いただいた方本当にありがとうございました。

投稿2019/07/12 11:57

jabu

総合スコア38

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jabu

2019/07/12 11:58 編集

sakura_hanaさま本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問