所以我的角色要绕着塔走很简单
但是我很笨,只能通过使用transform.position在更新中来解决,所以跳跃和碰撞ofc,不起作用
这是塔式概念(见图)Tower
以下是它的工作原理rn(参见视频:https://streamable.com/7tmq1l)
你会看到在剪辑如何坏,它打破了,如果我评论的转换。位置=新的位置,以允许跳转
下面是我使用的代码:
public class Movement : MonoBehaviour
{
[SerializeField] private float radius = 7;
[SerializeField] private float angleSpeed = 28;
[SerializeField] private float jumpForce = 5;
private float angle;
Rigidbody rb;
private void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
transform.rotation = Quaternion.Euler(0, angle, 0);
float horizontalInput = Input.GetAxis("Horizontal");
angle -= horizontalInput * angleSpeed * Time.deltaTime;
Vector3 newPosition = Quaternion.Euler(0, angle, 0) * new Vector3(0, 0, radius);
transform.position = newPosition;
//jump
if(Input.GetKeyDown(KeyCode.Space)|| Input.GetKeyDown(KeyCode.W))
{
Debug.Log("Jumping!");
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
}
}
因为这个原因,跳跃不起作用
1条答案
按热度按时间vltsax251#
使用刚体调整XZ位置,并让rb调整Y轴。