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

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

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

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

671閲覧

Unity 要素を一定間隔空けて無限スクロールさせたい

HogeOne

総合スコア8

C#

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/10/21 09:27

編集2019/10/23 02:54

前提・実現したいこと

Unityで複数の要素を無限スクロールさせたいのですが、す早くスワイプするとpositionがだんだんとずれてしまいます。

一定間隔を常に保ってpositionをループさせる方法があればご教授のほどお願いいたします。

該当のソースコード

C#

1void Update () 2 { 3 float speed = 0.05f; 4 if (Input.touchCount > 0) 5 { 6 Touch touch = Input.GetTouch(0); 7 switch (touch.phase) 8 { 9 case TouchPhase.Began: 10 break; 11 12 case TouchPhase.Moved: 13 Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition; 14 15 foreach (Transform child in transform) 16 { 17 18 child.Translate(0, Mathf.Ceil(touchDeltaPosition.y * speed), 0); 19 20 if(child.position.y >= 0f) { 21 22 child.localPosition = new Vector3(0, -100f ,0); 23 24 } 25 if(child.position.y <= -100f) { 26 27 child.localPosition = new Vector3(0,0f,0); 28 } 29 30 } 31 break; 32 33 case TouchPhase.Ended: 34 35 break; 36 } 37 } 38}

試したこと

カメラを複数使用してのループではなくobj自体を動かしてループさせたいです。

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

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

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

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

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

KanazawaKureha

2019/10/22 06:32

positionがずれるというのは何が何向きにどうずれるのでしょうか? また、イメージがわかないのでスクリーンショットなども提示していただけると助かります。
HogeOne

2019/10/24 05:23

言葉足らずで申し訳ございませんでした、 次回からはスクリーンショットものせるようにします!
guest

回答1

0

ベストアンサー

原因はここです

if(child.position.y >= 0f) { child.localPosition = new Vector3(0, -100f ,0); }

ループする前に10にいようが20にいようが-100という固定座標に移動します
この瞬間に隣との間隔が変わってしまいます

10にいれば、10だけオーバーしているわけですから、移動すべき座標は-90です
以下のようにそれを考慮しましょう

child.localPosition = child.localPosition - new Vector3(0, -100f ,0);

投稿2019/10/23 02:02

izmktr

総合スコア2856

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

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

HogeOne

2019/10/24 05:22

なるほど! わかりやすい説明ありがとうございます。解決いたしました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問