📜  unity player 移动脚本 3d - C# (1)

📅  最后修改于: 2023-12-03 15:20:52.213000             🧑  作者: Mango

Unity Player 移动脚本 3D - C#

简介

Unity Player 移动脚本是用于在 Unity 3D 游戏引擎中控制游戏对象移动的 C# 脚本。使用这个脚本可以让你在游戏中创建一个可以被控制的角色,通过按键或触屏来控制角色的移动。

代码实现

以下是一个示例代码实现,它演示了如何使用 Unity Player 移动脚本控制角色的移动:

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

public class PlayerController : MonoBehaviour
{
    public float speed = 10.0f; // 控制角色的移动速度
    public float jumpHeight = 10.0f; // 控制角色的跳跃高度

    private Rigidbody rb; // 角色刚体组件

    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    // Update is called once per frame
    void Update()
    {
        Move();
        Jump();
    }

    // 控制角色的移动
    void Move()
    {
        float moveHorizontal = Input.GetAxis("Horizontal");
        float moveVertical = Input.GetAxis("Vertical");

        Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);

        rb.AddForce(movement * speed);
    }

    // 控制角色的跳跃
    void Jump()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Vector3 jump = new Vector3(0.0f, jumpHeight, 0.0f);

            rb.AddForce(jump, ForceMode.Impulse);
        }
    }
}
代码解释

在这个示例代码中,我们首先定义了两个公有变量 speedjumpHeight,它们分别用来控制角色的移动速度和跳跃高度。

public float speed = 10.0f; // 控制角色的移动速度
public float jumpHeight = 10.0f; // 控制角色的跳跃高度

接着,在 Start 方法中,我们获取了角色的刚体组件。这是因为我们在移动和跳跃时需要使用到角色的刚体组件。

void Start()
{
    rb = GetComponent<Rigidbody>();
}

Update 方法中,我们调用了 MoveJump 方法,这两个方法分别用来控制角色的移动和跳跃。

void Update()
{
    Move();
    Jump();
}

Move 方法中,我们使用了 Input.GetAxis 来获取用户按键的输入信息。我们需要调用 AddForce 方法来为角色施加一个力,力的方向是根据用户输入信息而定。

void Move()
{
    float moveHorizontal = Input.GetAxis("Horizontal");
    float moveVertical = Input.GetAxis("Vertical");

    Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);

    rb.AddForce(movement * speed);
}

Jump 方法中,我们通过检测 KeyCode.Space 输入来控制角色的跳跃。如果检测到用户按下了空格键,我们就为角色施加一个上升的力,这个力的大小与我们设置的跳跃高度有关。

void Jump()
{
    if (Input.GetKeyDown(KeyCode.Space))
    {
        Vector3 jump = new Vector3(0.0f, jumpHeight, 0.0f);

        rb.AddForce(jump, ForceMode.Impulse);
    }
}
结语

以上就是关于 Unity Player 移动脚本的介绍和实现示例。Unity Player 移动脚本非常实用,它可以让你轻松地创建一个可以被控制的角色,并为游戏带来更好的交互体验。