• 实现网格建造系统


    版权声明

    • 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明
    • 更多学习资料请加QQ:1517069595获取(企业级性能优化/Shader特效/热更新/shader特效/服务器/商业项目实战/每周直播/一对一指导)

    我们的建造系统要实现的目标:

    在这里插入图片描述

    • WASD在地图上移动
    • 按1~6键切换建造单位类型
    • 建筑单元可占据多个网格
    • 左键按下执行建造(有建造效果)
    • R键且换建造方向
    • 右键按下销毁建在单位
    • 不能重叠建造

    定义基础网格数据结构

    在这里插入图片描述
    在这里插入图片描述

    定义建筑预制体,点击创建实例

    在这里插入图片描述

    点击创建实例在这里插入图片描述

    解决创建位置重叠

    在这里插入图片描述

    只能创建在网格内(不能横跨)

    在这里插入图片描述

    • 根据鼠标位置得到网格位置
    • 从而确保绘制在网格内
    • 思考:如何从鼠标位置得到网格位置?

    确保不能重叠建造

    在这里插入图片描述
    在这里插入图片描述

    配置各建筑单位的数据

    在这里插入图片描述

    解决跨网格建筑单位重叠

    在这里插入图片描述
    在这里插入图片描述

    解决方法:

    • 获取建筑单位占据的所有网格坐标(如何实现?)
    • 根据网格坐标找到网格对象
    • 将这些网格对象都设置为被正在创建的建筑物占据
    • 思考:如何实现GetPositionList?

    使建筑单位创建方向可旋转(难点)

    在这里插入图片描述

    定义旋转轴(在Step2)

    • 定义当前方向
    • 定义旋转规则
    • 如何保持在同一个网格区域内旋转?
    • 思考如何实现:
      • GetNextDir
      • GetRotationOffset
      • GetRotationAngle

    按键切换建筑单位种类

    在这里插入图片描述
    在这里插入图片描述

    • 建立一个建筑单位种类列表
    • 默认新建第0个种类的建筑

    建立建筑放置预览效果

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    • GridObject改为存放PlaceObject
    • 存储PlaceObject到GridObject

    右键清除预览对象

    在这里插入图片描述

    运用放置效果

    在这里插入图片描述

    商业进阶

    在这里插入图片描述

    • 如何实现建筑单位升级?
    • 升级系统(数据配置、UI界面、升级逻辑、服务器交互…)
    • 如何实现建筑单位的AI?
    • 建筑单位的抽象化:
    • 怪物:自动战斗
    • 角色:自主行为(休息、工作、娱乐、生活)、与场景内道具单位(如驾驶设施)的交互
    • 设施:自动穿行的出租车、游乐场设施等
    • 资源:可开采物、可拾取道具、障碍…
    • 如果有成百上千个建筑呢?
    • 如果不同的玩家类型可以建造的建筑类型不同呢?
    • 如何增加建造游戏单元的UI操作界面?
    • 如何联网游玩?

    在这里插入图片描述
    在这里插入图片描述

    更多学习资源请加QQ:1517069595获取(/企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)

    完整视频可以点击B站链接::https://www.bilibili.com/video/BV1TK4y1g7Se

    更多知识、教程、源码请进↓↓↓
    优梦创客工坊

    精品内容推送请搜索↓↓↓
    微信公众号:优梦创客

    免费直播、VIP视频请进↓↓↓
    优梦创客课堂

    游戏开发交流群↓↓↓
    游戏开发交流群

  • 相关阅读:
    互联网测试开发面试题集锦【转】
    python excel读写数据
    基于python实现Oracle数据库连接查询操作
    基于python实现GET和POST请求及token相关调用
    Notepad++配置替换快捷配置
    GET和POST两种基本请求方法的区别
    HTTP请求的常用方法有哪些
    常见HTTP状态码的含义
    在浏览器中输入URL后,执行的全部过程。(一次完整的http请求过程)
    TCP和UDP的优缺点及区别
  • 原文地址:https://www.cnblogs.com/raymondking123/p/14977624.html
Copyright © 2020-2023  润新知