0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Unity初心者】Unityでネットゲームを作りたい【12】所持しているアニメ画像を指定の場所に表示したい

Last updated at Posted at 2025-01-25

所持しているアニメ画像を指定の場所に表示したい

どうしてもCanvasにimageを作ってそこに表示する方法ばっかで、せっかくアニメになってるのにimageに乗せると(アタッチ?)アニメにならないか表示されない
うーんどうにかならんかと色々またまたネットで検索しまくり
【Unity】スクリプトからのオブジェクト表示・非表示、見かけ上の表示・非表示こちらでオブジェの表示非表示の切り替えを発見

・オブジェクト非表示

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour
{
    [SerializeField] private GameObject a;//GameObject型の変数aを宣言 好きなゲームオブジェクトをアタッチ
 
    void Start()
    {
        a.SetActive(false);
    }
}

trueとfalseで表示非表示が切り替えられそう
これならドラッグアンドドロップした画像もなんとかなるかな?
挑戦
モンスタアニメを用意
image.png
後で選択とかしやすいように名前を数字に変更
image.png

スクリプト書いて

using UnityEngine;

public class TestT : MonoBehaviour
{        
    private string bbb = "0"; 

    //[SerializeField] private GameObject a;//GameObject型の変数aを宣言 好きなゲームオブジェクトをアタッチ
    void Start()
    {
    GameObject a = GameObject.Find(bbb);
    // コンポーネントの取得
    a.SetActive(false);
    }
}

後で変数で選択できるように、変数bbbにして確認
Mo1に放り込む
実行
image.png
消えた!!

でも、オブジェクトを探すときに数字の 0 ( a=0 )では無理だった...
文字列(string)じゃないとダメ (a="0")
forとか繰り返し使いたいから文字列に変更か


数字を文字列に変更

C#の変更のやつを試したけどエラー
Unityだと使えないらしい
Console.WriteLine(num.ToString());こんな感じの命令文はエラーになる、で
【Unity】文字列stringの関数まとめこちらを参照

int num = 123;
string character = num.ToString();

これで変わるらしい

やってみる
まず、PlayerのステータスJsonにMoNo(モンスターナンバーとした)に文字列で番号を追加した
image.png
"MoNo":"0" この部分を追加
これで初期登録時に追加される(文字列なんで”0”とした)
Json読み込んだ後 playermons.pmon[0].MoNo で参照できるはず

モンスター画像と登録しているモンスターナンバーが一致だとtrueじゃないとfalseで、同じ場所に設置した画像の表示非表示をやってみる

        //所持モンスターのJsonを読込
        string inputString = Resources.Load<TextAsset>("playermons").ToString();
        Pmon playermons = JsonUtility.FromJson<Pmon>(inputString);

        //一致したらtrueにして表示、それ以外はfalseで非表示
        for (int i = 0; i < 4; ++i)
        {
            string cha = i.ToString();
            if (playermons.pmon[0].MoNo == cha)
            {
                GameObject a = GameObject.Find(cha);
                a.SetActive(true);
            }
            else
            {
                GameObject a = GameObject.Find(cha);
                a.SetActive(false);
            }
        }

ちなみに1匹目だけね
今回の登録モンスターアニメは4匹(0~3)だから i<4
string cha = i.ToString(); ここでiを文字列に変更してchaに入れる
if (playermons.pmon[0].MoNo == cha) モンスタナンバーと同じかどうか判断

やる前はこうやって同じ場所に重ねてる
image.png
わかりずらいw
で、実行
image.png
指定のモンスター(0)だけのアニメが表示された!!成功
これを5匹所持するから、5回繰り返ししなきゃだけど、2匹目とかは考えなきゃだね~

今回追加したのはこれ

using UnityEngine;
using static PlayFabLogin;

public class MoC : MonoBehaviour
{
    void Start()
    {
        //新規の場合Json書込んでから読込みたいので起動を遅らせる
        Invoke("Mo0", 1.5f);
    }
        void Mo0()
    {
        //所持モンスターのJsonを読込
        string inputString = Resources.Load<TextAsset>("playermons").ToString();
        Pmon playermons = JsonUtility.FromJson<Pmon>(inputString);

        //一致したらtrueにして表示、それ以外はfalseで非表示
        for (int i = 0; i < 4; ++i)
        {
            string cha = i.ToString();
            if (playermons.pmon[0].MoNo == cha)
            {
                GameObject a = GameObject.Find(cha);
                a.SetActive(true);
            }
            else
            {
                GameObject a = GameObject.Find(cha);
                a.SetActive(false);
            }
        }

    }
}
   string inputString = Resources.Load<TextAsset>("playermons").ToString();
  Pmon playermons = JsonUtility.FromJson<Pmon>(inputString);

Jsonを読み込むこれを追加しただけで
勝手に using static PlayFabLogin; が追加された
マイクロソフトビジュアルスタジオすごい

今後

まず全部のモンスターアニメを同じところに設置して...
選択して表示非表示
を、全部の枠に設置して...同じ名前だとかぶるから、全部名前を変えて...
めんどいけどやっとけば、戦闘とかにも使えるのかな
ステータスもすべてにText設定して表示しなきゃだし
めんどいw

htmlのが表示は楽だけど、こっちのほうが選択は増えるし、ゲームとしては完成度上がる
その分やる事が増えるけど
プログラマーさんには頭上がらんね

←前 【Unity初心者】Unityでネットゲームを作りたい【11】ゲームビュー、シミュレータ機種によって表示がずれる~画面の大きさ~カメラの関係(表示したい画像が出ない)

【Unity初心者】Unityでネットゲームを作りたい【13】ひたすらアニメーション画像貼り付け~ビルドしてスマホに表示してみる 次→

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?