自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AcmHonor的专栏

菜鸟不吃素 , QwQ

  • 博客(153)
  • 资源 (3)
  • 收藏
  • 关注

原创 Unity百度地图,支持PC,Android,iOS,支持添加模型,支持卫星图,街道图

目前国内支持Unity的地图只有腾讯地图,但是腾讯地图只有两个月的试用时间,而且相对百度地图,腾讯地图确实有点拉跨,无奈只能自己写地图了**地图原理基于墨卡托坐标,每个经纬度在Unity中都是固定的世界坐标,在地图中添加模型只需要将经纬度转成世界坐标,再把模型设置到位置即可,地图有缓存机制,默认最大容量500MB,可以自行设置,项目刚刚写完出版,有BUG在所难免,发现BUG欢迎留言**github: [https://github.com/achonor/UnityBaiduMap](https://g

2021-01-14 22:03:14 4051 30

原创 UnityShader 世界坐标不随模型变化

今天遇到一个大坑,记录一下上面两行代码结果是一样的,导致世界坐标一直等于模型坐标

2022-06-20 02:03:04 358 1

原创 计算直线和平面的交点

平面的法向量N和平面上点P1可以确定一个平面直线的方向向量N1和直线上一个点P0确定一条直线已知P0不在平面上,计算直线和平面的交点P2很容易理解,向量P0P1和向量P0P2在平面法线上的投影长度相等,即Dot(P0P1, N)等于Dot(P0P2, N)还有向量N1在向量N上的投影长度Dot(N1, N)/Dot(P0P2, N)等于N1的长度/P0P2的长度上代码: /// <summary> /// 计算直线和平面的交点 /// &

2022-03-08 12:22:37 1137

原创 Unity Behavior Designer(行为树)Abort Type(中断类型)

我的理解:正常情况下组合任务中的子任务运行完之后只有等到Restart之后才会再次运行,但是当组合任务设置了Abort Type(中断类型)后,子任务的OnUpdate仍然会继续运行,当子任务的OnUpdate返回值发生变化时就会产生中断,中断当前运行中的任务,回到发生变化的子任务中重新运行子任务None: 不会产生中断Self: 当前组合任务还没运行完,所有子任务的OnUpdate会继续运行,检测是否发生中断Lower Priority:同层且比自身优先级低的任务还没运行完,所有子任务的OnUpd

2022-03-02 17:12:40 4783

原创 Unity XR Interaction Toolkit 2.0.0使用方法

项目名称:VR保龄球项目地址:https://github.com/achonor/VRBowlingVR Interaction Toolkit 2.0.0的Demo项目:其中包含移动,传送,旋转,抓取,按键回调的用法

2022-02-20 23:43:32 4632

原创 UnityShader 翻书效果

Shader "Achonor/TurnBook"{ Properties { _MainTex ("FrontTex", 2D) = "white" {} _BackTex ("BackTex", 2D) = "white" {} _Speed ("Turn _Speed", Range(0, 1)) = 0.5 _XOffset ("Centor X Offset", float) = 5 _Angle .

2022-02-09 11:53:16 2165

原创 Unity ScreenToWorldPoint精度不够

开发中遇到float精度不够 Vector3 worldPos = mMapCamera.ScreenToWorldPoint(screenPos); Vector3 tempPos = mMapCamera.WorldToScreenPoint(worldPos);上面代码执行后screenPos不等于tempPos ,找了半天发现是float精度不够,最后自己重写ScreenToWorldPoint来解决public Vector3 ScreenToWorldPoint(Vector3 scr

2022-01-07 17:56:16 3028

原创 Unity Canvas下的UI坐标转屏幕坐标

public static Vector2 Local2ScreenPoint(this Transform transform, Camera camera, Vector2 localPos) { Vector2 worldPos = transform.TransformPoint(localPos); return camera.WorldToScreenPoint(worldPos); } /// &...

2021-12-29 11:44:48 2388

原创 基于ESP32-Cam和Unity的远程遥控视频小车

项目链接:Unity: https://gitee.com/achonors/smart-carESP32: https://gitee.com/achonors/esp32_-smart-car提示:ESP32项目使用VSCode安装PlatformIO后打开运行主要技术:1.ESP32上打开CameraWebServer推送摄像头的实时画面2.ESP32开启TCP服务,监听远程发送的指令3.ESP32使用PWM控制小车四个车轮转速,实现小车转向,前进,后退4.Unity上使用UMP插

2021-11-12 19:58:27 6635 5

原创 ESP32的TCP延迟太大

问题:局域网下使用ESP32开启WiFiServer监听TCP延迟有半秒多原因:再循环读取TCP接受的数据时使用了readBytes方法client.readBytes(readBuffer, 20);解决:将readBytes方法替换成read方法就好了readBuffer[0] = client.read();具体原因也没仔细看源码了...

2021-11-12 19:27:35 4027

原创 WPF Binding不生效的问题 BindingExpression

运行输出错误:BindingExpression path error: ‘text’ property not found on ‘object’C# public class Phone { public string text; }XAML<TextBlock Text="{Binding text}" Width="200"/>去官方查了一下发现所以C#中要改成 public class Phone { public

2021-04-23 17:14:58 2286

原创 1316. 不同的循环子字符串

题目链接:https://leetcode-cn.com/problems/distinct-echo-substrings/思路:前缀字符串哈希public class Solution { int[] nextIndex = new int[2005]; long[] hashPre = new long[2005]; long[] hashPow = new long[2005]; HashSet<long> hasHash = new HashSet

2021-04-07 17:17:01 133

原创 C# 双向队列 单调栈

public class Deque<T> { public class DequeNode<T> { public T value; public DequeNode<T> pre; public DequeNode<T> next; } public int Lenght; public DequeNode<T> Front = new DequeNode<

2021-04-07 15:51:37 1044

原创 LeetCode 483. 最小好进制

题目链接:https://leetcode-cn.com/problems/smallest-good-base/思路:1.先遍历[2, 10]进制是不是满足条件,后面再判断[11, n - 1]2.假设n转换成x进制等于y, 其中y = 11111…111(长度等于n的长度)3.二分查找x的值,范围是[11, n - 1]4.找到对应的x则返回,否则y = y / 10,继续第3步的二分查找public class Solution { /// <summary>

2021-04-06 17:01:13 145

原创 LeetCode 1425. 带限制的子序列和

题目链接:https://leetcode-cn.com/problems/constrained-subsequence-sum/思路:动态规划 dp[i] = Max(nums[i], nums[i] + dp[i + j]) 其中0 < j <= k,但是直接遍历dp[i + j]会超时,所以要维护一个能快速查找dp[i + j]中最大值的结构,可以使用单调栈,也可以用平衡二叉树,由于C#中没有双向队列,干脆就直接拷个Splay树过来。 public class So

2021-04-06 11:12:43 190

原创 LeetCode 327. 区间和的个数

题目链接:https://leetcode-cn.com/problems/count-of-range-sum/题意:给定一个数组nums,找出子数组中元素和在[lower, upper]中有多少个,[-2, 5, -1]的子数组有[-2, 5, -1],[-2, 5],[-2],[5, -1],[5],[-1]共6个,满足条件的共3个思路:1.维护一个平衡二叉树,将所有以下标以0为起点的子数组和插入二叉树中([-2, 5, -1] = 2,[-2, 5] = 3,[-2] = -2)满足在

2021-04-02 14:38:55 166

原创 LeetCode 1000. 合并石头的最低成本

题目连接:https://leetcode-cn.com/problems/minimum-cost-to-merge-stones/思路:区间动态规划,详细看注释using System;using System.Collections.Generic;using System.Text;namespace LeetCode { class Program_1000 { int Step; //前缀和 int[] Sum = new i

2021-03-31 15:54:50 171

原创 Unity导入arr文件打包报错

原因:导入打包arr文件的时候项目中导入了classes.jar,Unity中本身就已经有classes.jar了解决方法:用解压软件打开arr文件,删除其中的libs/classes.jar报错内容:CommandInvokationFailure: Gradle build failed. D:/Program Files/Java/jdk1.8.0_271\bin\java.exe -classpath "N:\Unity\2019.4.15f1c1\Editor\Data\PlaybackE

2021-01-08 10:57:26 1135

原创 Unity Texture图集上Sprite的UV导出

public class BaseEditorWindow<T> : EditorWindow where T : EditorWindow{ protected static void GetWindow() { EditorWindow.GetWindow(typeof(T)); } protected static string GetMouseSelectPath(Rect rect, string defaultPath, bool isR.

2020-10-23 10:18:51 1303

原创 Unity 批量提取FBX中的.anim动画文件

private void CopyFBXAnim() { Object[] SelectionAsset = Selection.GetFiltered(typeof(Object), SelectionMode.Unfiltered); foreach (UnityEngine.Object assetFile in SelectionAsset) { AnimationClip newClip = new AnimationClip();...

2020-09-21 14:07:50 1295

原创 C# 优先队列实现

public class HeapQueue<T> where T : IComparable<T> { private List<T> array = new List<T>(); public int Count { get { return array.Count; } } private void...

2020-08-27 14:06:50 637 1

原创 LeetCode 1163. 按字典序排在最后的子串 非投机取巧

**1.先用dp算出所有的下降子序列2.将所有最长的下降子序列放入vector中排序3.先按照所有下降子序列的第一个字符排序,然后舍弃后面的子序列4.再按照第二个字符排序,再舍弃后面的子序列,直到vector中只剩下一个子序列**class Solution {private: string text; int dp[400005]; inline char GetText(int index) { if (index < text.lengt

2020-08-26 13:13:50 205

原创 LeetCode 1147. 段式回文

1147. 段式回文https://leetcode-cn.com/problems/longest-chunked-palindrome-decomposition/ public class Solution { int result; string text; //lastIndex[x][y]表示0-y这段字符串中x字母最后出现的位置 int[][] lastIndex = new int[26][];

2020-08-20 12:06:07 204

原创 LeetCode 4. 寻找两个正序数组的中位数

https://leetcode-cn.com/problems/median-of-two-sorted-arrays/解题思路:使用两层二分查找 public class Solution { //数组中小于target的数字数量 int SearchLeftCount(int target, int[] numbers) { int left = 0; int right = numbers.Length;.

2020-08-14 14:00:03 90

原创 Unity UGUI 横竖屏切换自适应方案

Demo地址:https://github.com/achonor/ScreenAdapt使用方法1.将AdaptManager挂到场景中2.具体使用可以查看DemoEditor扩展使用1.非运行状态下切换分辨率后点击菜单上的Achonor->ApplyAdaptScreen让UI重新适配屏幕2.继承自AdaptBase的类包含两个属性LandscapeConfig, PortraitConfig分别是横屏配置和竖屏配置,UI调整之后可以在Inpsector中右键对应属性然后点击Copy

2020-08-06 14:14:20 3072 2

原创 Unity UI重复Sprite的处理

Unity中同一张UI图片再项目中多个地方使用,但是Sprite的设置又不相同,一般的做法就是拷贝一张一样的图,但是这种方法会使资源被重复打到包里,增加包体大小还有另外一种比较好的处理方式,就是单独创建一个asset文件引用原图,具体做法如下。1.项目Editor目录下创建一个cs文件,将下面代码拷贝进去using UnityEditor;using UnityEngine;public class Menutools{ [MenuItem("Tools/CopySpriteAsse

2020-06-28 11:30:14 711

原创 [HDU 1011] Starship Troopers 树形dp

http://acm.hdu.edu.cn/showproblem.php?pid=1011题意:有一支军队,每个人能消灭 20 个 bug。输入n , m。表示 bug 有 n 个洞(编号1-n )和这支军队有 m 个人。这些洞形成一颗树,必须打了前面才能打到后面。

2020-06-09 15:36:50 520

原创 Unity Android GooglePlay分包obb文件流程

Unity勾选Split Application Binary在Edit->Project Settings->Player->Other Settings->Split Application Binary打包完成之后会出现*.apk和*.obb两个文件安装apk文件重命名obb文件 :main.{versionCode}.{pkgname}.obb 例如 main.1.com.achonor.test.obb复制到:Android/data/obb/{pkaname}.

2020-05-28 16:03:22 1412

原创 UnityShader Reversed-Z的理解

今天遇到一个奇怪的问题,屏幕后处理时使用_CameraDepthTexture还原世界坐标的时候出问题了,多番调试发现_CameraDepthTexture中保存的深度值 depth = 1 - Zn (Zn指NDC的z分量,即透视除法后的坐标z)(假设NDC坐标取[0, 1]),至于为什么要这样可以看看下面的文章Reversed-Z详解-幽玄Nvidia的关于Reverse-Z的文章我的理解:当相机是透视投影模式的时候Zn是非线性的,Zn和相机空间下Z轴的关系如下:从图中可以看出,近裁剪平

2020-05-17 00:00:40 1539 1

原创 UnityShader 总是朝着摄像机的帧动画 Billboard

// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'Shader "Achonor/Billboard"{ Properties { _MainTex ("Texture", 2D) = "white" {} _RowAmount ("Row Amount", Float) = 4 _Colu...

2020-04-30 20:58:53 512

原创 批处理图片尺寸修改成4的倍数

Unity中使用ETC2压缩格式要求图片尺寸必须是4的倍数,所以写个脚本修改一下尺寸Python要先安装Pillowpip install Pillowimport osfrom PIL import Imagein_dir = r"F:\UnityProjects\Porject"out_dir = r"E:\VineyardValleyImages"file_list = N...

2020-04-23 17:15:16 2160

原创 切线空间的法线贴图使用

法线纹理TextureType设置为Normal Map(使用Unity内置的Shader必须设置为Normal Map)设置为Normal Map的贴图在不同平台Unity会采用不同的压缩方式法线的z方向始终为正,法线纹理存储的是单位向量,所以只需要保存法线的x, y方向对法线贴图进行纹理采样后需要使用UnpackNormal来获得真正的法线(DXT5nm格式压缩的纹理a对应x,g对应y...

2020-04-19 13:27:04 544

原创 基于pywin32的考勤警报软件

**最近疫情原因在家办公,公司怕我们再加偷懒给电脑安装了考勤抽查软件,“思考问题”的时候考勤软件随时会跳出来,要是没看到就凉凉了。故无奈用下班时间开发了一个软件打开提醒的软件,没有发给同事用,希望老板看到不要找我麻烦。。。。****源码:https://gitee.com/achonors/WindowWarn.git**软件基于使用pywin32,pygame等框架开发,常驻任务栏,ic...

2020-04-18 00:38:53 188

原创 左右边界二分查找

1.查找小于等于int BinarySearch(int value, int left, int right){ while(left < right){ cout<< left << " " << right <<endl; int mid = (left + right) >> 1;...

2020-02-25 10:33:18 305

原创 Unity 防沉迷逻辑

1.AntiAddictedController .csusing System;using System.Collections;using System.Collections.Generic;using UnityEngine;namespace Achonor.AntiAddicted{ public class AntiAddictedController : Mo...

2020-02-24 17:53:51 1831 3

原创 Git项目提交到SVN

1.初始化svngit svn init svnURL2.拉取SVNgit svn fetch3.链接svn和git的提交记录//找到svn最后一次提交git show-ref//找到git的第一次提交git log --pretty=oneline master //链接提交git replace --graft [localfirstcommit] [parentcom...

2020-01-13 15:54:25 2417

原创 TexturePacker图集转Unity Sprite Multiple

用大佬代码优化:https://blog.csdn.net/salvare/article/details/82712466由于JsonUtility不支持C#中的Dictionary,所以导入第三方库LitJson,下载地址:LitJson.dll,下载完放到Assets\Plugins下代码放到Assets\Editor下使用方法:Texture和json放到同目录下,选中Texture...

2019-08-06 10:03:49 868

原创 Unity记住android签名keystore密码

using UnityEditor;[InitializeOnLoad]public class GlobalConfig{ static GlobalConfig() { PlayerSettings.Android.keystorePass = "文件密码"; PlayerSettings.Android.keyaliasName = "...

2019-07-03 10:14:52 935

原创 AI自动行走逻辑

using System;using System.IO;using System.Text;using UnityEngine;using UnityEngine.UI;using System.Collections.Generic;namespace Letang { public class AutoRunning : MonoBehaviour { ...

2019-06-27 16:57:39 452

原创 红黑树-RBTree

#include <set>#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#pragma warning(disable:4996)using namespace std;struct RBNode { int value;...

2019-04-17 16:35:34 357

keystore2pk8.zip|keystore2pk8.zip

android keystore签名文件转pk8, x509.pem,具体使用方法在压缩包里面。。。

2020-09-07

Visual AssistX for 2017

安装后替换VA_X.dll,支持VS2017,版本2238,https://download.csdn.net/upload

2018-07-29

Editor Console Pro 3.951

Unity Editor Console Pro 3.951 亲测支持2017 3.1 亲测支持2017 3.1

2018-05-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除