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