c# - 如何在 Unity 3d 中跳转?

标签 c# windows unity3d 3d monodevelop

任何人都可以与我分享一个脚本,我可以用它来跳过这个脚本的角色吗?
我将不胜感激,我 12 岁,刚刚开始,它将帮助我完成我的项目。先感谢您。

最佳答案

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

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; 

我们需要确定它们是否在地面上。 Bool(或 bool 值)表示是我们是(真),或者不是我们不是(假)。
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 是施加力的方式(模式可以是 ForceMode.Force、ForceMode.Acceleration、ForceMode.Impulse 或 ForceMode.VelocityChange,更多信息请参见 ForceMode)。

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

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

关于c# - 如何在 Unity 3d 中跳转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58377170/

相关文章:

c# - 在另一个表达式中使用保存的表达式

c# - 创建 .NET 窗体时 Visual Studio 指定的窗口类名称是什么?

c++ - 在公差范围内比较两次是否相等?

windows - 如何从 Windows Vista Complete PC 备份中提取文件?

unity3d - 构建 .exe(UNITY) 时相机处于不同位置

android - 如何在新进程中打开 Android Fragment?

c# - Linux 上的 Visual Studio Code - 如何在 "app.js does not exist"时运行 C# 应用程序,也不应该

c# - 在C#中读取一个xml元素并将元素的新值写回xml

c# - guid 的字节数组长度必须恰好为 16 个字节

unity3d - 在cueBall与unity3d中的任何球碰撞后如何获得方向?