Unity3D控制人物跳跃

Paste_Image.png

脚本如下:

using UnityEngine;
using System.Collections;

public class Player : MonoBehaviour
{

    public float m_JumpSpeed = 400f;
    private bool m_jumping = false;
    private Rigidbody2D m_Rigidbody2D;
    private Animator m_Anim;
    //是否在地面上
    private bool grounded = true;


    private void Awake()
    {
        m_Anim = GetComponent<Animator>();
        m_Rigidbody2D = GetComponent<Rigidbody2D>();
    }

    // Use this for initialization
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetButtonDown("Jump"))
        {
            Jump();
        }
    }

    private void Jump()
    {
        if (this.grounded)
        {
            m_Rigidbody2D.AddForce(new Vector2(0f, m_JumpSpeed));
            grounded = false;
        }
    }
    //这个时候在地面上
    private void OnCollisionEnter2D(Collision2D collision)
    {
        grounded = true;
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容