@Gjf 2021-11-13 17:21 采纳率: 76.9%
浏览 88
已结题

c#和unity关于人物跳跃问题

```

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

public class PlayerContraller : MonoBehaviour
{
private Rigidbody rBody;
private AudioSource footPlayer;
private bool isGround;
void Start()
{
rBody = GetComponent();
footPlayer = GetComponent();
}

void Update()
{
    if (Input.GetKeyDown(KeyCode.Space) && isGround==true)
    {
        rBody.AddForce(Vector3.up * 200);
    }
    float horizontal = Input.GetAxis("Horizontal");
    float vertical = Input.GetAxis("Vertical");
    if ((horizontal != 0 || vertical != 0)&&isGround==true)
    {
        if(footPlayer.isPlaying==false)
        {
            footPlayer.Play();
        }
    }
    else
    {
        footPlayer.Stop();
    }
}

private void OnCollisionEnter(Collision collision)
{
    if (collision.collider.tag=="Ground")
    {
        isGround = true;
    }
}
private void OnCollisionExit(Collision collision)
{
    if(collision.collider.tag=="Ground")
    {
        isGround = false;
    }
}

}

```哪里错了呢,他不跳哎

  • 写回答

3条回答 默认 最新

  • @Gjf 2021-11-17 22:08
    关注
    
    rBody=GetComponent()
    

    是复制错了,原来是

    rBody=GetComponent<Rigidbody>();
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月11日
  • 已采纳回答 3月3日
  • 修改了问题 11月17日
  • 修改了问题 11月17日
  • 展开全部