(推荐用电脑的浏览器进行观看,手机的话没有排版效果)
hi!大家好!我又来更新这个系列啦!
今天我花了大概1个小时来把项目改成第一人称。
先告诉大家,这篇我们会做:把项目改成第一人称,并输出一个.exe文件。
然后就是文章的最后,有一个小Demo可以下载试玩~

把项目改成第一人称
其实我们有好多种选择,比如像《魔兽世界》那样,第三人称视角,视角是在玩家的后面,并一直跟随着玩家。
又比如像我们之前的那个版本一样,视角是45度,跟随玩家。
又比如像是普通的迷宫游戏,视角特别高,然后可以看到的范围特别大。

 


(这是游戏之前的视角)

 
但是我还是希望把游戏改成第一人称的,原因主要有2个:
1、我们的模型太简单了,而且模型没有做动作。
      所以就不像是魔兽世界那样,可以一边跑一边欣赏母牛甩尾巴~
     那么我希望玩家干脆就不要看到模型了。
     但是也有可能后期调成魔兽世界那样,因为有个参考物在前面走,不容易晕3D;而且代入感也好;之后还能做外观哈哈哈哈。

2、我们不能把视角调的太高,我还是希望玩家能够有置身在迷宫中的感觉。
      我不希望特别的上帝视角。
但是,这只是我目前的想法,我们完全可以根据后面的效果,去进行更改,这并不是绝对的。

然后就要说到摄像机了。
我们在游戏里能看到东西,都是因为我们添加了摄像机。
之前的版本,是第三人称的时候,我们的摄像机是在玩家角色的上方,45度往下照的。
然而做第一人称游戏的时候,摄像机要放在玩家的眼睛部位。
放好后,再把摄像机设置为玩家模型的子集,这样模型移动了,摄像机就会跟着移动。
然后我们还要把之前的正方体碰撞器改成胶囊体碰撞器,这样玩家下台阶之类的会更加圆滑,因为有个弧度。

你的玩家角色的层级现在应该是这样的:

接下来,如何让角色移动起来呢?
我们之前已经让角色可以移动了,但是那个时候的移动是跳跃的,一次移动一格。
现在第一人称了,我们希望移动的时候平滑一点,慢慢移动。
其实要实现这一点很简单,但是感觉让新手明白挺难的,我们后面也许可以出视频好好讲讲这篇文章的内容,现在我就直接放代码好了。
为了让大家能够更清楚代码的结构,我这边代码中只处理了向前移动,然后有修改的地方,我用注释了的。

首先是 对StaticInput.cs类做的修改。
主要是把 Input.GetKeyDown()改为Input.GetKey()。
    using UnityEngine;
    //
    //
    public class StaticInput : MonoBehaviour
    {
        #region 
        public static StaticInput Instance;
        void Awake()
        {
            Instance = this;
        }
        #endregion
        #region 
        public bool InputUp; // –
        #endregion
        #region Unity
        void Start()//
        {
            InputUp = false;//InputUpfalse
        }
        void Update()//
        {
            /*Input.GetKeyDown()
            Input.GetKeyDown()1
            Input.GetKey(*/
            //
            InputUp = Input.GetKey(KeyCode.UpArrow);
        }
        #endregion
    }
}

 

然后我们新建一个FirstPersonPlayerMove.cs脚本。
把之前的PlayerMove.cs脚本中的代码直接复制粘贴进去。
然后,我们对PlayerMove.cs脚本,主要修改了 newPosition.x -= moveDistance;这句代码。
修改为了newPosition.x -= moveDistance*Time.deltaTime;
仅仅只是因为
在原来的基础上乘以了一个Time.deltaTime,角色就不再是一格一格的跳着走了,而是平滑的进行移动了!
那么这个
Time.deltaTime究竟是什么呢?
这个很难一下讲懂,但是它十分重要,如果大家想入门Unity就一定会学到它~不必担心~
    using UnityEngine;
    //
    public class FirstPersonPlayerMove : MonoBehaviour
    {
        #region 
        public float moveDistance = 0.9f;//0.9
        private bool jump = false;//
        #endregion
        #region Unity
        void Update()//
        {
            SetMoveDirection();//
        }
        #endregion
        #region 
        /// <summary>
        /// 
        /// </summary>
        private void SetMoveDirection()
        {
            //Up()
            if (StaticInput.Instance.InputUp)
            {
                Move(Direction.Up);//
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name=”direction”></param>
        private void Move(Direction direction)
        {
            //Temp 
            Vector3 newPosition = transform.position;
            //
            if (direction == Direction.Up)
            {
                /*
                Time.deltaTime
                */
                newPosition.x -= moveDistance*Time.deltaTime;
            }
            //Move 
            transform.position = newPosition;
        }
        #endregion
    }
}

最后我们把FirstPersonPlayerMove.cs脚本挂到PlayerA上。
再把PlayerA之前的PlayerMove.cs脚本移除。
现在玩家可以向前移动啦!
我们再如法炮制,做完后左右移动的功能。
现在我们来看一下效果吧!

现在有两个问题,
一个问题是:跳跃的时候,因为没有做平滑的处理,所以是一下就跳上去了,这个我们在后面的篇章中再进行优化。
在游戏开发过程中,大部分的细微的优化问题,都是留在功能开发结束之后,进行调整的。
另一个问题是:玩家身上不是有判断前后左右是否有障碍物的4个触发器吗?
现在我们不需要他们啦!因为我们现在每一步都移动的很缓慢,足够让刚体组件来进行判断。
所以我们把判断的工作交给刚体组件就可以啦!
去掉后就是这样。

然后我们试试,看能不能移动到墙外?
结果是不能,而且还会有微微的颤抖效果(刚体组件判断然后修正的效果),真的好棒哦!

输出一个.exe文件
提供给小伙伴们试玩

下面就来讲如何把项目输出成.exe文件(在这里我们只是过一下,让大家了解一下,如果需要的话,一定要认真看教程)。
注意:exe文件只能在WIN平台运行。

Unity引擎有个特点(当然其他引擎有的也有),就是可以将你的项目,一键转换成不同平台可以玩的版本,而不需要你写任何代码。
目前Unity支持的平台有:Win、Mac、IOS、安卓、Ps3、Ps4、Ps4 pro、NS、Xbox360、XboxOne、WiiU、Web等等等等……
也就是说,你像我这样做完一个工程,只需要在输出的时候,选择你要输出到哪个平台上,然后Unity就会自动帮你把你的游戏打包成适合那个平台的文件啦!

第一步,
点击菜单栏File->Build Settings,然后弹出下面所示的对话框。
然后我们需要把我们要输出的场景拖进Scenes In Build窗口,这个窗口里可以放多个场景,放在第一个场景,就是默认启动的场景。

第二步,
选择PC平台(如图所示),然后这个时候,已经可以点击Build按钮进行打包了!但是我们还可以额外进行一些设置。

第三步,
点击Player Settings…按钮,进行输出设置。
这里面有很多很多的设置选项,但是我们都不用现在去了解他们。
我们只需要知道:
CompanyName中填写你的公司的名字;
ProductName中填写文件的名字;
DefaultIcon中放入文件的图标。
大概如下图所示:

然后点击菜单栏File->Build Settings,选择点击Build按钮,然后选择一个输出路径以及输入.exe文件的名字,就开始进行打包了!

然后把这两个文件打包成.rar压缩包,就可以分享给朋友玩啦!

点击.exe文件后,会先弹出一个对话框,点击Play!按钮,就可以开始游戏啦:

大家也来玩一下吧~~~!
下载链接(如果失效了,请务必告诉我哦~):http://pan.baidu.com/s/1eS8fnZc 密码:mobd
感谢大家对这个系列的支持和陪伴,现在我们的角色可以移动了~下一篇我们将搭一个迷宫出来~