如何在Unity 3d中跳转?

问题描述 投票:0回答:1

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

c# windows unity3d 3d monodevelop
1个回答
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; 

我们需要确定它们是否在地面上。布尔(或布尔),是的,我们是(true),否则,我们不是(false)。

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)

其中,力是在Vector3中存储运动信息,而模式是力的施加方式(模式可以是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

© www.soinside.com 2019 - 2024. All rights reserved.