我工作的一个产卵脚本,但有一个我无法找到一个解决问题的办法......转换的Vector3改造
我得到那个说
“不能隐式错误转换型“UnityEngine.Vector3”到“UnityEngine.Transform””
我可以通过添加.POSITION到spawningpos
删除错误,但不会工作,因为它不是一个对象的变换只需在脚本变量变换
public GameObject[] spawningObj;
public GameObject[] insects;
public GameObject[] invierment;
public GameObject[] inviermentSingel;
public Transform player;
public int maxNPCsPerChunk;
public int maxInectsPerChunk;
public int maxInviermentalsPerChunk;
public int spawningAria;
private Transform spawningpos;
// Use this for initialization
void Start()
{
if (player == null)
player = GameObject.FindWithTag("Player").transform;
int max = Random.Range(0, maxInectsPerChunk);
for (int i = 0; i < max; i++)
{
spawningpos = new Vector3(Random.Range(-spawningAria, spawningAria) + transform.position.x, 2f, Random.Range(-spawningAria, spawningAria) + transform.position.z);
//Error on above line
Instantiate(insects[Random.Range(0, insects.Length)], spawningpos);
}
为什么你不声明spawningpos作为'Vector3',因为你用它作为一个简单的位置? – Hellium
变换是一个支持所有“变换”相关值的组件。将简单的Vector3转换为包含旋转,位置,比例等的结构几乎是不可能的。 –
“spawningpos.position = new Vector3(Random.Ran ...”但这不是正确的做法。编辑:查看下面的答案为什么和如何:) – 2016-11-24 09:30:00