Unity3D仿星露谷物语开发小结1
1、Cinemachine的作用及使用方法
(1)作用
控制Camera的模块,实现摄像机的复杂控制,比如角色的跟随,限制Camera的区域
(2)使用方法
在已有Main Camera的情况下,
通过【GameObject -> Cinemachine -> Virtual Camera】唤出
2、创建动画思路
先给对象添加Animator组件
然后配置动画逻辑选项
最后再【Window -> Animation -> Animation】添加动画片段
3、物体渲染顺序
1)Sorting Layer,越靠上的Sorting Layer越先渲染
2)Order In Layer,数字越小越先渲染
3)摄像机的距离,越远越先渲染
4、Sorting Group组件作用
确保所有子对象都被排序了,形成单一的个体
5、发布者/订阅者模式
首先,定义事件Event,xxevent(params)
然后,Publisher触发事件,if(xxevent != null){xxevent()}
最后,Subscriber订阅事件并进行处理,+=的方式进行订阅。
6、定义事件Event的两种方式
1)如果超过16个参数
先通过delegate定义委托函数
然后通过event + 委托函数 定义Event
2)如果未超过16个参数
通过event + Action 定义Event
7、OnEnable/OnDisable的调用时机,适合场景
前者:脚本组件被激活时,后者:脚本组件被禁用时。
适用于Event事件注册和释放的时候
8、绘制Tilemap技巧
1)左右翻转Tile:Shift + [
2)旋转Tile: 单独的 "]" 键
9、多场景共存现象
可以以Additive的方式存在2个场景,但是只能有一个激活场景
10、创建Tilemap Grid的步骤
1)创建Tilemap。自动创建中包含Grid和Tilemap两个gameobject,Grid负责网格属性,Tilemap用于绘制瓦片
2)配置调色板。创建调色板,将Sprite拖入调色板以生成瓦片。
3)绘制地图。使用笔刷将瓦片绘制到Tilemap上
4)添加碰撞体。给Tilemap对象添加Tilemap Collider 2D来触发碰撞事件,通过Composite Collider来优化碰撞体的生成。
11、添加Tilemap碰撞器
1)创建tilemap物体,设置Collider Type为Sprite
2)给玩家添加Collider组件
3)使用tilemap物体中的元素绘制图形,并且选择一个目标对象collisions对象
4)给collisions对象添加Tilemap Collider组件
5)给collisions对象添加Composite Collider组件,并设置Geometry Type为"Polygons",同时在Tilemap Collider组件中勾选"Used By Composite"
12、添加Cinemachine Confiner
1)创建多边形对象指定地图区域
2)给Virtual Camera对象的Add Extension添加Cinemachine Confiner组件
3)如果Virtual Camera对象不是在当前Scene中,
需要在代码中指定Cinemachine Confiner组件的m_BoundingShape属性为多边形对象
13、某个脚本执行的前提条件是存在某个组件的写法
[RequireComponent(typeof(SpriteRenderer))]
14、创建ScriptableObject组件
1)能否挂载到游戏物体上?
不能,因为它不是继承自MonoBehaviour
2)使用方法?
创建类继承自ScriptableObject
通过[CreateAssetMenu(fileName=xx, menuName=xx)]指定属性信息
15、PropertyAttribute类及核心方法
自定义属性特性的基础类,提供类似[SerializeField]的属性标签
1)GetPropertyHeight指定像素高度
2)OnGUI重绘信息UI
16、CanvasGroup组件作用
用于集中控制UI元素的透明度、交互性和射线投射行为。
17、Aspect Ratio Fitter组件的作用
按照给定的宽高比调整UI元素的尺寸。
18、TextMeshPro组件作用
是一个Unity文本组件,比Text文本样式更加丰富和灵活,缺点是找不到字体不会像Text有默认字体。
19、Canvas的Render Mode含义和3种模式的区别
含义:Render Mode为渲染模式,指UI的呈现方式
Screen Space-Overlay:Canvas会覆盖整个屏幕,所有UI元素的坐标都是基于屏幕空间的。UI元素会始终显示在屏幕的最前面,不受场景种其他物体的影响。
Screen Space-Camera:Canvas会被放置在指定的摄像机前方,UI元素的坐标也是基于屏幕空间的,但会受到摄像机的影响。UI元素会随着摄像机的移动和旋转而变化。
World Space:Canvas会作为3D场景中的一部分,UI元素的坐标是基于世界空间的,UI元素会像3D对象一样存在于场景中,可以与其他3D对象进行交互。
20、拖动物体的3个事件接口
开始时:IBeginDragHandler
拖动时:IDragHandler
结束时:IEndDragHandler
21、ContentSizeFitter组件的作用
根据内容的大小自动调整UI元素的大小,确保内容不会被截断或溢出
22、Vertical Layout Group组件的作用
用于在垂直方向上自动排列子对象的局部管理组件。
UI布局可以随着元素数量或窗口大小动态调整。
23、鼠标经过的2个事件接口/鼠标点击的事件接口
经过开始点:IPointerEnterHandler
经过结束点:IPointerExitHandler
鼠标点击:IPointerClickHandler
24、AnimatorOverrideController类的作用/2种使用方法
动画重写控制器。
1)AnimatorOverrideController aoc = new AnimatorOverrideController(animator.runtimeAnimatorController);
其中animator为对象的Animator组件
animator.runtimeAnimatorController = aoc;
aoc["shot"] = weaponAnimationClip[weaponIndex]
2)AnimatorOverrideController aoc = new AnimatorOverrideController(animator.runtimeAnimatorController);
List<KeyValuePair<AnimationClip, AnimationClip>> clipOverrides;并进行赋值
aoc.GetOverrides(clipOverrides);
aoc.ApplyOverrides(clipOverrides);
25、附加方式加载Scene并设置Active的方法
SceneManager.LoadSceneAsync(xx, LoadSceneMode.Additive);
SceneManager.SetActiveScene(xxScene);
26、Start()方法当协程使用的方法
将返回值改为IEnumerator,其他周期函数都不行
同时需要在方法体中有IEnumerator类型的返回
27、确保某个脚本的Start()方法先执行的方法
在Edit -> Project Settings -> Script Execution Order中设置脚本的执行顺序
相关文章:
Unity3D仿星露谷物语开发小结1
1、Cinemachine的作用及使用方法 (1)作用 控制Camera的模块,实现摄像机的复杂控制,比如角色的跟随,限制Camera的区域 (2)使用方法 在已有Main Camera的情况下, 通过【GameObject -&…...
graylog初体验
最近graylog比较火,部署了一个来测试下,看下后续能不能代替目前占用资源比较多的elk,目前未对graylog性能进行深入测试,只是简单体验了下,graylog的UI比较简陋,但是在报警以及权限方面优于ELK,整…...
15.PPT:文静-云计算行业发展【29】
目录 NO123 NO345 NO6 NO78 NO9/10/11/12 NO123 设计→幻灯片大小→自定义幻灯片大小→ 全屏显示(16:9)→最大化 NO345 SmartArt 主题颜色2/6/9:形状样式:样式 加大行距加宽间距 NO6 NO78 设计→设置背景…...
高端入门:Ollama 本地高效部署DeepSeek模型深度搜索解决方案
目录 一、Ollama 介绍 二、Ollama下载 2.1 官网下载 2.2 GitHub下载 三、模型库 四、Ollmal 使用 4.1 模型运行(下载) 4.2 模型提问 五、Ollama 常用命令 相关推荐 一、Ollama 介绍 Ollama是一个专为在本地机器上便捷部署和运行大型语言模型&…...
MFC 的 CListCtrl 控件,使用SetItemState 方法来设置选中某个 item,如何达到效果和鼠标点击一致
1)查询到的方法如下: // 假设你要选中第 2 行(索引从 0 开始) int nItem 1; // 取消所有其他选中项 m_ListCtrl.SetItemState(-1, 0, LVIS_SELECTED); // 设置选中状态,并确保它具有焦点 m_ListCtrl.SetItemStat…...
一文读懂:TCP网络拥塞的应对策略与方案
TCP(传输控制协议)是互联网中广泛使用的可靠传输协议,它通过序列号、确认应答、重发控制、连接管理以及窗口控制等机制确保数据的可靠传输。然而,在网络环境中,由于多个主机共享网络资源,网络拥塞成为了一个…...
深度整理总结MySQL——子查询的工作原理
子查询的工作原理 前言为什么开发人员喜欢写子查询查询重写条件化简移除不必要的括号常量传递(constant_propagation)移除没用的条件(trivial_condition_removal)HAVING子句和WHERE子句的合并 常量表检测外连接消除 子查询子查询语…...
20240824 美团 笔试
文章目录 1、单选题1.11.21.31.41.51.61.71.81.91.101.111.121.131.141.151.161.171.181.191.202、编程题2.12.2岗位:硬件开发工程师(嵌入式系统软件开发方向) 题型:20 道单选题,2 道编程题题 1、单选题 1.1 C 语言中,如果输入整数 v 是 2 的幂,下面表达式中哪个会返…...
Windows图形界面(GUI)-QT-C/C++ - QT 文本编辑控件详解
公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 概述 1. QLineEdit 1.1 特点 1.2 属性 1.3 常用方法 1.4 拓展应用 2. QTextEdit 2.1 特点 2.2 属性 2.3 常用方法 2.4 拓展应用 3. QPlainTextEdit 3.1 特点 3.2 属性 3.3…...
IDEA中Resolving Maven dependencies卡着不动解决方案
一、修改settings.xml Maven配置阿里云仓库主要通过修改Maven的settings.xml文件来实现。以下是具体步骤: 1、找到settings.xml文件: 通常位于Maven安装目录下的conf文件夹中,或者在用户目录下的.m2文件夹中(如果用户自定义了settings.xml的位置)。 2、编辑se…...
go数据结构学习笔记
本博文较为完整的实现了go的链表、栈,队列,树,排序,链表包括顺序链表,双向链表,循环链表,队列是循环队列,排序包含冒牌、选择 1.链表 1.1 顺序链表 type LNode struct {data intn…...
【后端开发】系统设计101——Devops,Git与CICD,云服务与云原生,Linux,安全性,案例研究(30张图详解)
【后端开发】系统设计101——Devops,Git与CICD,云服务与云原生,Linux,安全性,案例研究(30张图详解) 文章目录 1、DevopsDevOps与SRE与平台工程的区别是什么?什么是k8s(Ku…...
Google地图瓦片爬虫——进阶版
紧接上一篇——Google地图瓦片爬虫 clash节点自动切换 为了防止一个IP地址访问频率过快问题,自动切换clash的节点 def change_node(is_stop):while True:_r requests.get("http://127.0.0.1:11053/proxies", headersclash_headers, verifyFalse)# 这里…...
免费windows pdf编辑工具
Epdf(完全免费) 作者:不染心 时间:2025/2/6 Github: https://github.com/dog-tired/Epdf Epdf Epdf 是一款使用 Rust 编写的 PDF 编辑器,目前仍在开发中。它提供了一系列实用的命令行选项,方便用户对 PDF …...
解锁C#数据校验:从基础到实战的进阶之路
一、引言:数据校验为何如此重要? 在软件开发的广袤领域中,数据校验宛如一座坚固的堡垒,守护着系统的稳定与安全。它是确保数据质量的关键防线,能有效避免错误数据的流入,进而提升系统的整体性能和可靠性。…...
Redis的通用命令
⭐️前言⭐️ 本文主要介绍Redis的通用命令 🍉欢迎点赞 👍 收藏 ⭐留言评论 🍉博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言 🍉博客中涉及源码及博主日常练习代码均已上传GitHub 📍内容导…...
设计模式六大原则和单例模式
设计模式 目的 实现可重用解决方案,构筑易维护、可扩展的软件系统。 六大原则 单一职责: 类的职责单一,一个方法做一件事。 开闭原则: 拓展开放,修改关闭。 里氏替换: 父类能出现的地方,子…...
Redis性能优化
1.是否使用复杂度过高的命令 首先,第一步,你需要去查看一下 Redis 的慢日志(slowlog)。 Redis 提供了慢日志命令的统计功能,它记录了有哪些命令在执行时耗时比较久。 查看 Redis 慢日志之前,你需要设置慢…...
SAM 大模型杂谈
目录 1. 前言 2. 发展历程 3. SAM 大模型的技术架构 3.1 模型结构 3.2 训练方法 3.3 数据处理 4. SAM 大模型的应用领域 4.1 自然语言处理 4.2 计算机视觉 4.3 多模态学习 4.4 其他领域 5. SAM 大模型的优势与挑战 5.1 优势 5.2 挑战 6. SAM 大模型的未来发展方…...
openGauss 3.0 数据库在线实训课程2:学习客户端工具gsql的使用
openGauss数据库状态查看 前提 我正在参加21天养成好习惯| 第二届openGauss每日一练活动 课程详见:openGauss 3.0.0数据库在线实训课程 学习目标 学习openGauss数据库客户端工具gsql的使用。 课程作业 gsql是openGauss提供在命令行下运行的数据库连接工具&am…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
