一直很喜欢仙剑系列游戏,觉得仙剑的人物控制也很顺手,学习了Unity后就很想做一个类似于仙剑的人物控制方案。
又特地重玩了仙剑三,现将仙剑三的人物控制操作罗列如下:
键盘A:面向Y轴的顺时针旋转镜头,观察人物;(我这里的面向Y轴,就是指的从上向下看)
键盘D:面向Y轴的逆时针旋转镜头,观察人物;
键盘↑、↓、←、→:前后左右移动人物(需要注意的是:这里的前后左右是相对于镜头当前朝向方向的前后左右,其实就是在镜头所在的坐标轴下进行移动)
双击上述按键:跑
鼠标滚轴顺时针滚动(从鼠标右侧观察的顺时针):效果等同键盘A;
鼠标滚轴逆时针滚动(从鼠标右侧观察的逆时针):效果等同键盘D;
鼠标左键单击:地图选点人物向选点走动;
鼠标左键双击:地图选点人物向选点跑动;
我对于以上操作做了如下改动:
1.定义W/D来控制镜头向下和镜头向上转;
2.用Shitf来代替键盘双击与鼠标双击进行的跑动控制
3.代码中只考虑人物在X-Z轴平面上的移动,也就是说,人物只会绕着Y轴进行旋转
以下是两部分的代码,所有需要注意的内容都在注释中也明了。
绑定到mainCamera上的代码:
using UnityEngine;
using System.Collections;
public class mainCameraForXianjian : MonoBehaviour {
//游戏对象-主角色
private GameObject target = null;
//镜头距离主角的距离
public float distance = 2.0f;
//纵向最大观察角度(相当于限定了俯视的最大角度)
private float maxAngleInXAxis = 80;
//纵向最小观察角度(相当于限定了仰视的最大角度)
private float minAngleInXAxis = -20;
//横向镜头角度
private float x = 0;
//纵向镜头角度
private float y =