【问题标题】:how to make int random number [duplicate]如何制作int随机数[重复]
【发布时间】:2021-09-28 16:38:07
【问题描述】:

嘿,我正在尝试制作一个随机树生成器脚本,并且想知道如何使“数字”int 随机,我尝试像使用 x 和 z int 一样对其进行操作,任何帮助将不胜感激。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class randomspawn : MonoBehaviour
{
    public GameObject tree;
    public int number;
    public int yaxis;

    void Start()
    {
        PlaceTree();
    }
    void PlaceTree()
    {
        for (int i = 0; i < number; i++)
        {
            Instantiate(tree, GeneratedPosition(), Quaternion.identity);
        }
    }



    Vector3 GeneratedPosition()
    {
        int x, y, z;
        x = Random.Range(-1000, 1000);
        y = UnityEngine.Random.Range(-yaxis, yaxis);
        z = Random.Range(-1000, 1000);
        return new Vector3(x, y, z);

    }
}

【问题讨论】:

  • 那么让number 随机化和x and z 一样有什么问题?
  • 我确实尝试了多种方法,但我不知道如何用 for (int i = 0; i
  • 您能补充更多细节吗?你是怎么尝试的?你能显示代码吗?您是否尝试调试它?你得到了什么错误?输出是什么?究竟出了什么问题?
  • 我将“public int number”更改为私有并放入“int number = Random.Range(10, 100);”在启动函数中。它保存得很好,我没有弹出错误它只是不会加载任何树
  • 感谢您的帮助,我终于让它工作了

标签: c# unity3d random integer


【解决方案1】:

你就不能这样做:
public int number = Random.range([min], [max])吗?

[min] 和 [max] 是您要在其中选择一个随机数的值

编辑:您应该为该类创建一个构造函数,因此当您创建该类的对象时,该值被分配给该对象并通过所有方法使用。

您的另一个选择是在函数中调用 for 循环之前将随机值分配给数字。

void PlaceTree()
{
    this.number = Random.range([min], [max]);
    for (int i = 0; i < number; i++)
    {
        Instantiate(tree, GeneratedPosition(), Quaternion.identity);
    }
}

【讨论】:

  • 我试过了,但我不知道如何将它转移到 for (int i = 0; i
  • 我编辑了我的答案以获得更多选项的更详细答案
【解决方案2】:

可以在方法里面做:

void PlaceTree()
{
    number = Random.Range(-1000, 1000);
    for (int i = 0; i < number; i++)
    {
        Instantiate(tree, GeneratedPosition(), Quaternion.identity);
    }
}

或者在构造函数中:

public randomspawn() {
 number = Random.Range(-1000, 1000);
}

【讨论】:

  • 对于其中的每一个,我都收到一条错误消息“无法创建静态类 'Random' 的实例”
  • 别担心,我可以让它工作,不过谢谢你的帮助
  • 更新了答案。
猜你喜欢
  • 2017-08-01
  • 1970-01-01
  • 2016-10-24
  • 1970-01-01
  • 2018-07-03
  • 1970-01-01
  • 2014-06-28
  • 2012-10-23
  • 1970-01-01
相关资源
最近更新 更多