[英]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.