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

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

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

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

Unity

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

Q&A

解決済

1回答

1678閲覧

unity5 spriteについて

Taku_R

総合スコア17

C#

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

Unity

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

1グッド

0クリップ

投稿2015/08/21 14:09

例えば、
"Button1"をクリックすると"Button1"のspriteを"h1"に変更して、
そのあとに、"Button0"をクリックすると"Button1"のspriteを元の"Button1"のspriteに戻して、"Button0"のspriteを"h0"に変更をいうことをしたいです。
ですがコードの『###この部分です###』と書いてある所の時点で、"ButtonHSprite"の中に"h1"が入ってしまっています。どうしてでしょうか・・・。

コードも長く読みにくいかもしれませんが、どうか教えて頂けないでしょうか。よろしくお願い致します。回答お待ちしております。

SpriteRenderer MainSpriteRenderer, ButtonSpriteRenderer; Sprite ButtonHSprite; string Check; //publicで宣言し、inspectorで設定可能にする public Sprite clear,one,two,three,four,five,six,seven,eight,nine; public Sprite h0, h1, h2, h3, h4, h5, h6, h7, h8, h9; // Use this for initialization void Start () { } // Update is called once per frame void Update () { //クリックされたオブジェクトのSpriteRendererを取得 if (Input.GetMouseButtonDown(0)) { Vector3 aTapPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); Collider2D aCollider2d = Physics2D.OverlapPoint(aTapPoint); if (aCollider2d) { MainSpriteRenderer = aCollider2d.transform.gameObject.GetComponent<SpriteRenderer>(); Check = MainSpriteRenderer.name; switch (Check) { case "Button0": if (ButtonHSprite) { ButtonSpriteRenderer.sprite = ButtonHSprite; } ButtonHSprite = MainSpriteRenderer.sprite; ButtonSpriteRenderer = MainSpriteRenderer; MainSpriteRenderer.sprite = h0; break; case "Button1": if (ButtonHSprite) { ButtonSpriteRenderer.sprite = ButtonHSprite; } ButtonHSprite = MainSpriteRenderer.sprite; ###この部分です### ButtonSpriteRenderer = MainSpriteRenderer; MainSpriteRenderer.sprite = h1; break; case "Button2": if (ButtonHSprite) { ButtonSpriteRenderer.sprite = ButtonHSprite; } ButtonHSprite = MainSpriteRenderer.sprite; ButtonSpriteRenderer = MainSpriteRenderer; MainSpriteRenderer.sprite = h2; break; case "Button3": if (ButtonHSprite) { ButtonSpriteRenderer.sprite = ButtonHSprite; } ButtonHSprite = MainSpriteRenderer.sprite; ButtonSpriteRenderer = MainSpriteRenderer; MainSpriteRenderer.sprite = h3; break; case "Button4": if (ButtonHSprite) { ButtonSpriteRenderer.sprite = ButtonHSprite; } ButtonHSprite = MainSpriteRenderer.sprite; ButtonSpriteRenderer = MainSpriteRenderer; MainSpriteRenderer.sprite = h4; break; case "Button5": if (ButtonHSprite) { ButtonSpriteRenderer.sprite = ButtonHSprite; } ButtonHSprite = MainSpriteRenderer.sprite; ButtonSpriteRenderer = MainSpriteRenderer; MainSpriteRenderer.sprite = h5; break; case "Button6": if (ButtonHSprite) { ButtonSpriteRenderer.sprite = ButtonHSprite; } ButtonHSprite = MainSpriteRenderer.sprite; ButtonSpriteRenderer = MainSpriteRenderer; MainSpriteRenderer.sprite = h6; break; case "Button7": if (ButtonHSprite) { ButtonSpriteRenderer.sprite = ButtonHSprite; } ButtonHSprite = MainSpriteRenderer.sprite; ButtonSpriteRenderer = MainSpriteRenderer; MainSpriteRenderer.sprite = h7; break; case "Button8": if (ButtonHSprite) { ButtonSpriteRenderer.sprite = ButtonHSprite; } ButtonHSprite = MainSpriteRenderer.sprite; ButtonSpriteRenderer = MainSpriteRenderer; MainSpriteRenderer.sprite = h8; break; case "Button9": if (ButtonHSprite) { ButtonSpriteRenderer.sprite = ButtonHSprite; } ButtonHSprite = MainSpriteRenderer.sprite; ButtonSpriteRenderer = MainSpriteRenderer; MainSpriteRenderer.sprite = h9; break; default: ChangeSprite(); break; } } } } コード
Kitsutsuki👍を押しています

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

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

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

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

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

guest

回答1

0

自己解決

このスクリプトを複数のオブジェクトにコンポーネントしていたせいで上手く動かなかったみたいです。
maincameraのみにコンポーネントすると上手く動いてくれました。

投稿2015/08/22 09:03

Taku_R

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問