現状
ボタンを押すことで魔法を習得して3つまでセットできる
魔法セット画面にhorizontal layout groupをつけている
実現したいこと
魔法セット画面で所持している魔法ボタンを押した時にその魔法の画像を3つ並べて生成したいので押したボタンの画像を子要素として生成したい
該当コード
unity
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class Player : MonoBehaviour 7{ 8 9 // 10 public float span = 2; 11 public float delta = 0; 12 private GameObject Magic; 13 private GameObject nearObj; 14 public List<string> magic = new List<string>(); 15 public int i; 16 public List<string> unLearnedMagic = new List<string>(); 17 int count = 3; 18 private GameObject selectmagic; 19 private GameObject childmagic; 20 public GameObject parentChoice; 21 public GameObject ChoiceMagicCanvas; 22 public GameObject SetMagic; 23 24 // 25 public GameObject Controller; 26 public GameObject Menu; 27 28 public void Awake() 29 { 30 unLearnedMagic.Add("MagicButton/FireBallButton"); 31 unLearnedMagic.Add("MagicButton/IceBallButton"); 32 unLearnedMagic.Add("MagicButton/EathBallButton"); 33 while (count-- > 0) 34 { 35 36 int index = Random.Range(0, unLearnedMagic.Count); 37 string ransu = unLearnedMagic[index]; 38 selectmagic = (GameObject)Resources.Load(ransu);// 39 childmagic = Instantiate(selectmagic, transform.position, Quaternion.identity); 40 childmagic.transform.parent = parentChoice.transform; 41 Debug.Log(ransu); 42 childmagic.GetComponent<Button>().onClick.AddListener(() => OnRegisterMagic(ransu)); 43 unLearnedMagic.RemoveAt(index); 44 } 45 } 46 47 void Start() 48 { 49 animator = this.gameObject.GetComponent<Animator>();// 50 magic.Add("Magic/NomalBall"); 51 i = 0; 52 Magic = (GameObject)Resources.Load(magic[i]);// 53 } 54 55 void Update() 56 { 57 if (velocity.magnitude < 0.1 || moveVector != new Vector3(1, 1, 1)) 58 { 59 Magic = (GameObject)Resources.Load(magic[i]);// 60 } 61 62 } 63 64/////////////////// 魔法セット部分(ボタンにセット) ///////////////////////////// 65 // クリックした魔法名を引数で渡す 66 public void OnRegisterMagic(string magicName) 67 { 68 // 既に登録済みの魔法を選択した場合はリストから削除する 69 foreach (var v in magic) 70 { 71 if (v == magicName) 72 { 73 magic.Remove(v); 74 return; 75 } 76 } 77 78 // セット数は三つまで 79 if (magic.Count < 3) 80 { 81 magic.Add(magicName); 82 OnSetMagic(); 83 } 84 } 85//////////////////////////////////////////////////////////////////// 86 87 public void OnSetMagic() 88 { 89 90 } 91 92 public void OnClickMenu() 93 { 94 Controller.SetActive(false); 95 Menu.SetActive(true); 96 } 97 public void MenuBack() 98 { 99 Controller.SetActive(true); 100 Menu.SetActive(false); 101 } 102 103}
https://teratail.com/help/question-tips
こちらを参考に、調べたこと・試したこと・何が疑問なのかを明確に記載してください。
(現状だと「OnSetMagicメソッドに画像を表示するコードを書いてください」が回答になります)
回答1件
あなたの回答
tips
プレビュー