1.第三人称视角研究
第三人称视角是什么大家玩玩游戏就懂了-0- 羽化不是专业制作人,只是一个玩家,下面是羽化玩家身份的总结出来的一些经验,很多词汇非专业,见谅。。。
1.人物移动 玩过魔兽世界的玩家可能都知道W A S D可以控制人物往8个方向移动,但人的面向不会改变,意味着有左移右移和后退等动作,羽化认为这样设计比较有真实感,而且效果很好,但有些游戏比如神鬼寓言就有所改变,W A S D不仅可以控制移动方向,而且还能改变人的面向,这种设计更加灵活,适合ACT,不适合ARPG,所以羽化这是做的一个ARPG,使用的是魔兽世界的移动标准,摇杆第一次点进区域就可自由移动,原来羽化就是这么想的,看到混乱与秩序的摇杆后觉得更加合理,所以就借鉴了下。
2.视角移动 ARPG也有很多种视角,有斜45°类似火炬之光这种,也有魔兽世界一样360°的,羽化原来做过斜45°的Demo,固定视角可以解决很多问题,但也伴随着更棘手的问题,既然公司要求,所以就做了这个360°的视角转换,包括手势放大缩小。视角改变很容易,但当视角更改以后问题出现了,玩过魔兽世界包括众多自由视角游戏的玩家都知道视角虽然可以随便移动,但存在着很多约束,比如你向上滑动时,视角不可能穿过地面而到地下,一定会沿着人的方向放大,这是前人给我们的经验,比如有一个物体挡在人物和玩家中间时,视角应该拉近,这样就不会产生视觉死角,诸如此类的情况很多,就运用到了射线Ray,进入我们今天的主题。
//移动速度
var Speed : float = 0.05;
//视角转动速度
var Speed_L : float = 0.1;
//角色
var Role : Transform;
//人称视角
var Player_***e : Transform;
//攻击预设
var AttackPrafab : Transform;
//攻击方向
var AttackRange : Transform;
//第一点按下的初始点
private var PO_X : int = 0;
private var PO_Y : int = 0;
//第二点按下的初始点
private var PT_X : int = 0;
private var PT_Y : int = 0;
//判断人是否移动
static var PR_M : boolean = false;
//触摸点的记录
private var PM_X : int = 0;
private var PM_Y : int = 0;
//第二点按下的初始点
private var PS_X : int = 0;
private var PS_Y : int = 0;
//触摸点与中心点的距离
private var M_X : int = 0;
private var M_Y : int = 0;
//中心的坐标
private var PC_X : int = 0;
private var PC_Y : int = 0;
//旋转变量
private var touchDeltaPosition : Vector2;
//两点静态和动态距离
private var Distance : int = 0;
private var Distance_D : int = 0;
//记录摄像机距离
static var Camera_Record : float = -2.0;
//两点的角度
static var Angles : int = 0;
//战斗焦点
static var Focus : boolean = false;
//打击点
private var hit : RaycastHit;
//敌人方位
private var Enemie : Vector3;
//攻击模式范围
private var Range : float = 6.0;
//记录时间
private var CreationTime : double = -10.0;
//处于攻击动作
private var Attacking : boolean = false;
//Test
static var Test = 0.0;