首页 > 解决方案 > 无法从“(UnityEngine.Vector3,UnityEngine.Vector3,UnityEngine.Vector3)”转换为“Vector3”

问题描述

我有一个代码,它将在随机位置创建一个名为“spawnee”的新立方体,并有一个名为“spawnPos.rotation”的预设旋转:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    
    public class PlayerController : MonoBehaviour
    {
    public Transform spawnPos;
    public GameObject spawnee;
    Vector3 a;
    Vector3 b;
    Vector3 c;
    void Update() {
        Instantiate(spawnee, (a,b,c), spawnPos.rotation);
        }
    }

但是当我保存它并返回 Unity 时,它给了我一个错误:无法从 '(UnityEngine.Vector3, UnityEngine.Vector3, UnityEngine.Vector3)' 转换为 'Vector3'。我的代码有问题吗?

标签: c#unity3d

解决方案


Instantiate函数中,第二个参数是 Vector3

public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);

请使用这个

 float a,b,c;//your randome position axis in seperate variables
 Instantiate(spawnee, new Vector(a,b,c), spawnPos.rotation);

或这个

Vector3 yourRandomPosition;
Instantiate(spawnee, yourRandomPosition, spawnPos.rotation);

推荐阅读