unity3d 在C#中,如何写一个int值加1的概率为50%?

htrmnn0y  于 2023-03-19  发布在  C#
关注(0)|答案(3)|浏览(200)

我对编程很陌生,我希望有50%的机会将一个int值加1。
这是我正在研究的:

public class IfExperiment : MonoBehaviour
{
   [Range(0,100)] public int force = 0;

    // Start is called before the first frame update
    void Start()
    {
        force += 2;
        
    }
    
    

    // Update is called once per frame
    void Update()
    {
        Rigidbody rb= GetComponent<Rigidbody>();

        rb.AddForce(Vector3.one * force);

        

        if (force > 1)
        {
            
            rb.AddForce(Vector3.forward * force);
            

        }
        
    }
}

它会根据我声明的,force,int,来加速运算,所以我希望有机会提高这个值来加速运算.
我尝试了很多不同的想法,什么可能是解决方案,但我刚刚开始学习C#,所以我需要一些帮助。

hof1towb

hof1towb1#

我认为必须使用循环将值加1

hfsqlsce

hfsqlsce2#

您可以通过以下方式使用Random类:

Random random = new();
            // pass the random instance to your class or method 
            // and work with it afterwards:

            int randomInt = random.Next(0, 2);

            if (randomInt == 0)
            {
                // your int value++
            }
            else
            {
                // something else
            }

关键是,上界是互斥的,所以你总是得到0或1(而不是0,1和2),所以是50%的几率。
此外,请确保创建Random类的单个示例

Random random = new();

然后将其传递给您的自定义类或方法,不要每次都在循环中创建Random类的新示例

myzjeezk

myzjeezk3#

我强烈建议您查看脚本API,您可以使用UnityEngine.Random.Range

相关问题