当前位置: 首页 > news >正文

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的作用及使用方法 &#xff08;1&#xff09;作用 控制Camera的模块&#xff0c;实现摄像机的复杂控制&#xff0c;比如角色的跟随&#xff0c;限制Camera的区域 &#xff08;2&#xff09;使用方法 在已有Main Camera的情况下&#xff0c; 通过【GameObject -&…...

graylog初体验

最近graylog比较火&#xff0c;部署了一个来测试下&#xff0c;看下后续能不能代替目前占用资源比较多的elk&#xff0c;目前未对graylog性能进行深入测试&#xff0c;只是简单体验了下&#xff0c;graylog的UI比较简陋&#xff0c;但是在报警以及权限方面优于ELK&#xff0c;整…...

15.PPT:文静-云计算行业发展【29】

目录 NO123​ NO345​ NO6​ NO78 NO9/10/11/12​ NO123 设计→幻灯片大小→自定义幻灯片大小→ 全屏显示&#xff08;16&#xff1a;9&#xff09;→最大化 NO345 SmartArt 主题颜色2/6/9&#xff1a;形状样式&#xff1a;样式 加大行距加宽间距 NO6 NO78 设计→设置背景…...

高端入门:Ollama 本地高效部署DeepSeek模型深度搜索解决方案

目录 一、Ollama 介绍 二、Ollama下载 2.1 官网下载 2.2 GitHub下载 三、模型库 四、Ollmal 使用 4.1 模型运行&#xff08;下载&#xff09; 4.2 模型提问 五、Ollama 常用命令 相关推荐 一、Ollama 介绍 Ollama是一个专为在本地机器上便捷部署和运行大型语言模型&…...

MFC 的 CListCtrl 控件,使用SetItemState 方法来设置选中某个 item,如何达到效果和鼠标点击一致

1&#xff09;查询到的方法如下&#xff1a; // 假设你要选中第 2 行&#xff08;索引从 0 开始&#xff09; int nItem 1; // 取消所有其他选中项 m_ListCtrl.SetItemState(-1, 0, LVIS_SELECTED); // 设置选中状态&#xff0c;并确保它具有焦点 m_ListCtrl.SetItemStat…...

一文读懂:TCP网络拥塞的应对策略与方案

TCP&#xff08;传输控制协议&#xff09;是互联网中广泛使用的可靠传输协议&#xff0c;它通过序列号、确认应答、重发控制、连接管理以及窗口控制等机制确保数据的可靠传输。然而&#xff0c;在网络环境中&#xff0c;由于多个主机共享网络资源&#xff0c;网络拥塞成为了一个…...

深度整理总结MySQL——子查询的工作原理

子查询的工作原理 前言为什么开发人员喜欢写子查询查询重写条件化简移除不必要的括号常量传递&#xff08;constant_propagation&#xff09;移除没用的条件&#xff08;trivial_condition_removal&#xff09;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的链表、栈&#xff0c;队列&#xff0c;树&#xff0c;排序&#xff0c;链表包括顺序链表&#xff0c;双向链表&#xff0c;循环链表&#xff0c;队列是循环队列&#xff0c;排序包含冒牌、选择 1.链表 1.1 顺序链表 type LNode struct {data intn…...

【后端开发】系统设计101——Devops,Git与CICD,云服务与云原生,Linux,安全性,案例研究(30张图详解)

【后端开发】系统设计101——Devops&#xff0c;Git与CICD&#xff0c;云服务与云原生&#xff0c;Linux&#xff0c;安全性&#xff0c;案例研究&#xff08;30张图详解&#xff09; 文章目录 1、DevopsDevOps与SRE与平台工程的区别是什么&#xff1f;什么是k8s&#xff08;Ku…...

Google地图瓦片爬虫——进阶版

紧接上一篇——Google地图瓦片爬虫 clash节点自动切换 为了防止一个IP地址访问频率过快问题&#xff0c;自动切换clash的节点 def change_node(is_stop):while True:_r requests.get("http://127.0.0.1:11053/proxies", headersclash_headers, verifyFalse)# 这里…...

免费windows pdf编辑工具

Epdf&#xff08;完全免费&#xff09; 作者&#xff1a;不染心 时间&#xff1a;2025/2/6 Github: https://github.com/dog-tired/Epdf Epdf Epdf 是一款使用 Rust 编写的 PDF 编辑器&#xff0c;目前仍在开发中。它提供了一系列实用的命令行选项&#xff0c;方便用户对 PDF …...

解锁C#数据校验:从基础到实战的进阶之路

一、引言&#xff1a;数据校验为何如此重要&#xff1f; 在软件开发的广袤领域中&#xff0c;数据校验宛如一座坚固的堡垒&#xff0c;守护着系统的稳定与安全。它是确保数据质量的关键防线&#xff0c;能有效避免错误数据的流入&#xff0c;进而提升系统的整体性能和可靠性。…...

Redis的通用命令

⭐️前言⭐️ 本文主要介绍Redis的通用命令 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 &#x1f349;博客中涉及源码及博主日常练习代码均已上传GitHub &#x1f4cd;内容导…...

设计模式六大原则和单例模式

设计模式 目的 实现可重用解决方案&#xff0c;构筑易维护、可扩展的软件系统。 六大原则 单一职责&#xff1a; 类的职责单一&#xff0c;一个方法做一件事。 开闭原则&#xff1a; 拓展开放&#xff0c;修改关闭。 里氏替换&#xff1a; 父类能出现的地方&#xff0c;子…...

Redis性能优化

1.是否使用复杂度过高的命令 首先&#xff0c;第一步&#xff0c;你需要去查看一下 Redis 的慢日志&#xff08;slowlog&#xff09;。 Redis 提供了慢日志命令的统计功能&#xff0c;它记录了有哪些命令在执行时耗时比较久。 查看 Redis 慢日志之前&#xff0c;你需要设置慢…...

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每日一练活动 课程详见&#xff1a;openGauss 3.0.0数据库在线实训课程 学习目标 学习openGauss数据库客户端工具gsql的使用。 课程作业 gsql是openGauss提供在命令行下运行的数据库连接工具&am…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...