2

我正在 Unity3D 上开发一个 2.5D 平台游戏,我需要我的角色在标记的对象上滑动,而不是超过坡度限制。我正在使用字符马达和 FPS 输入脚本。
我找到了启用幻灯片的行,如下所示:

function TooSteep () {
    return (groundNormal.y <= Mathf.Cos(controller.slopeLimit * Mathf.Deg2Rad));
}

这种情况显然是为了超过斜率限制,例如,如果角色所在的游戏对象被标记为“Slide”,我将如何编辑此函数以返回 true。
非常感谢您的任何帮助。

4

1 回答 1

0

首先,在 charactermotor 脚本中添加一个新的布尔字段,并在 if 语句中输入一个“或”来检查玩家是否接地以及地面是否太陡,所以它看起来像这样:

if(grounded && (TooSteep() || someNewBool))

然后,在对象上附加一个触发盒对撞机(不要打扰另一个对象上的标签),并在其中附加一个具有以下功能的单一行为:

function OnTriggerEnter(other:Collider) 
{
    if(other.tag.Equals("Player"))//Replace "Player" with the tag you marked the player with.
    {
         other.GetComponent(CharacterMotor).someNewBool = true;// The new bool you added to the charactermotor script
    } 
}

和另一个看起来像这样的函数:

function OnTriggerExit(other:Collider) 
{
    if(other.tag.Equals("Player"))
    {
         other.GetComponent(CharacterMotor).someNewBool = false;
    } 
}
于 2013-07-20T03:53:09.037 回答