Unity 游戏框架搭建:第九、十个示例整理

本文介绍Unity中实现随机数选取及MonoBehaviour组件的简化使用。通过代码示例展示了如何从多个值中随机选择一个,并整合了概率函数示例。同时,详细介绍了MonoBehaviourSimplify类的使用,包括显示、隐藏和变换对象的方法。

第九个示例整理

代码如下:
    
using UnityEngine ; namespace QFramework { public partial class MathUtil { # if UNITY_EDITOR [ UnityEditor . MenuItem ( "QFramework/9.从若干个值中随机取出一个值" , false , 10 ) ] # endif private static void GetRandomValueFromMenuClicked ( ) { Debug . Log ( GetRandomValueFrom ( 1 , 2 , 3 ) ) ; Debug . Log ( GetRandomValueFrom ( "asdasd" , "123123" ) ) ; Debug . Log ( GetRandomValueFrom ( 0.1f , 0.2f ) ) ; } public static T GetRandomValueFrom < T > ( params T [ ] values ) { return values [ Random . Range ( 0 , values . Length ) ] ; } } }
代码很简单,在之前我们整理过 MathUtil 的示例,所以这个示例的内容可以和之前整理的第五个示例进行合并。
合并之后的代码如下: MathUtil.cs
    
using UnityEngine ; namespace QFramework { public partial class MathUtil { /// <summary> /// 输入百分比返回是否命中概率 /// </summary> public static bool Percent ( int percent ) { return Random . Range ( 0 , 100 ) <= percent ; } public static T GetRandomValueFrom < T > ( params T [ ] values ) { return values [ Random . Range ( 0 , values . Length ) ] ; } } }
MathUtilExample.cs
    
using UnityEngine ; namespace QFramework { public class MathUtilExample : MonoBehaviour { # if UNITY_EDITOR [ UnityEditor . MenuItem ( "QFramework/Example/5.概率函数 和 随机函数" , false , 6 ) ] # endif private static void MenuClicked ( ) { Debug . Log ( MathUtil . Percent ( 50 ) ) ; Debug . Log ( MathUtil . GetRandomValueFrom ( 1 , 2 , 3 ) ) ; Debug . Log ( MathUtil . GetRandomValueFrom ( "asdasd" , "123123" ) ) ; Debug . Log ( MathUtil . GetRandomValueFrom ( 0.1f , 0.2f ) ) ; } } }
注意:菜单名字改了,原来第五个示例是概率函数,现在是 概率函数 和 随机函数
合并之后的菜单如下:

第十个示例

代码如下:
    
using UnityEngine ; namespace QFramework { public partial class MonoBehaviourSimplify : MonoBehaviour { public void Show ( ) { GameObjectSimplify . Show ( gameObject ) ; } public void Hide ( ) { GameObjectSimplify . Hide ( gameObject ) ; } public void Identity ( ) { TransformSimplify . Identity ( transform ) ; } } public class Hide : MonoBehaviourSimplify { private void Awake ( ) { Hide ( ) ; } # if UNITY_EDITOR [ UnityEditor . MenuItem ( "QFramework/10.MonoBehaviour 简化" , false , 11 ) ] static void MenuClicked ( ) { UnityEditor . EditorApplication . isPlaying = true ; var gameObj = new GameObject ( "Hide" ) ; gameObj . AddComponent < Hide > ( ) ; } # endif protected override void OnBeforeDestroy ( ) { } } }
第十个示例,是我们的 MonoBehaviourSimplify,它是我们框架的核心,我们把它拆分到 Framework 目录下,它的示例代码 Hide,其实是一个可以独立使用的脚本,在做调试的时候是非常使用的,而这个 Hide 是可以独立运行的类,所以也放在 Util 目录里。
整理后的代码如下: Assets/QFramework/Example/7.Hide 脚本/HideExample.cs
    
using UnityEngine ; namespace QFramework { public class HideExample { # if UNITY_EDITOR [ UnityEditor . MenuItem ( "QFramework/Example/7.Hide 脚本" , false , 8 ) ] private static void MenuClicked ( ) { UnityEditor . EditorApplication . isPlaying = true ; var gameObj = new GameObject ( "Hide" ) ; gameObj . AddComponent < Hide > ( ) ; } # endif } }
Assets/QFramework/Framework/Util/Hide.cs
    
namespace QFramework { public class Hide : MonoBehaviourSimplify { private void Awake ( ) { Hide ( ) ; } protected override void OnBeforeDestroy ( ) { } } }
Assets/QFramework/Framework/MonoBehaviourSimplify.cs
    
using UnityEngine ; namespace QFramework { public partial class MonoBehaviourSimplify : MonoBehaviour { public void Show ( ) { GameObjectSimplify . Show ( gameObject ) ; } public void Hide ( ) { GameObjectSimplify . Hide ( gameObject ) ; } public void Identity ( ) { TransformSimplify . Identity ( transform ) ; } } }
目录如下:
菜单如下:
今天的内容就这些,我们下一篇再见,拜拜~
转载请注明地址:凉鞋的笔记: liangxiegame.com 订阅全套专栏或参加小班: liangxiegame.com
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值