自作ゲームを作成途中のUnity初心者ですが、わからないことがあったので質問させていただきます。
やりたいこと
①他のオブジェクトから要素(string)をリスト(string)へ追加し、スクリプト内で要素(int)をリスト(int)へ追加する。
②要素(string)、要素(int)の一番上をリスト内で取得する。
③要素(string)と同名のオブジェクトをResourcesフォルダからResources.Loadして、そのオブジェクトを要素(int)を使って求めた座標へInstantiateする。
④要素(string)には大量の文字、要素(int)には大量の整数を足して次から②で取得されないようにしたい。
④が出来ず、再び取得されてしまうため、Instantiateが何回も実行されてしまいます。間違っている場所を指摘していただけたら幸いです。
##スクリプト
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerInventory : MonoBehaviour//
{
public List<string> platory = new List<string>();
private List<int> spece = new List<int>();
private string result;
private Object result2;
private int resultnum;
private float canin;
private Vector3 canin2;
void Start() { process1(); spece.Add(1); spece.Add(2); } private void process1() { result = platory.Find(e => e.Length <= 20);//入ってくる要素は20文字以内だけ canin = spece.Find(n => n <=1000);//入れてる要素は1000以下だけ Debug.Log(canin); if (result!=null) { resultnum = result.Length;// この2行は要素(string)に必ず含まれる(Clone) result = result.Substring(0,resultnum - 7);// という文字を消すため。関係ないと思われます。 Invoke("process2", 0.1f); } else { Invoke("process1", 0.1f); } } private void process2() { result2 = Resources.Load(result); canin2 = new Vector3(canin*100, 100f); Debug.Log(result); Invoke("process3", 0.1f); } private void process3() { Instantiate(result2, canin2, Quaternion.identity); result = result + "aaaaaaaaaaaaaaaaaaaa"; canin = canin + 1000; Invoke("process1", 0.1f); Debug.Log(result);//___________________ここでは要素(string)+aaaaaa…が確認できた }
}
回答1件
あなたの回答
tips
プレビュー