- 博客(171)
- 资源 (22)
- 收藏
- 关注
原创 HybridCLR Example
预留了读取buildInfo.json文件方便使用命令行模式启动时读取编译参数,以下为编译参数。如果是构建热更会根据编译目标存放到 FileServer/{buildtarget}下。热更构建的时候会把生成的文件复制到StreamingAssets目录下。根据提交记录和上次构建整包对比文件变化,aot出现改动时阻断。hybridclr 热更真机测试。
2024-01-15 18:22:43
1272
原创 Roslyn 去除多余using
因为我们打包都是在打包机上操作的。一般情况下自己本地是不会打包也就不会知道在代码里面有多余using。在git的pre-commit钩子加上cs后缀文件的using检测。如果有多余的using直接删除。我们需要的是重载 VisitUsingDirective 函数,只需要返回空即可删除对应节点。经常出现打包到一半因为有多余的using导致的打包失败。当你添加新代码的时候VS会自动帮你添加对应的using,但是它只会帮你加不会帮你减。以上所有包含的信息在csproj里面都有记录。添加动态库所包含的文件。
2023-10-20 15:50:45
449
2
原创 一种基于体素的射线检测
修改步长会导致迭代次数暴增,并且想要不漏检需要很小的步长。下面使用了检测相交点是否连续检测是否空缺。首先射线经过的点必然连续,那么可以我们就可以直接对比上一次离开方块时的点和当前进入方块的点。体素检测,先检测当前位置是否是体素块,如果是,检测方块体内该位置是否有体素。否则就需要补充漏检的方块,有可能射线一次漏了2个方块没有检测。使用索引检测当前位是否有体素。先检测最靠近离开位置的坐标是否有方块。手动覆盖漏检的方块,青色为补充的检测。再检测靠近进入位置的坐标是否有方块。多个轴向观察射线是否在绘制的方块内。
2023-10-02 22:27:24
522
原创 python执行unity打包
使用管道执行unityeditor命名空间下的打包方法。指定-logFile参数日志输出到stdout。由于打包机并没有图形界面,在满屏的日志里面找错误又比较繁琐。所以需要捕获日志的错误在最后显示。最后把错误打印出来。返回非0值给shell捕获返回。
2023-09-17 00:20:09
441
原创 unity 编辑器时读取FairyGUI图集单个图像
还原public NTexture(Texture texture, Rect region) 构造传入来的region参数。X偏移坐标可以直接 uvRect.min.x * nativeTexture.width 得到真实的X偏移。图集里面的小图是有可能旋转的,可以通过访问 NTexture.rotated 判断在图集中是否旋转。Texture2D.GetPixel 和 Texture2D.SetPixel 接口读写非常慢。有数组后简单逆旋转90数组数据,就可以得到原来的小图。
2023-09-10 19:14:16
775
1
原创 ScrollRect 滚动后单个item坐标计算
实际的坐标只需要先计算content的坐标再计算子元素偏移。所以只需要处理LayoutGroup的Padding即可。因为item的坐标已经被引擎计算过了。最后相加就是实际item当前位置。
2022-12-24 17:10:19
241
原创 unity 调用AlertDialog
如何操作见:https://blog.youkuaiyun.com/qq_17813937/article/details/83277457?spm=1001.2014.3001.5502效果Unity首先是编写弹窗类的属性,用于设置弹窗信息using System;public class Dialog{ public string title; public string msg; public string[] buttons; public Action<st
2022-02-26 16:35:53
5681
原创 go 简单读取数据库
/*go-sqlite3 is cgo package.If you want to build your app using go-sqlite3, you need gcc. However,after you have built and installed go-sqlite3 with go install github.com/mattn/go-sqlite3 (which requires gcc),you can build your app without relying on g
2022-02-25 14:33:47
746
原创 UnityWebRequest 异步下载
UnityWebRequest的异步写法using System;using System.Threading;using System.Threading.Tasks;using UnityEngine;using UnityEngine.Networking;public class Example : MonoBehaviour{ /// <summary> /// 任务取消源 /// </summary> Cancellatio
2021-12-10 13:48:42
1351
2
原创 unity 扩展
public static class GameObjectHelper{ const string gameObjectIsNull = "GameObject is Null"; public static T IsAddComponent<T>(this GameObject self)where T:Component { Assert.IsNotNull(self, gameObjectIsNull); var com = se
2021-11-25 00:11:58
2184
原创 ET5.0 简单改造一下 ReferenceCollectorEditor
把一次性全部显示改为翻页改动的原因:我使用ReferenceCollector作为资源引用期间,某些对象引用上千对象。想要查看的时候直接卡死了。为啥会引用上千对象?因为定义场景中每一个单位都有唯一资源ID,所有单位都是通过唯一ID生成对象既然定义了统一ID,那么就需要一个统一的引用。用于根据ID查找实际预制体,然后就会单对象引用上千对象using System;using System.Collections.Generic;using UnityEditor;using UnityEngi
2021-11-19 14:46:30
3231
原创 获取预制体预览图
public class PreviewCameraEditor { Camera renderCamera; public static PreviewCameraEditor Create2D(Color color) { return new PreviewCameraEditor(true, color); } PreviewCameraEditor(bool orthograph...
2021-11-15 10:57:50
708
3
原创 处理不同类型数据方法
public interface IEvent{ void Handle(); void Handle(object a);}public abstract class AEvent : IEvent{ void IEvent.Handle() { Run(); } protected abstract void Run(); void IEvent.Handle(object a) { throw
2021-11-13 14:36:12
2578
原创 opencv 去饱和
demo:游戏文字识别时,简单的预处理首先准备一张图片用于文字识别直接用OCR识别会识别出非常多垃圾信息,这个时候我们就需要对图像进行预处理操作从上面的色阶图可以看出左边应该是背景板后面的垃圾信息,右边是我们所需要的的文字信息,只需要去掉背景信息即可获得需要处理的文字信息对图像去饱和后再进行阈值操作 static Mat Preprocessing(string file) { var img = Cv2.ImRead(file,Imre
2021-11-07 03:19:43
2269
原创 节点编辑器运行时遍历之广度优先搜索
原理看其他文章/// <summary>/// 广度优先搜索/// </summary>public static class BFSHelper{ public static T[] BFSForEach<T>(this List<T> array, T start, Func<T, T, bool> isParentFun) { return BFSForEach(array.ToArray(), st
2021-11-01 18:18:08
189
原创 旋转摄像机
using System;using UnityEngine;namespace MainEditor{ /// <summary> /// 爱的魔力转圈圈 /// 旋转摄像机指定度数 /// </summary> public class RotationCamera : MonoBehaviour { public int weight = 8; public float radius = 10
2021-10-20 17:47:19
124
原创 ET5.0 数值类型生成
生成结果:在ET中,数值组件由5个附加值决定最终结果,当然你也可以更改其公式 public void Update(NumericType numericType) { if (numericType < NumericType.Max) { return; } int final = (int)numericType / 10; int bas = final * 10 + 1; int add = final * 10 + 2; int
2021-10-05 00:55:27
418
原创 物理轨道模拟
素材来自:https://github.com/Matthew-J-Spencer/Trajectory-Line-Unity做游戏的时候难免会遇到需要物理预测的需求例如。要求显示炮弹发射轨迹,让玩家拥有更好的操作体验编写代码过程中。我们可以自己写一套,也可以直接使用自带的场景模拟自己写一套各有千秋,这里只说Unity自带的物理模拟SceneManager除了用来加载场景,卸载场景,获取场景对象,还可以创建场景创建时可以顺便指定创建对应的物理模拟LocalPhysicsMode说
2021-10-02 02:02:31
696
原创 射线检测可视化
3Dusing System;using UnityEngine;public class DrawPhysics:MonoBehaviour{ public RaycastHit Raycast(Vector3 origin, Vector3 direction, float maxDistance) { RaycastHit hitInfo; var isCollider = Physics.Raycast(origin, direction,
2021-09-22 23:48:54
530
原创 灵活的网格布局
总所周知 Grid Layout Group 平平无奇,单元格大小都要手动设置。想做个九宫格布局。还要手动计算单元格大小,偏移量等使用Vertical Layout Group 和 Horzontal Layout Group 组合又非常麻烦想要自定义布局,只需继承 Layout Group 重写 CalculateLayoutInputHorizontal 单元格坐标以及大小即可 public override void CalculateLayoutInputHorizontal()
2021-09-01 02:01:48
426
原创 无限滚动 ScrollRect
//有空的时候写文档demousing System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class Test : MonoBehaviour{ public Button addData; public Button gotoIndex; public Button changedLayout; public L
2021-06-23 01:38:25
573
1
原创 2张图片 从上到下分割显示
Shader "Custom/ClipTexture"{ Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _TwoTex("TwoTex (RGB)", 2D)= "white" {} _Glossiness ("Smoothness", Range(0,1)) = 0.5...
2021-06-19 00:17:57
213
原创 初识UGUI
Name功能Canvas画布Canvas Scaler画布缩放Graphic Raycaster图形射线检测RectTransform矩形变换组件Image,RawImage图片Button按钮Dropdown下拉列表Slider滑动条Scrollbar滚动条Scroll Rect滚动视图Toggle开关Toggle Group开关组Text文本InputField输入框Sha...
2021-06-17 02:55:17
1048
原创 unity gradle
根据https://developer.android.google.cn/studio/releases/gradle-plugin下载对应gradle设置maven{url'https://maven.aliyun.com/repository/google'}maven{url'https://maven.aliyun.com/repository/jcenter'}C:\Users\Administrator\.gradle的gradle.properties删除...
2021-05-20 20:43:20
265
原创 unity 接入谷歌广告
官方文档:https://developers.google.cn/admob/unity/quick-start使用实例:using UnityEngine;using GoogleMobileAds.Api;using UnityEngine.UI;public class GoogleMobileAdsDemoScript : MonoBehaviour{ public string adUnitId = "ca-app-pub-3940256099942544/63.
2021-05-09 21:37:01
1228
原创 Newtonsoft.Json 反序列化字典Key为Vector时解决方案
栗子: using Test = Dictionary<Vector2Int, Vector2>; public class NewBehaviourScript : MonoBehaviour { private void Awake() { Test list = new Test(); list.Add(Vector2Int.zero, Vector2Int.one); ...
2021-04-29 00:25:39
1123
2
原创 SharpZipLib
解压缩文件using System;using System.Collections.Generic;using System.IO;using ICSharpCode.SharpZipLib.Checksums;using ICSharpCode.SharpZipLib.Zip;public static class ZipFileHelper{ /// <summary> /// 压缩文件 /// </summary> ..
2021-04-07 15:30:57
153
原创 vscode tolua 代码提示
vscode lua.rar把 emmylua-unity-1.0.3.vsix 复制到 VSCode 的 bin目录下按住 Shift 右键 在此处打开 PowerShell 窗口,执行下面命令code --install-extension emmylua-unity-1.0.3.vsix安装好后打开vscode 安装emmyLua安装完成记得重启vscode 打开unity 的lua目录,空目录也行把EmmyLuaService.cs丢到unity项目的Editor文件夹下编译后 选择
2021-03-26 22:27:53
1128
1
原创 unity 摇杆
using UnityEngine;public class NewBehaviourScript : MonoBehaviour{ public Rocker rocker; public new Rigidbody rigidbody; public float speed; Vector2 offset; private void Awake() { rocker.Radius = 100; rocker.onDr.
2021-03-22 19:01:23
208
2
window环境下py3.5和vs2017编译的 caffe【无GPU加速】
2019-04-27
Unity http上传下载
2018-08-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人