第一人称角色移动及自由移动视野(CharacterController实现)

本文介绍如何在Unity中使用CharacterController组件实现角色的移动与视角控制。通过Move脚本实现角色前后左右移动,通过FreeLook脚本实现自由视角观察。文中提供了具体的C#脚本代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建物体放置如图:

给Capsule添加CharacterController组件:创建两个脚本名字分别为Move(控制移动),FreeLook(自由视角观察)挂在该游戏物体上:

 

2.Move代码如下:

 

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class Move : MonoBehaviour {
 5 
 6     float speed=5f;  //移动速度
 7     public GameObject camer; //Capsule下面那个摄像机
8
private CharacterController characterController;   9 // Use this for initialization 10 void Start () 11 { 12 characterController = this.GetComponent<CharacterController> (); 13 14 15 } 16 17 // Update is called once per frame 18 void Update () 19 { 20 Vector3 forward = camer.transform.TransformDirection (Vector3.forward);//前后移动 21 float curSpeed = speed * Input.GetAxis ("Vertical"); 22 characterController.SimpleMove(forward * curSpeed); 23 Vector3 v = camer.transform.TransformDirection (Vector3.right);//左右移动 24 float vSpeed = speed * Input.GetAxis ("Horizontal"); 25 characterController.SimpleMove(v * vSpeed); 26 27 } 28 }

3.freeLook代码如下:

using UnityEngine;
using System.Collections;

public class freeLook : MonoBehaviour 
{
  //视野转动速度
float speedX=10f; float speedY=10f;
  //上下观察范围
float minY=-60; float maxY=60;   //观察变化量 float rotationX; float rotationY; // Use this for initialization void Start () { } // Update is called once per frame void Update () { rotationX += Input.GetAxis ("Mouse X")*speedX; rotationY += Input.GetAxis ("Mouse Y")*speedY; if (rotationX < 0) { rotationX += 360; } if (rotationX >360) { rotationX -= 360; } rotationY = Mathf.Clamp (rotationY, minY, maxY);   transform.localEulerAngles = new Vector3 (-rotationY, rotationX, 0); } }

4.下面是我的项目连接:

链接:http://pan.baidu.com/s/1nva4OHz 密码:v1az

 

转载于:https://www.cnblogs.com/lichuangblog/p/6685800.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值