Unity 3D是一款功能强大的游戏开发引擎,它提供了丰富的工具和功能来创建复杂的游戏。在本教程中,我们将学习如何控制Unity 3D中的角色。

基础设置

  1. 创建新项目:首先,打开Unity Hub并创建一个新的2D或3D项目。
  2. 添加角色模型:在Unity编辑器中,从Asset Store下载一个角色模型,并将其拖拽到场景中。

角色移动

角色移动是游戏开发中最重要的部分之一。以下是一些常用的移动方法:

  • 使用Rigidbody组件:给角色添加Rigidbody组件,并通过脚本控制其移动。
    using UnityEngine;
    
    public class CharacterMovement : MonoBehaviour
    {
        public float moveSpeed = 5f;
    
        void Update()
        {
            float horizontal = Input.GetAxis("Horizontal");
            float vertical = Input.GetAxis("Vertical");
    
            Rigidbody rb = GetComponent<Rigidbody>();
            rb.AddForce(new Vector3(horizontal, 0f, vertical) * moveSpeed);
        }
    }
    
  • 使用Character Controller组件:对于非刚体角色,可以使用Character Controller组件。
    using UnityEngine;
    
    public class CharacterMovement : MonoBehaviour
    {
        public float moveSpeed = 5f;
    
        void Update()
        {
            float horizontal = Input.GetAxis("Horizontal");
            float vertical = Input.GetAxis("Vertical");
    
            CharacterController cc = GetComponent<CharacterController>();
            Vector3 moveDirection = new Vector3(horizontal, 0f, vertical) * moveSpeed;
            cc.Move(moveDirection * Time.deltaTime);
        }
    }
    

跳跃功能

跳跃是许多游戏中的基本动作。以下是如何实现跳跃的示例:

using UnityEngine;

public class CharacterMovement : MonoBehaviour
{
    public float jumpForce = 7f;
    public LayerMask groundLayer;

    private bool isGrounded;

    void Update()
    {
        isGrounded = Physics.Raycast(transform.position, Vector3.down, 0.1f, groundLayer);

        if (Input.GetButtonDown("Jump") && isGrounded)
        {
            Rigidbody rb = GetComponent<Rigidbody>();
            rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
        }
    }
}

更多资源

如果你想要更深入地了解Unity 3D角色控制,可以访问以下资源:

希望这个教程能帮助你入门Unity 3D角色控制!🎮