unity 说它不能将 (int,int,int) 转换成 quartinon
unity says it can't convert (int,int,int) into a quartinon
我想做的就是编写一个自动生成的游戏,比如 flappy bird,但我遇到了我从未听说过的错误,据我研究,我认为没有其他人遇到过这些错误,我得到了 2
参数 3:无法从“(int,int,int)”转换为 'quaternion'
参数 4:无法将 'UnityEngine.Quaternion' 转换为 'UnityEngine.Transfrom'
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Spawner : MonoBehaviour
{
public GameObject prefab;
public int objectCount;
public float spacing;
public GameObject prefab2;
public int Height;
void Start()
{
var position = new Vector3();
for (int i = 0; i < objectCount; i++)
{
Instantiate(prefab, position, (0, Random.Range(-Height, Height), 0), Quaternion.identity);
position.x += spacing;
}
}
}
我已经尝试过将它变成一个浮点数,但我没有成功,我是不是漏掉了什么?
您正在使用的 Instantiate 声明需要 4 个参数,因此它必须匹配:
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);
最后两个参数是Quaternion rotation & Transform parent。看起来好像您需要将 Quaternion.identity 作为倒数第二个参数并将父转换设置为最后一个。
Instantiate(prefab, position, Quaternion.identity, PARENT);
没有
Instantiate(GameObject, Vector3, (int,int,int), Quaternion)
我想你想为位置添加随机高度而不是将其设置为第三个参数。尝试
Instantiate(prefab, position + Vector3.up * Random.Range(-Height,Height), Quaternion.identity);
相反。
此外,如果您需要创建 Vector3,“(x,y,z)”是不够的,您必须键入“new Vector3(x,y,z)”。
您正在使用 4 个参数调用 Instantiate
,其中的参数为
Instantiate(GameObjectToInstantiate, PositionInVector3, RotationInQuaternion, transform);
出于这个原因,unity 期望在第三个参数中出现 Quaternion
,但您传递的是 (0, Random.Range(-Height, Height), 0)
我想做的就是编写一个自动生成的游戏,比如 flappy bird,但我遇到了我从未听说过的错误,据我研究,我认为没有其他人遇到过这些错误,我得到了 2 参数 3:无法从“(int,int,int)”转换为 'quaternion' 参数 4:无法将 'UnityEngine.Quaternion' 转换为 'UnityEngine.Transfrom'
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Spawner : MonoBehaviour
{
public GameObject prefab;
public int objectCount;
public float spacing;
public GameObject prefab2;
public int Height;
void Start()
{
var position = new Vector3();
for (int i = 0; i < objectCount; i++)
{
Instantiate(prefab, position, (0, Random.Range(-Height, Height), 0), Quaternion.identity);
position.x += spacing;
}
}
}
我已经尝试过将它变成一个浮点数,但我没有成功,我是不是漏掉了什么?
您正在使用的 Instantiate 声明需要 4 个参数,因此它必须匹配:
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);
最后两个参数是Quaternion rotation & Transform parent。看起来好像您需要将 Quaternion.identity 作为倒数第二个参数并将父转换设置为最后一个。
Instantiate(prefab, position, Quaternion.identity, PARENT);
没有
Instantiate(GameObject, Vector3, (int,int,int), Quaternion)
我想你想为位置添加随机高度而不是将其设置为第三个参数。尝试
Instantiate(prefab, position + Vector3.up * Random.Range(-Height,Height), Quaternion.identity);
相反。
此外,如果您需要创建 Vector3,“(x,y,z)”是不够的,您必须键入“new Vector3(x,y,z)”。
您正在使用 4 个参数调用 Instantiate
,其中的参数为
Instantiate(GameObjectToInstantiate, PositionInVector3, RotationInQuaternion, transform);
出于这个原因,unity 期望在第三个参数中出现 Quaternion
,但您传递的是 (0, Random.Range(-Height, Height), 0)