2

私は Unity3D で 2.5D プラットフォーム ゲームに取り組んでおり、勾配制限を超えるのではなく、タグ付けされたオブジェクト上をキャラクターがスライドする必要があります。キャラクター モーターと FPS 入力スクリプトを使用しています。
スライドを有効にする行を見つけました。次のとおりです。

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

この条件は明らかに勾配制限を超えているためです。たとえば、キャラクターがいるゲームオブジェクトが「スライド」でタグ付けされている場合、この関数を編集して true を返すにはどうすればよいでしょうか。
どんな助けでも大歓迎ですありがとうございました。

4

1 に答える 1

0

まず、新しいブール値フィールドを charactermotor スクリプトに追加し、if ステートメントに「or」を挿入して、プレイヤーが接地しているかどうか、および地面が急勾配であるかどうかを確認します。これにより、次のようになります。

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 に答える