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

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

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

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

UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

Q&A

1回答

1313閲覧

Canvasの移動が反映されない

hikaaaaaaaa

総合スコア19

C#

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

UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

0グッド

0クリップ

投稿2020/04/22 12:07

unity3Dでゲームを作っています。

キャラクターを買って選んで遊べるゲームを作るためにShopScene内に親キャンバスを一つ用意し、
その子要素として各キャラクターごとのキャンバスを作成し、購入ボタン
購入がすでにされている場合には選ぶボタンをが反映されるような設定にしました。

ShopSceneを開き、左右にあるボタンを押すと座標が移動して親Canvasのx座標が移動するスクリプト書いたのですが、ボタンUIの反映がされません。どなたかアドバイスをいただけますと幸いです。

画像ですと左のCanvus(子要素Canvus1と同じ座標をもつ)から子要素Canvus2の座標に視点を移動させたいです。
よろしくお願いいたします。
イメージ説明

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5using System; 6 7public class ShopSceneManager : MonoBehaviour 8{ 9 int displayed; 10 [SerializeField] 11 GameObject Canvus; 12 13 14 GameObject mainCamObj; 15 16 17 18 19 20 21 void Awake() 22 { 23 displayed = 0; 24 } 25 26 27 void Start() 28 { 29 30 31 32 mainCamObj = GameObject.Find("Main Camera"); 33 } 34 35 public void ScrollLeft() 36 { 37 displayed--; 38 if (displayed < 0) 39 { 40 displayed = 14; 41 } 42 Move(); 43 } 44 45 public void ScrollRight() 46 { 47 displayed++; 48 if (displayed > 14) 49 { 50 displayed = 0; 51 } 52 Move(); 53 } 54 55 void Move() 56 { 57 58 //この部分が反映されません。** 59 Canvus.transform.localPosition = new Vector3(-3000 * displayed, 621, 0); 60 61     //これでもできませんでした 62 Canvus.GetComponent<RectTransform>().DOAnchorPos(new Vector3(-3000 * displayed, 621, 0), 0.75f); 63 64    //カメラの遷移はされております。 65 mainCamObj.transform.localPosition = new Vector3(100 * displayed, 3, -3); 66 67 } 68 69 70 71} 72

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

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

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

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

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

fiveHundred

2020/04/22 12:58

Canvasの設定はどうなっていますか? 「Render Mode」は「World Space」になっておりますよね?
hikaaaaaaaa

2020/04/22 13:00

fiveHundred様 ご返信ありがとうございます。 スクリーンスペースーオーバレイになっております。
guest

回答1

0

スクリーンスペースーオーバレイになっております。

この設定だと、カメラの位置に関わらず、キャンバスの位置を基準として表示されるので、その位置を変えても意味ありません。

投稿2020/04/22 13:05

fiveHundred

総合スコア9908

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

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

hikaaaaaaaa

2020/04/22 13:13

ご回答ありがとうございます。 ちなみに「Render Mode」を「World Space」に変更し、MainCameraのアタッチを行ったところ、ボタンなどのUIが全て消えてしまうのですが、こちらどのようにすれば反映がされるのでしょうか。。
fiveHundred

2020/04/22 13:23

適当に「World Space」を挙げてしまいましたが、この場合だと「Screen Space - Overlay」のままの方が使いやすい気がします。 適当なUI(親UIとする)を配置し、ボタンなどをその子オブジェクトとすれば、親UIを動かすだけで済みます。 もし親UIの表示などが不要であれば、Rect Transform以外の親UIのコンポーネントを削除すればよろしいかと。 > ボタンなどのUIが全て消えてしまうのですが 多分、カメラとキャンバスの配置が正しくないので、カメラにキャンバスが映っていないだけだと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問