SRPG游戏开发(六十二)第十一章 地图动作与地图事件 - 十一 摄像机(Camera)

本文介绍了在SRPG游戏开发中如何处理地图动作和地图事件,特别是摄像机的跟随移动。使用Unity的Cinemachine插件,详细讲解了添加Cinemachine、移动摄像机的步骤,包括玩家和NPC的移动控制,以及Cinemachine的设置,如限制摄像机移动范围和调整摄像机阻尼等参数。通过这些设置,实现了摄像机在游戏过程中的平滑跟踪效果。
摘要由CSDN通过智能技术生成

返回《SRPG游戏开发》导航

第十一章 地图动作与地图事件(Map Action and Map Event)

我们已经有了剧本,而且可以运行剧本,但我们还缺少对地图的操作控制。

我们这一章来完成地图上的操作,地图的操作将全部由MapAction控制。



十一 摄像机(Camera)

这一章,我们来处理摄像机的跟随移动,并测试整章。


1 添加Cinemachine(Add “Cinemachine” Plugin)

在游戏中,我们的摄像机在以下情况需要移动:

  • 观察地图(光标移到地图边缘);

  • 角色移动到地图边缘;

  • 其它情况(某些特殊技能或攻击方式等)。

这并不需要我们自己来写跟随方法,Unity官方提供的Cinemachine已经解决了它们。

我们只需要在Asset Store中搜索Cinemachine并添加到项目中,然后进行相应的设置即可。

在我们的项目中,我们只需要在地图场景中让摄像机跟随鼠标光标(MouseCursor)。

而在需要移动摄像机时,只需要让鼠标光标移动即可。

同时Cinemachine配合Timeline也可以进行复杂的过场动画处理,这暂时不在我们的讨论范围。

MapAction中加入它们:

using Cinemachine;

MapAction中添加摄像机字段:

        private CinemachineVirtualCamera m_VirtualCamera = null;

而在初始化方法中,寻找场景中的摄像机,并设置它:

        /// <summary>
        /// 读取地图
        /// </summary>
        /// <param name="scriptName"></param>
        /// <returns></returns>
        public bool Load(string scriptName)
        {
   
            // 省略部分代码

            // 寻找摄像机
            virtualCamera = GameObject.FindObjectOfType<CinemachineVirtualCamera>();
            if (virtualCamera == null)
            {
   
                error = "MapAction -> CinemachineVirtualCamera was not found.";
                return false;
            }

            // 设置摄像机跟随MouseCurosr
            virtualCamera.Follow = map.mouseCursor.transform;
 
            // 设置状态
            status = ActionStatus.WaitInput;
            return true;
        }


2 移动摄像机(Move Camera)

移动摄像机就相当于移动MouseCursor

在平时,我们的MouseCursorOnMouseMove

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值