任何人都可以帮助我,这是我最后的项目。我已经制作了可以从数组存储中生成对象的脚本,然后我想应用一些轮换你们可以告诉我我做了什么吗? (P.S我在下面附上了我的剧本,所以希望你们看一下)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class spawn : MonoBehaviour {
//public string[] objek;
int buatrandom;
int jumlahrandom = 16 ;
int objek1 ;
int objek2 ;
int objek3 ;
public string objname1;
public string objname2;
public string objname3;
public GameObject target1;
public GameObject target2;
public GameObject target3;
public int [] simpannomorobject ;
public GameObject[] nomorasset;
public float speed =10f;
// Use this for initialization
void Start () {
simpannomorobject = new int[3];
for (int i = 0; i < 2; i++) {
buatrandom = Random.Range (0, jumlahrandom);
simpannomorobject [i] = buatrandom;
if (i > 0){
if (i < 3) {
buatobjek ();
}
}
}
}
void buatobjek (){
objek1 = simpannomorobject [0];
objek2 = simpannomorobject [1];
objek3 = simpannomorobject [2];
Instantiate (nomorasset [objek1], new Vector3 (0, 0, 3.0f), Quaternion.identity);
Instantiate (nomorasset [objek2], new Vector3 (4.0f, 0, 0), Quaternion.Euler(0,90,0));
Instantiate (nomorasset [objek3], new Vector3 (-4.0f, 0, 0), Quaternion.Euler(0,-90,0));
objname1 = nomorasset [objek1].name;
objname2 = nomorasset [objek2].name;
objname3 = nomorasset [objek3].name;
}
// Update is called once per frame
void Update () {
}
}
答案 0 :(得分:1)
您可以做的是将它们保存在变量中。
GameObject myObject = new GameObject();
myObject = Instantiate (nomorasset [objek1], new Vector3 (0, 0, 3.0f), Quaternion.identity);
然后您可以使用myObject
作为对实例化GameObject
的引用
然后对于旋转部件,您可以使用Transform.Rotate()
using UnityEngine;
public class ExampleClass : MonoBehaviour
{
void Update()
{
// Rotate the object around its local X axis at 1 degree per second
transform.Rotate(Vector3.right * Time.deltaTime);
// ...also rotate around the World's Y axis
transform.Rotate(Vector3.up * Time.deltaTime, Space.World);
}
}
然后您可以使用以下方法对您刚刚实例化的对象进行转换:myObject.transform.Rotate(Vector3.right * Time.deltaTime);
答案 1 :(得分:1)
要引用您实例化的对象,而不是:
Instantiate (nomorasset [objek1], new Vector3 (0, 0, 3.0f), Quaternion.identity);
只需写下:
GameObject yourObject = Instantiate (nomorasset [objek1], new Vector3 (0, 0, 3.0f), Quaternion.identity);
然后,旋转对象:
// Rotate the object around its local X axis at 1 degree per second
yourObject.transform.Rotate(Vector3.right * Time.deltaTime);
有关轮播的详情,请访问unity documantation