- 博客(578)
- 资源 (71)
- 收藏
- 关注

原创 可能是全网最好用的桌面背单词软件
前言之前复习考研英语时,想找一个桌面背单词软件。看到市面上只有一款DesktopVoc,功能实现的不咋地,界面臃肿不美观,关键是还要收费,索性就自己用Python写了一个悬浮窗背单词小程序,实现了调整播放速度、窗户位置及大小、全屏模式、手动模式、复制、收藏、保存配置等功能。界面展示下载点击此处特征介绍调整播放速度(支持小数)鼠标左键调整位置,鼠标滚轮调整大小全屏模式切换播放顺序:随机播放、顺序播放切换播放模式:.
2021-04-29 00:02:54
14549
32

原创 Unity2d Rubys Adventure 课程设计报告
1游戏介绍Ruby是一个冒险家。一天,她意外地来到了一个奇妙的世界。在这个世界里,她需要通过多重考验,完成青蛙长者的任务,修复损坏的机器人。2游戏设计2.1菜单界面有三个选项:开始、关于、切换操控方式2.1.0切换操作方式本游戏有两种操作方式,三种操作方案,在菜单界面选择:鼠标+键盘、鼠标、键盘键盘操作: WSAD上下左右 E 与长者对话 J 攻击鼠标操作: ...
2020-06-11 00:52:14
22883
19

原创 北京林业大学2020年数字媒体技术Unity课程实验
目录1.Unity的下载、安装与使用配置2.Unity标准资源包Standard Assets的导入3.Unity3d地形Demo的创建与发布4.Unity3d子弹的瞄准、旋转与移动5.Unity3d游戏对象的创建与销毁 与 鼠标事件6.Unity3d刚体与碰撞体属性 固定、铰链、弹簧关节的使用 子弹的发射和销毁7.Unity2d地图Demo的创建8.Unity2d雷区与小怪的生成9.Unity3d简单动画10.Unity3d人形动画 一边走一边吹泡泡11.Uni
2020-05-10 22:13:39
2654
3
原创 Unity EventCenter 消息中心的设计与实现
在软件开发中,模块间通信是常见需求。直接通过单例调用虽然简单,但会导致代码耦合度高,难以维护。消息中心提供了一种松耦合的通信方式,发布者和接收者无需直接依赖,便于扩展和维护。消息中心的核心是使用ConcurrentDictionary来存储事件与回调的映射关系,确保线程安全。通过AddListener和RemoveListener方法管理事件监听,SyncBroadcast和Broadcast方法触发事件。广播时,遍历并执行所有回调,使用try-catch块处理异常,确保一个回调的异常不会中断其他回调的执行
2025-05-23 16:31:08
970
1
原创 Unity MeshCollider 无法被射线检测到
MeshCollider不会生成有效的碰撞区域,在Scene视图中看不到绿框。需要使用BoxCollider。在此基础上给它加一个微小的厚度。先计算mesh的包围盒尺寸。
2025-05-21 11:26:01
371
原创 Unity Display 1 No cameras rendering
如果此时相机已经输出到RenderTexture,场景中又没有别的相机在渲染,屏幕将变黑并显示No cameras rendering。Output Texture,要么是 None (屏幕),要么是RenderTexture。
2025-05-20 10:29:33
463
原创 Unity Image组件无法阻挡手势的解决办法
找到FingersScript中的ComponentTypesToDenyPassThrough字段。问题:Iamge组件勾选了Raycast Target,却接收了手势,触发了视角旋转。手势插件使用的是DigitalRubyShared的FingersScript,这样就可以禁止Image组件接收手势。
2025-05-14 14:29:21
268
原创 道格拉斯-普克算法
它通过减少构成曲线的点的数量,同时尽可能保留曲线的形状,从而实现数据的压缩和简化。因此,我想把这条轨迹的特征提取出来,只保留直线的开头和结尾的特征点,丢掉中间没用的点。在渲染轨迹时,原始的轨迹点本来就已经很密集了,再经过平滑插值之后,密集程度更是翻倍。在下图中可见,直线的中间区域,没有什么信息量的地方,却有大量的三角面被不必要地渲染。当所有子曲线都处理完毕,且没有新的关键点被添加时,算法结束。源数据有100多个点,处理之后只保留了14个关键特征点。递归地选择关键点,丢弃对曲线形状影响较小的点。
2025-03-17 16:34:46
398
原创 Unity InvalidOperationException: Collection was modified; enumeration operation may not execute.
避免在遍历时修改集合,如果需要修改集合,可以先记录需要修改的内容,遍历结束后再执行修改。对于 List 等支持索引访问的集合,可以使用 for 循环,并在修改时注意索引的变化。在遍历集合的同时,代码中直接或间接地修改了集合(如在 foreach 循环中调用 Add 或 Remove 方法)。等)时,集合的内容被修改了。,这显然是一个无效的地址,表明程序试图访问一个未对齐或无效的内存地址。一个线程正在遍历集合,而另一个线程同时修改了集合(如添加、删除元素)。这是一个常见的异常,表示在遍历集合(如。
2025-03-07 14:15:59
330
原创 Android Gradle构建报错 Could not find semver4j-0.16.4-nodeps.jar
下的build.gradle。
2025-03-06 15:27:16
271
原创 Unity 性能优化:RenderTexture 的动态加载与释放
在运行状态下抓取内存快照,在快照中,排查[对象和分配]。在列表中按类型排序,可以看到有一张较大的RenderTexture,怀疑是项目中的某张尺寸为2560x1320的贴图。对于2560x1320的 RenderTexture,如果每像素占用4字节(例如RGBA32格式),则大小为:2560 × 1320 × 4 = 13,516,800 字节 ≈ 12.9 MB应该就是它。最初开发时,是直接在Resources目录下创建的,由场景中的预制体持有其引用。
2025-03-04 15:18:52
679
原创 Unity 安装Memory Profiler时,在Package Manager搜不到
在Package Manager中,如果搜不到Memory Profiler。输入 com.unity.memoryprofiler。
2025-02-28 09:58:19
330
原创 Unity 高频渲染优化:数组复用降低GC频率
在高频渲染场景中,使用静态渲染方案时,频繁创建新的顶点、三角形和UV数组会触发大量GC,导致性能下降。通过复用已分配内存的数组,仅在数组大小不足时重新分配,可显著减少内存分配次数,降低GC频率,提升渲染性能。每次生成网格时都创建新的vertices、triangles和uv数组,这会频繁触发GC,尤其是在高频更新时。避免了不必要的内存分配,防止内存碎片化,提高内存的利用率。改为复用已分配内存的数组,只有在数组大小不足时才重新分配内存,这样可以减少内存分配次数,降低GC频率。
2025-02-27 15:42:22
249
原创 Visual Studio打开文件后,中文变乱码的解决方案
使用Unicode(UTF-8)编码加载文件 C:\WorkSpace\Assets\Scripts\UI\View\ExecuteComplateView.cs时,有些字节已用Unicode替换字符替换。保存该文件将不会保留原始文件内容。
2025-02-24 16:43:46
837
原创 Unity 查看Inspectors组件时严重掉帧
测试结果表明,当Count为public时,且Count在Update中每帧更新时,查看Inspectors面板会导致严重掉帧。后续又测试了几次,只要每帧更新的变量被序列化,查看时就会卡顿,无论是private还是public,[HideInInspector] or not.遇到一个问题,就是运行一个脚本的时候,只要我查看它的Inspectors,就会严重掉帧。这还真有点像波粒二象性,一观察就会掉帧,不观察就正常。原本是30fps,只要查看这个组件,就掉到5fps。
2024-09-26 16:48:04
503
原创 键盘异常的检测与解决方案
今天对象用Word写文档,按下Ctrl的时候,页面不停地上下滑动,导致无法正常编辑文本。按下Ctrl,仍会触发F9,但此时映射到了None,也就不影响实际使用了。安装python(python-3.12.1-amd64.exe)但是当按下Fn或其他功能键,焦点移除,页面就不会再抖动了。重启之后,仍然无法解决,推断是键盘坏了。简单地解决这个问题,可以把F9禁用。推荐SharpKeys。
2024-07-06 17:20:52
787
原创 Unity Content Size Fitter 刷新不及时
现在有一个需求,就是显示一个滑动列表这个滑动列表里面的项目数量是不一定的,会适时刷新在编辑器中,列表的使用是正常的。当打了包之后,就会出现列表无法滑动的情况。这是由于ContentSizeFitter没有及时刷新的缘故。在滑动列表中,容器Content挂载了ContentSizeFitter和VerticalLayoutGroup,以便计算该容器内装载物体的高度。在这个容器内,又装着两个标题及其对应的两个列表容器。这两个列表容器也同样挂载着ContentSizeFitter和VerticalLayoutGr
2022-12-16 11:26:03
3755
原创 Unity 未能找到程序集或命名空间
程序集相当于一个文件夹。如果没有程序集,就会被默认丢到Assembly-CSharp.dll中,这样编译的时候就比较浪费时间,因为一旦有一点点修改,就要整体重新编译。将项目内的脚本文件放置到多个程序集中,这样当某个文件改动的时候,只会重新编译对应的程序集。此时,如果不在B的程序集定义文件中添加对A的程序集定义文件的引用,则无法找到A的命名空间。假定工程文件被分为两个目录,一个为A,一个为B,文件夹内脚本均被打包进了对应的程序集。添加程序集引用之后,才能引用到它的命名空间。添加程序集定义的引用。
2022-08-24 10:44:05
4371
原创 Unity 高级背包系统
之前实现了一个初级的背包系统,它没有对物品进行分类。这一次新增了物品的分类存储与显示。Asset的结构为了对物品进行分类管理,在ScriptableObject中使用列表存储三个类型的物品,分别是武器、食物以及材料。这个列表中的元素是一个特别的类,它包含了这类物品的名字,以及存储这类物品的列表。在物品配置表中,存储的是Item类对象,在背包物品数据表中,存储的是InventoryItem对象,它们的差异是,InventoryItem类的对象多了一个数量的属性。代码......
2022-05-08 19:14:42
5641
1
原创 Unity 物品模型旋转展示
面板结构相机结构实现方法使用RawImage显示RenderTexture,RenderTexture的图像来源为物品细节摄像机。将物品生成在指定的位置上,然后用一个控制器让其自动旋转,再用聚光灯打光,就完成了。效果Unity 背包系统代码物品细节面板using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI.
2022-05-08 18:41:41
2509
2
原创 Unity 编辑器扩展 子物体材质替换
代码using System.Collections.Generic;using UnityEditor;using UnityEngine;public class ReplaceMaterial : Editor{ public static GameObject thisObject; public static Material newMaterial; public static string oldMaterialName = "Roof_Red";
2022-05-06 00:18:37
1317
原创 Unity 在不平坦的地形上创建河流
工具GeNa Pro - Terrains Villages Roads Rivers v3.3.16方法GeNa - Add River Flow添加河流起点,并设定海平面高度然后就可以创建河流了GeNa会自动根据地形高度生成河流路径生成Spline之后,可以简化和平滑如果地形过于平坦,无法自动生成河流,也可以用 Ctrl + Left Click 手动添加控制点先调整河流基本信息,再次设定河流宽度和海平面高度接下来就是雕刻地形.
2022-05-04 21:38:11
2913
原创 Unity 传送机制的实现
效果位置存储锚点设定传送界面传送效果代码位置using System.Collections.Generic;using UnityEngine;[CreateAssetMenu]public class Locations : ScriptableObject{ public List<Location> locations;}位置保存工具using UnityEditor;using UnityEngin..
2022-05-03 21:23:24
3218
3
原创 Unity 地图映射
思路位置映射地形 2261*3 = 6783地图 2560原点在地形正中心映射比例为 (6783/2) / (2560/2) = 3391.5 / 1280 = 2.65方向映射先求出玩家与z轴的夹角如下图所示把夹角映射到画布上,让坐标指向对应的方向比如,玩家指向x轴正向,坐标就应该绕z轴的反方向顺时针旋转90度代码......
2022-05-03 18:16:38
1298
原创 Unity 编辑器扩展 保存位置
数据存储类using System.Collections;using System.Collections.Generic;using UnityEngine;[CreateAssetMenu]public class Locations : ScriptableObject{ public List<Location> locations;}[System.Serializable]public class Location{ public str
2022-05-03 02:05:31
667
原创 Unity 可缩放地图的制作
架构使用Scroll View装载ImageContent与Image初始大小与Panel一致,后续通过代码进行缩放代码using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class MapPanel : MonoBehaviour{ public Slider scaleSlider; pu.
2022-05-02 17:52:11
1640
原创 Unity Scroll View在Clamped模式下无法移动
稍微专业一些的问题,还是用Google去查吧Q:Scrollrect Clamp Not WorkingHi All, I'm trying to implement a vertical scrollrect using the clamped movement type but for some reason it will not move when the type is set to clamp. If I set it to unrestricted or elastic it
2022-05-02 16:01:28
2193
1
原创 Unity 音乐播放管理器
MonoSingletonusing UnityEngine;public class MonoSingleton<T> : MonoBehaviour where T : MonoBehaviour{ private static T instance; public static T Instance { get { if (instance == null) {
2022-05-01 20:18:32
1081
原创 Unity MonoSingleton
using UnityEngine;public class MonoSingleton<T> : MonoBehaviour where T : MonoBehaviour{ private static T instance; public static T Instance { get { if (instance == null) { // 查找存.
2022-05-01 20:13:16
474
原创 Unity 遮挡剔除
将场景中的静止物体设定为静态遮挡物 Static Occluder 和静态被遮挡物 Static Occludee。但是它们必须是 地形 或 Mesh Renderer,不透明,不移动。设定了静态遮挡物和静态被遮挡物之后,确保摄像机开启了遮挡剔除功能之后,就可以去烘焙遮挡剔除的数据了。烘焙数据之后,保持在该页面下,然后到场景中,选择Visualize,就可以看见被剔除的效果了......
2022-04-30 20:10:00
3706
原创 Unity 新增子物体时影响父物体坐标轴的解决办法
如果场景工具栏的Toggle Tool Handle Position 设定为中心那么坐标轴就在物体的几何中心处新增子物体时,父物体几何中心自然会变化将Toggle Tool Handle Position 设定为 轴心,坐标轴就固定在物体的轴点了...
2022-04-27 23:42:53
3859
4
屏幕亮度调节与息屏小工具
2021-04-28
Shirley Anime-Style Character VRChat 1.0.unitypackage
2022-02-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人