【问题标题】:How to jump in Unity 3d?如何在 Unity 3d 中跳转?
【发布时间】:2019-10-14 12:46:41
【问题描述】:

谁能与我分享一个脚本,我可以用它来跳跃这个脚本的角色? 我将不胜感激,我 12 岁,刚刚开始,它将帮助我完成我的项目。提前谢谢你。

【问题讨论】:

    标签: c# windows unity3d 3d monodevelop


    【解决方案1】:

    我建议从他们网站 (http://unity3d.com/learn) 上的一些课程开始,但要回答您的问题,请回答以下问题 是一个可以工作的通用脚本。

    using UnityEngine;
    using System.Collections;
    
    [RequireComponent(typeof(Rigidbody))]
    public class PlayerController : MonoBehaviour {
        public Vector3 jump;
        public float jumpForce = 2.0f;
    
        public bool isGrounded;
        Rigidbody rb;
        void Start(){
            rb = GetComponent<Rigidbody>();
            jump = new Vector3(0.0f, 2.0f, 0.0f);
        }
    
        void OnCollisionStay(){
            isGrounded = true;
        }
    
        void Update(){
            if(Input.GetKeyDown(KeyCode.Space) && isGrounded){
    
                rb.AddForce(jump * jumpForce, ForceMode.Impulse);
                isGrounded = false;
            }
        }
    }
    

    让我们分解一下:

    [RequireComponent(typeof(Rigidbody))] 
    

    希望在我们进行任何计算之前先确保您有一个刚体。

    public Vector3 jump; 
    

    Vector3 是一个存储三个轴值的变量。在这里,我们使用它来确定我们在哪里跳跃。

    public bool isGrounded; 
    

    我们需要确定它们是否在地面上。布尔值(或布尔值)表示是我们是(真),或者不是我们不是(假)。

    void OnCollisionStay(){
        isGrounded = true;
    }
    

    在Start() 中,我们将变量 rb(从Rigidbody rb 设置)分配给附加到您的 GameObj 的组件,我们还将值分配给 Vector3 跳转。

    然后我们Update() 这个:

    if(Input.GetKeyDown(KeyCode.Space) && isGrounded){     
        rb.AddForce(jump * jumpForce, ForceMode.Impulse);
        isGrounded = false;
    }
    

    表示如果玩家按下 Space 按钮,同时 GameObj 接地,它将给刚体添加一个物理力,使用。

    AddForce(Vector3 force, ForceMode mode)
    

    其中 force 是存储运动信息的 Vector3,mode 是施加力的方式(mode 可以是 ForceMode.Force、ForceMode.Acceleration、ForceMode.Impulse 或 ForceMode.VelocityChange,请参阅 ForceMode 了解更多信息)。

    最后,谷歌是你最好的朋友。一定要在未来用尽你的选择,以获得最快的结果!

    答案是对此的简化重写:https://answers.unity.com/questions/1020197/can-someone-help-me-make-a-simple-jump-script.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多