Unity 游戏框架搭建 2019 (十八) 概率函数

在笔者刚做项目的时候,遇到了一个需求。第一个项目是一个跑酷游戏,而跑酷游戏是需要一条一条跑道拼接成的。每个跑道的长度是固定的,而怪物的出现位置也是在跑道上固定好的。那么怪物出现的概率决定一部分关卡的难度。

以上有点绕,其实就是,到某一个时刻,怪物是否要出现。而是否要出现是根据概率来决定的。如果一个怪物出现的概率是 100%,那么每次到达跑道固定的位置时候都要生成怪物。如果是 80% 那么就有百分之二十的几率不生成怪物。

那么如何去写这个逻辑呢?

我们先分析一下,我们要输入的是一个概率,而得出的结果呢,是是否要生成怪物。所以我们可以确定下来返回值呢,是一个 bool 值,而输入值呢是一个数字。

而概率用百分比表示相比用 0 ~ 1的概率值表示更容易被理解。而整数的计算比 float 的计算性能更好,所以要输入的是一个 0 到 100 区间内的 int 类型。

到这里呢一个方法的输入输出,我们就这样搞定了。

代码如下:

    public static bool Percent(int percent)
    {

    }

到这里,要用到一个随机数生成的 API。UnityEngine.Random.Range(int min,int max)。

完整的逻辑实现如下:

#if UNITY_EDITOR
using UnityEditor;
#endif

using UnityEngine;

namespace QFramework
{
    public class PercentFunction : MonoBehaviour
    {

#if UNITY_EDITOR
        [MenuItem("QFramework/12.概率函数")]
#endif
        private static void MenuClicked()
        {
            Debug.Log(Percent(50));
        }
        
        /// <summary>
        /// 输入百分比返回是否命中概率
        /// </summary>
        public static bool Percent(int percent)
        {
            return Random.Range (0, 100) <= percent;
        }
    }
}

输出结果为,有一半的概率会输出 true。

结果是正确的。

今天就这些,我们又可以进行导出了。

小结

这篇文章中的示例其实是非常简单的,但是重点在于一个方法的设计。笔者呢给大家总结如下:

  1. 如果是没掌握的知识,可以先写示例,把示例写出来,写出来之后再去思考示例中的代码哪些是经常更改的,经常更改的值呢可以作为我们要设计的方法的参数。按照这个步骤一个合格的方法就设计出来了。
  2. 如果是已经掌握的知识,这个时候设计方法的目的大多数是为了实现某个逻辑,比如本篇文章的示例就是此情况,在这种情况下我们要做的当然是对这个逻辑进行一番分析,要分析出来可能要用到哪些 API,接着要思考输入什么和输出什么,这些梳理清楚了,一个比较合格的方法就设计出来了。

当然,在以后呢,笔者深入去聊这方面的东西,所以在这里大家只要尽量去理解就好,不用达到完全按照以上结论去做。

今天的内容就这些,拜拜~

转载请注明地址:凉鞋的笔记:liangxiegame.com

更多内容

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 古典老师说道:所谓斜杠青年,大致有 5 种:1. 稳定收入 + 兴趣爱好的组合;2. 左脑 + 右脑的组合...
    大童小逸阅读 621评论 6 6
  • 我抬头 望向天空 恰好框住了这个画面 露出梢头的细碎枝叶 若飞举之势的翘角
    朴樕_阅读 152评论 0 0
  • 姓名:陈权 公司:青柠养车 【知~学习】 《阿米巴经营》音频打卡第15天 《轻课口语》打卡第374天 【行~实践】...
    水青柠阅读 151评论 0 0
  • 还记得我正上大学时,有个小姑娘,她18岁要结婚了的时候,碰到我说她以后这样的衣服,再也不穿了。她不想过凑凑活活的过...
    月醉如兮阅读 365评论 1 3