2-09. 设置摄像机边界
1.2-02. 导入素材2.2-03. 创建 Player3.2-04. 实现 Player 基本移动4.2-05. 创建基本地图结构5.2-06. 地图绘制方法和技巧6.2-07. 摄像机跟随7.2-08. 碰撞层和景观树
8.2-09. 设置摄像机边界
9.2-10. 实现景观物体遮挡半透明10.2-11. 背包数据初始化11.2-12. 使用 UI Toolkit 和 UI Builder 制作物品编辑器12.2-13. 创建 ListView 中的 ItemTemplate13.2-14. 生成 ListView 列表14.2-15. 绑定 Editor Window 中的参数变量15.2-16. 实现 ListView 添加删除同步信息功能16.2-17. 物品数据库填写规则17.2-18. 创建 InventoryManager 和 Item18.2-19. 拾取物品基本逻辑19.2-21. 实现背包检查和添加物品20.2-22. 制作 Action Bar UI21.2-23. 制作人物背包内的 UI22.2-24. SlotUI 根据数据显示图片和数量23.2-25. 背包 UI 显示24.2-26. 控制背包打开和关闭25.2-27. 背包物品选择高亮显示和动画26.2-28. 创建 DragItem 实现物品拖拽跟随显示27.2-29. 实现拖拽物品交换数据和在地图上生成物品28.2-30. 制作 ItemTooltip 的 UI29.2-31. 实现根据物品详情显示 ItemTooltip30.2-32. 制作 Player 的动画31.2-33. 实现选中物品触发举起动画32.2-34. 绘制房子和可以被砍伐的树33.2-35. 构建游戏的时间系统34.2-36. 时间系统 UI 制作35.2-37. 代码链接 UI 实现时间日期对应转换36.2-38. 第二场景的绘制指南37.2-39. 创建 TransitionManager 控制人物场景切换38.2-40. 实现人物跨场景移动以及场景加载前后事件39.2-41. 制作 [SceneName] Attribute 特性40.2-42. 场景切换淡入淡出和动态 UI 显示41.2-43. 保存和加载场景中的物品42.2-44. 设置鼠标指针根据物品调整43.2-45. 构建地图信息系统44.2-46. 生成地图数据45.2-47. 设置鼠标可用状46.2-48. 实现鼠标选中物品后的场景点击事件流程47.2-49. 制作可以扔出来的物品48.2-50. 实现挖坑和浇水的地图更改变化49.2-51. 制作人物使用工具的动画和流程50.2-52. 随着时间变化刷新地图显示内容51.2-53. 种子数据库制作52.2-54. 制作 CropManager 实现撒种子的事件53.2-55. 种子成长过程54.2-56. 实现菜篮子收割庄稼的行为55.2-57. 实现收割庄稼产生果实56.2-58. 实现农作物的重复收割57.2-59. 制作可砍伐的树木摇晃和倒下动画58.2-60. 实现斧子砍树的功能59.2-61.随机生成收割物品和转化的实现60.2-62. 工具栏按钮快捷键61.2-63. 使用 Particle System 制作树叶凋落特效62.2-64. 使用 Unity 最新 ObjectPool API 制作对象池63.65. 实现树木、石头、稻草在场景里的预先生成方法64.2-66. 制作石头和稻草的粒子特效65.2-67. 实现割草的全部流程及稻草的互动摇晃66.2-68. 基础数据创建 Node & GridNodes67.2-69. 根据每个地图信息生成节点信息68.2-70. 核心功能评估周围节点得到最短路径69.2-71. 测试实现在真实地图上显示最短路径70.2-72. 创建 NPC 基本信息并实现根据场景切换显示71.2-73. NPC 的 Schedule 数据制作和路径生成72.2-74. 利用 AStar 实现 NPC 的移动73.2-75. 加入 NPC 动画及真实的 Schedule 触发74.2-76. 跨场景地图的路径数据及生成75.2-77. 修正 CropGenerator 和 AStar 地图节点生成76.2-78. 制作对话的 UI77.2-79. 创建对话数据实现对话逻辑78.2-80. 创建 NPCFunction 和通用 UI 实现对话后打开商店79.2-81. 创建交易窗口 UI 并实现拖拽交易打开交易窗口80.2-82. 实现买卖交易的完整流程81.3-01. 建造图纸数据及 ItemTooltip 显示资源物品82.3-02. 完成建造的流程和逻辑83.3-03. 实现切换场景保存和读取场景中的建造物品84.3-04. 实现箱子储物空间的保存和数据交换85.4-01. 升级到 URP 并创建灯光数据结构86.4-02. 实现跟随游戏时间触发切换场景光效87.5-01. 创建声音数据结构实现不同场景播放不同音乐和音效88.5-02. 创建 AudioMixer 实现音乐音效的控制和切换89.5-03. 利用对象池播放所有音效90.6-01. Timeline 创建91.6-02. 创建 Timeline 的对话92.6-03. 控制 Timeline 的启动和暂停93.7-01. 创建主菜单 UI94.7-02.创建游戏数据存储结构框架95.7-03. 实现数据存储和加载的逻辑96.7-04. 实现数据读取开始新游戏和加载进度97.7-05. 制作暂停菜单和返回逻辑98.8-01. 逻辑调整及补充内容添加 Cinemachine Confiner
找到 cinemachine,在 Add Extension 这里找到 CinemachineConfiner(不论2D还是3D,都是使用 Confiner),并进行添加
CinemachineConfiner 需要一个碰撞体,所以我们在 01.Field 里面添加 Bounds 对象,然后再添加 Polygon Collider 2D 组件请注意,这里必须使用 Polygon Collider 2D,我试过如果用了 Box Collider 2D 不起作用
在拖拽顶点的时候,可以按住 command 键进行拖拽,这样可以使其吸附到顶点。另外可以修改 Points 将点改为整数
另外还需要记得,把 Is Trigger 勾上
Confiner 读取 Bounds
创建脚本 SwitchBounds
然后把它加到 Cinemachine 上面
如果不知道如何进行赋值的话,可以点击右上角的问号查看帮助文档
给 Bounds 对象添加标签
然后在 SwitchBounds 脚本中查找 Tag 为 BoundsConfiner 的对象,然后进行赋值
项目相关代码
合集:
麦田物语
分类:
unity / 麦田物语
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通