unity 中角色控制器案例,给出脚本
时间: 2024-03-26 09:40:33 浏览: 185
Extending Unity with Editor Scripting
5星 · 资源好评率100%
下面是一个简单的unity角色控制器案例的脚本,主要用于控制角色的移动和跳跃:
```csharp
using UnityEngine;
public class CharacterController : MonoBehaviour
{
private float speed = 5f;
private float jumpForce = 10f;
private bool isGrounded = true;
private Rigidbody rb;
private void Start()
{
// 获取角色的刚体组件
rb = GetComponent<Rigidbody>();
}
private void Update()
{
// 获取用户的输入
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");
// 计算角色的移动向量
Vector3 move = new Vector3(horizontalInput, 0f, verticalInput) * speed * Time.deltaTime;
// 设置角色的朝向
if (move != Vector3.zero)
{
transform.forward = move;
}
// 在角色接触地面时允许跳跃
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
isGrounded = false;
}
}
private void OnCollisionEnter(Collision collision)
{
// 检测角色是否接触地面
if (collision.gameObject.CompareTag("Ground"))
{
isGrounded = true;
}
}
}
```
在这个脚本中,我们使用了CharacterController和Rigidbody组件来控制角色的移动和跳跃。我们在Update方法中获取用户的输入,并计算角色的移动向量。我们还在这里检测角色是否接触地面,并在用户按下空格键时允许角色跳跃。在OnCollisionEnter方法中,我们检测角色是否接触地面,并将isGrounded标志设置为true或false。你可以根据需要在这里更改角色的移动速度、跳跃力度等参数,从而实现不同的角色控制效果。
阅读全文