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

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

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

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

Q&A

解決済

1回答

348閲覧

ゲームオブジェクトを保存して読み込みたい

退会済みユーザー

退会済みユーザー

総合スコア0

Unity

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

0グッド

1クリップ

投稿2020/05/05 11:10

前提・実現したいこと

セット中の魔法をセットされた状態で始めたい
習得した魔法のinteractableをtrueで始めたい

発生している問題

何もセットしていない状態ではじまる

押してstringを渡しているから方法がわからない

試したこと

player

1public class Player : MonoBehaviour 2{ 3 private GameObject Magic; 4 public static List<string> magic = new List<string>(); 5 public static List<string> unLearnedMagic = new List<string>(); 6 7 public static List<GameObject> setimage = new List<GameObject>(); 8 public GameObject change; 9 private Sprite[] m_Sprite; 10 11void Start() 12 { 13 Menu.SetActive(false); 14 ChoiceMagicCanvas.SetActive(false); 15 Controller.SetActive(true); 16 17 if (cgame == true) 18 { 19 Continue(); 20 } 21 else 22 { 23 New(); 24 } 25 26 } 27 28 public void New() 29 { 30 //未習得の魔法追加 31 unLearnedMagic.Add("FireBallUI"); 32 unLearnedMagic.Add("IceBallUI"); 33 unLearnedMagic.Add("EathBallUI"); 34 unLearnedMagic.Add("IceSpearUI"); 35 unLearnedMagic.Add("FireSpearUI"); 36 unLearnedMagic.Add("EathSpearUI"); 37 unLearnedMagic.Add("NomalStormUI"); 38 unLearnedMagic.Add("FireStormUI"); 39 unLearnedMagic.Add("EathStormUI"); 40 unLearnedMagic.Add("IceStormUI"); 41 unLearnedMagic.Add("NomalWallUI"); 42 unLearnedMagic.Add("FireWallUI"); 43 unLearnedMagic.Add("EathWallUI"); 44 unLearnedMagic.Add("IceWallUI"); 45 unLearnedMagic.Add("FireArrowUI"); 46 unLearnedMagic.Add("IceArrowUI"); 47 unLearnedMagic.Add("EathArrowUI"); 48 unLearnedMagic.Add("FireSwordUI"); 49 unLearnedMagic.Add("IceSwordUI"); 50 unLearnedMagic.Add("EathSwordUI"); 51 52 magic.Add("Magic/NomalBall");//最初の魔法 53 i = 0; 54 Magic = (GameObject)Resources.Load(magic[i]);//セット中の魔法 55 56 // 魔法セット画面に最初の魔法追加 57 GameObject nomalballimage = (GameObject)Resources.Load("MagicImage/NomalBallImage"); 58 GameObject setchild = Instantiate(nomalballimage, transform.position, Quaternion.identity); 59 setchild.transform.SetParent(SetMagic.transform); 60 61 setimage.Add(nomalballimage); 62 m_Sprite = new Sprite[1]; 63 m_Sprite[i] = setimage[i].GetComponent<Image>().sprite; 64 change.GetComponent<Image>().sprite = m_Sprite[i]; 65 66 //ステータス 67 hpslider.value = 1; 68 currentHp = maxHp; 69 manaslider.value = 1; 70 currentMana = maxMana; 71 damageUI = (GameObject)Resources.Load("System/DamageUI"); 72 } 73 74 public void Continue() 75 { 76 // 77 gameObject.transform.position=new Vector3 (PlayerPrefs.GetFloat("Posx"),PlayerPrefs.GetFloat("Posx"),PlayerPrefs.GetFloat("Posx")); 78 79 // 80 for (int i = 0; i < PlayerPrefs.GetInt("magicCount"); i++) 81 { 82 magic.Add(PlayerPrefs.GetString("magic"+i)); 83 } 84 85 // 86 for (int i = 0; i < PlayerPrefs.GetInt("unLearnedMagicCount"); i++) 87 { 88 magic.Add(PlayerPrefs.GetString("unLearnedMagic" + i)); 89 } 90} 91 // クリックした魔法名を引数で渡す 92 public void OnRegisterMagic(string magicName) 93 { 94 // セット数は三つまで 95 if (magic.Count <= 3) 96 { 97 magic.Add(magicName); 98 } 99 100 if (magic.Count > 3) 101 { 102 magic.Clear(); 103 setimage.Clear(); 104 i = 0; 105 } 106 } 107 108 public void SettingMagic(string setmagic)//魔法セット 109 { 110 //魔法セットキャンバスに魔法の画像セット 111 GameObject magicimage= (GameObject)Resources.Load(setmagic); 112 setchild= Instantiate(magicimage, transform.position, Quaternion.identity); 113 setchild.transform.SetParent(SetMagic.transform); 114 setCount = SetMagic.transform.childCount; 115 116 //3つ以上なったらセットされてる魔法の画像削除 117 if (setCount > 3) 118 { 119 foreach(Transform set in SetMagic.transform) 120 { 121 Destroy(set.gameObject); 122 } 123 setimage.Clear(); 124 m_Sprite = new Sprite[0]; 125 } 126 127 if (magic.Count == 1) 128 { 129 setimage.Add((GameObject)Resources.Load(setmagic)); 130 i = 0; 131 Array.Resize(ref m_Sprite, m_Sprite.Length + 1); 132 133 m_Sprite[i] = setimage[i].GetComponent<Image>().sprite; 134 change.GetComponent<Image>().sprite = m_Sprite[i]; 135 } 136 else if (magic.Count > 1) 137 { 138 setimage.Add((GameObject)Resources.Load(setmagic)); 139 i += 1; 140 Array.Resize(ref m_Sprite, m_Sprite.Length + 1); 141 m_Sprite[i] = setimage[i].GetComponent<Image>().sprite; 142 change.GetComponent<Image>().sprite = m_Sprite[i]; 143 } 144 } 145 146public void OnSetMagic(string magicName)//習得した魔法セットできる様にする 147 { 148 Button magicbutton = GameObject.Find(magicName).GetComponent<Button>(); 149 magicbutton.interactable = true; 150 magicbutton.transform.SetSiblingIndex(0); 151 unLearnedMagic.Remove(magicName); 152 foreach (Transform c in parentChoice.transform) 153 { 154 Destroy(c.gameObject); 155 } 156 ChoiceMagicCanvas.SetActive(false); 157 close.SetActive(true); 158 count = 3; 159 } 160 161 public void GetMagic()//魔法獲得 162 { 163 Menu.SetActive(true); 164 ChoiceMagicCanvas.SetActive(true); 165 close.SetActive(false); 166 moveSpeed = 0; 167 168 while (count-- > 0)//持っていない魔法の中からランダムに選択肢与える 169 { 170 int index = Random.Range(0, unLearnedMagic.Count); 171 string ransu = unLearnedMagic[index]; 172 selectmagic = (GameObject)Resources.Load(ransu);// 173 childmagic = Instantiate(selectmagic, transform.position, Quaternion.identity); 174 childmagic.transform.SetParent(parentChoice.transform); 175 childmagic.GetComponent<Button>().onClick.AddListener(() => OnSetMagic(ransu)); 176 } 177 count = 0; 178 } 179}

save

1public class StageSave : MonoBehaviour 2{ 3 public static bool save; 4 5 public void Clear() 6 { 7 gameObject.GetComponent<Collider>().isTrigger = true; 8 save = true; 9 } 10 11 private void OnTriggerStay(Collider other) 12 { 13 if (other.gameObject.CompareTag("Player")) 14 { 15 if (save == true) 16 { 17 player.SendMessage("GetMagic"); 18 } 19 20 // 21 PlayerPrefs.SetFloat("Posx", gameObject.transform.position.x); 22 PlayerPrefs.SetFloat("Posy", gameObject.transform.position.y); 23 PlayerPrefs.SetFloat("Posz", gameObject.transform.position.z); 24 25 // 26 if (Player.magic.Count >= 0) 27 { 28 for (int i = 0; i < Player.magic.Count; i++) 29 { 30 PlayerPrefs.SetString("magic" + i, Player.magic[i]); 31 } 32 PlayerPrefs.SetInt("magicCount", Player.magic.Count); 33 } 34 35 // 36 if (Player.unLearnedMagic.Count >= 0) 37 { 38 for (int i = 0; i < Player.unLearnedMagic.Count; i++) 39 { 40 PlayerPrefs.SetString("unLearnedMagic" + i, Player.unLearnedMagic[i]); 41 } 42 PlayerPrefs.SetInt("unLearnedMagicCount", Player.unLearnedMagic.Count); 43 } 44 45 // 46 47 Player.data = true; 48 49 } 50 }

title

1public class TItle : MonoBehaviour 2{ 3 4 public void OnNomalGame() 5 { 6 Player.cgame = false; 7 load.SetActive(true); 8 StartCoroutine(Load()); 9 } 10 public void OnContinue() 11 { 12 Player.cgame = true; 13 StageSave.save = false; 14 load.SetActive(true); 15 StartCoroutine(Load()); 16 } 17} 18

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

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

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

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

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

sakura_hana

2020/05/05 23:50

「Debug.Log」を加え、どこまで正しく動作しているか確認してください。 (「保存されていない」「保存されているのにロードしていない」など)
guest

回答1

0

ベストアンサー

//
m_Sprite = new Sprite[PlayerPrefs.GetInt("getmagicimageCount")];
i = PlayerPrefs.GetInt("getmagicimageCount");
for (int i = 0; i < PlayerPrefs.GetInt("getmagicimageCount"); i++)
{
string setmagic = PlayerPrefs.GetString("continueMagicimage" + i);

//魔法セットキャンバスに魔法の画像セット GameObject magicimage = (GameObject)Resources.Load(setmagic); setchild = Instantiate(magicimage, transform.position, Quaternion.identity); setchild.transform.SetParent(SetMagic.transform); setCount = SetMagic.transform.childCount; setimage.Add((GameObject)Resources.Load(setmagic)); m_Sprite[i] = setimage[i].GetComponent<Image>().sprite; change.GetComponent<Image>().sprite = m_Sprite[i]; }

投稿2020/05/06 12:43

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問