如果有的话,我该如何声明“随机”?

myz*_*eze 1 c# unity-game-engine

所以这是为了统一 ai 脚本,使用 Random 找到 2 个不同的结果,但它给了我错误 cs0104 ,这是

“‘UnityEngine.Random’和‘System.Random’之间的引用不明确

我不太确定如何解决这个问题...可能只是我工作太久了,我的大脑已经炸了但是...伙计,这是我正在使用的代码

private void SearchWP()
    {
        float rndmZ = Random.Range(-wPointRange, wPointRange);
        float rndmX = Random.Range(-wPointRange, wPointRange);

        wPoint = new Vector3 (transform.position.x + rndmX, transform.position.y, transform.position.z + rndmZ);

        if (Physics.Raycast(wPoint, - transform.up, 2f, theGround))
        wPointSet = true;
    }
Run Code Online (Sandbox Code Playgroud)

der*_*ugo 5

该错误仅意味着您同时拥有两者

using UnityEngine;
using System;
Run Code Online (Sandbox Code Playgroud)

在文件顶部,它允许您直接寻址这些命名空间中包含的类型,而不必每次都通过完整的命名空间类型名称来寻址它们。

但是,正如错误告诉您两个命名空间都包含一个名为 的类型RandomSystem.Random并且UnityEngine.Random编译器不知道您要引用哪一个。

从你的使用情况看来你想使用UnityEngine.Random.

所以你可以通过完整的命名空间来寻址它

float rndmZ = UnityEngine.Random.Range(-wPointRange, wPointRange);
float rndmX = UnityEngine.Random.Range(-wPointRange, wPointRange);
Run Code Online (Sandbox Code Playgroud)

或者通过放置一个

using Random = UnityEngine.Random;
Run Code Online (Sandbox Code Playgroud)

在你的文件顶部