Unityで2Dのゲームを制作しております。
その際に、Animationの設定をしてPrefab化したオブジェクトをスクリプトで生成し、
スクリプト内で決めたポジションへ配置したいため、ご教示いただきたいです。
■環境
・Unity 20193.7f1
■アニメーションを持たせたPrefabの設定
こちらはキャプチャを貼ります
アニメーションの動きとしては、左右(PositionX)を0~0.25の値でループで移動させております。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SelectObjectTest : MonoBehaviour { //Listから選択したオブジェクトを入れる GameObject Clone; //Inspector上でオブジェクトを格納 [SerializeField] private List<GameObject> SObject; [SerializeField] private List<float> ObjectPosX; [SerializeField] private List<float> ObjectPosY; //オブジェクトを生成したい数だけ、ループさせる回数を定義 [SerializeField] private int whileCount; //配列からオブジェクトを呼び出すときに使用する [SerializeField] private int sicapture = 10; // Start is called before the first frame update void Start() { Vector2 clonePosition = GameObject.Find("background").transform.position; while (SObject.Count > 0 && whileCount < 3) { //ポジション要素を呼び出すList番号を用意 int indexposX = whileCount; int indexposY = whileCount; //生成するオブジェクトのx軸 float x = ObjectPosX[indexposX]; //生成するオブジェクトのy軸 float y = ObjectPosY[indexposY]; //Listに入れたオブジェクトをランダムに取得する int index = Random.Range(0,SObject.Count); //オブジェクトの配置場所を指定する clonePosition = new Vector2(x,y); //オブジェクトを生成する Clone = Instantiate(SObject[index], clonePosition, Quaternion.identity); //SObjectに格納されたオブジェクトを削除する SObject.RemoveAt(index); whileCount++; } } }
上記のスクリプトのListのObjectPosX、ObjectPosYで配置場所の固定値を指定しております。
アニメーションを持たせていないオブジェクトは指定の位置に配置されるのですが、
アニメーションを持たせているオブジェクトは、おそらくアニメーションで設定した開始地点(0,0)に
配置されているように見受けられます。
実現したいこと
アニメーションを持たせた状態でList(ObjectPosX、ObjectPosY)に指定した配置位置に
オブジェクトを配置したいと考えております。
その場合、どのようなUnity上の設定、スクリプトを作成すればよろしいでしょうか。
お手数ですが、ご教示のほどよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。