【问题标题】:Cannot convert from '(UnityEngine.Vector3, UnityEngine.Vector3, UnityEngine.Vector3)' to 'Vector3' [closed]无法从“(UnityEngine.Vector3,UnityEngine.Vector3,UnityEngine.Vector3)”转换为“Vector3”[关闭]
【发布时间】:2020-01-31 06:23:01
【问题描述】:

我的代码将在随机位置创建一个名为“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


    【解决方案1】:

    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);
    

    【讨论】:

    • Vector 必须是 Vector3 ;)
    • 对不起我的错误。感谢更新
    • 另请注意,您自己制作了 a、b 和 c Vector3。它们应该只是双精度或整数。
    猜你喜欢
    • 2022-01-15
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多