簡體   English   中英

我的角色不會攀登,只會跌落在統一2D中

[英]my character wont climb and just falls in unity 2d

對於Unity和C#來說,我很陌生,我一直試圖讓我的角色爬上梯子幾個小時,並嘗試了20多種不同的腳本,但沒有任何效果。我將腳本放在梯子周圍的對撞機上(梯子是瓷磚的一部分) )我什至在瓷磚后面的梯子上添加了一種精神,並在其周圍放置了對撞機,但角色沒有掉下來(我已將對撞機作為觸發器)再次我是新的,這是一個代碼,我發現很多人喜歡但是這似乎對我不起作用,這是階梯代碼:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Ladder : MonoBehaviour
{

    GameObject playerOBJ;
    bool canClimb = false;
    float speed = 1;

    void OnCollisionEnter(Collision coll)
    {
        if (coll.gameObject.tag == "Player")
        {
            canClimb = true;
            playerOBJ = coll.gameObject;
        }
    }

    void OnCollisionExit(Collision coll2)
    {
        if (coll2.gameObject.tag == "Player")
        {
            canClimb = false;
            playerOBJ = null;
        }
    }
    void Update()
    {
        if (canClimb)
        {
            if (Input.GetKey(KeyCode.W))
            {
                playerOBJ.transform.Translate(new Vector3(0, 1, 0) * Time.deltaTime * speed);
            }
            if (Input.GetKey(KeyCode.S))
            {
                playerOBJ.transform.Translate(new Vector3(0, -1, 0) * Time.deltaTime * speed);
            }
        }
    }
}'

您需要在攀爬時禁用角色剛體上的重力,否則重力將始終使您的角色墜落。

您可以像這樣訪問角色剛體:

playerRB = playerOBJ.GetComponent<Rigidbody2D>();

您可以將引力更改為0:

playerRB.gravityScale = 0; 然后在需要時返回1。

例如,當您的角色碰到梯子對撞機時就禁用重力,而當您按下“ A”或“ D”使您的角色從梯子上掉下來時啟用重力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM