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

被折叠的 条评论
为什么被折叠?



