【发布时间】:2020-12-10 16:36:38
【问题描述】:
我正在尝试创建一个随机 Vector3,但 Unity 给了我这个错误:UnityException: Range is not allowed to be called from a MonoBehaviour 构造函数(或实例字段初始化程序),而是在 Awake 或 Start 中调用它。从 MonoBehavior 'particleMover' 调用。 这是我的代码:
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using UnityEngine;
public class particleMover : MonoBehaviour
{
public float moveSpeed;
public float temperature;
public Rigidbody rb;
public Transform tf;
static private float[] directions;
// Start is called before the first frame
void Start()
{
System.Random rnd = new System.Random();
float[] directions = { rnd.Next(1, 360), rnd.Next(1, 360), rnd.Next(1, 360) };
}
// Update is called once per frame
void Update()
{
Vector3 direction = new Vector3(directions[0], directions[1], directions[2]);
direction = moveSpeed * direction;
rb.MovePosition(rb.position + direction);
}
}
【问题讨论】: