- 博客(27)
- 资源 (4)
- 收藏
- 关注
原创 Spine 世界坐标转Unity UGUI局部坐标
这个需求的主要问题就在于spine导出的数据只有子对象相对父对象的坐标,而没有世界坐标所以思路也很简单,就是一层层的往上面找,找到最顶层之后开始回溯,简单的实现了一下,代码是可以优化的,有需要的请自行优化/// <summary> /// 开始画 /// </summary> void StartDraw() { Skele...
2019-10-14 17:42:08
1138
1
原创 圆心识别算法 c#版
今天有个需求,识别图片中的圆的圆心,已知都是完整的圆,而且没有半截的圆,并且圆的颜色都一样,没有其他的干扰因素,要寻找这些圆的圆心,稍微思考了一下,这个问题其实没有那么复杂,因为都是完整的圆,那么就可以根据圆的性质入手,2条经过圆心的线就可以确定一个圆的圆心了,那么如何来确定这两条线呢?圆还有一个性质就是圆是对称的,所以任意的穿过圆的线的两个交点的中心就是处在垂直于这条线并且经过圆心的线上面,...
2019-10-09 18:30:41
1278
原创 Unity 卡在loading界面如何处理
今天早上打开Unity时出现了一个出现过很多次的问题,卡在Loading白屏界面了,因为插的无线网卡,所以猜想可能是网络原因,然后Loading了一会就觉得不对,不应该这么慢,然后想起来我之前安装2019.3版本的时候安装了unity hub,所以我尝试直接从unity hub来开启2018.3的项目,然后不出所料,果然直接越过了Loading界面。...
2019-09-09 09:52:00
1581
原创 Unity 物理模拟不够逼真如何处理
将ProjectSetting -> Time-> FixedTimestep的检测间隔进一步缩小,例如0.003提高物理系统的更新速度就可以更加逼真
2019-08-30 15:33:06
2585
原创 Unity StartCoroutine的坑
如果在使用StartCoroutine的参数填写函数调用比如StartCoroutine(Fun())这样写,那么会有个问题StopCoroutine(Fun())无法停止这个开启的携程StopCoroutine("Fun")也无法停止但是StartCoroutine("Fun")开启的携程就可以用StopCoroutine("Fun")停止如果实在想用上一种方法,参考...
2019-08-28 14:44:25
1324
原创 Unity双层嵌套ScrollView
在unity中实现2层ScrollView的嵌套,两层的ScrollView的拖动方向不一样,这个功能的核心就是如何把子ScrollView事件传递给父ScrollView,在查阅资料之后发现只需要实现一下3个接口就行了using System.Collections;using UnityEngine;using UnityEngine.EventSystems;using Unit...
2019-07-30 14:37:38
2339
1
原创 unity Canvas组件可能碰到的问题之一
Canvas tempCanvas = gameObject.AddComponent<Canvas>(); tempCanvas.overrideSorting = true;上述代码的功能是修改canvas的 overrideSorting属性为true,也就是重写Sorting属性的值,默认为false,改为true之后可以不随父对象的sorting属性,比...
2019-07-01 18:28:37
3565
原创 Unity 拓展功能之 Hierarchy面板右侧小图标功能
实现的功能如下图可以在对象的右侧画一个小图标,代码如下,放到Editor目录下,代码注释较多,就不详细介绍了using System;using System.Collections.Generic;using UnityEditor;using UnityEngine;[InitializeOnLoad]public class DrawHierarchyLockIcon{...
2019-06-21 18:37:50
2580
原创 Unity Spine 换装方案
Spine是目前用的比较广泛的2D骨骼动画插件,在unity中的使用也是比较多的,现在的项目有需要做一个外部资源来换装的换装系统,下面是根据官方的例子实现的一种方案using System.Collections;using System.Collections.Generic;using Spine;using Spine.Unity;using Spine.Unity.Modul...
2019-06-06 18:12:15
4326
1
原创 Unity UI局部坐标转世界坐标
有时会有这样的需求,比如UI有一个坐标,如何去转成世界坐标呢,有人可能会想,直接transform.position不就行了吗,对,这样确实可以,然而如果只有这个坐标,却没有实体对象呢,比如把这个坐标作为炮弹的发射点,这时候,要如何去自己实现坐标系之间的转换呢。首先我们需要借助unity的相机的坐标转换函数 ScreenToWorldPoint,这个API可以帮助我们把坐标系从屏幕坐标系转换成...
2019-06-03 11:43:45
7334
1
原创 Unity 批量修改资源文件名
在有的时候会有需求去批量修改文件名,下面上代码using System.Collections;using System.Collections.Generic;using System.IO;using UnityEditor;using UnityEngine;/// <summary>/// 批量修改文件名/// </summary>public...
2019-04-30 16:19:14
4321
4
原创 Unity transform.childCount的坑
在当前帧用Destory改变了这个子对象的数量,要下一帧才能获取到的这个数值才是正确的但是用DestroyImmediate就可以实时改变
2019-04-26 11:15:35
5371
3
转载 unity 截屏功能
参考https://blog.csdn.net/qq_33716394/article/details/79083037https://blog.csdn.net/u010698150/article/details/53842082/using System.Collections;using System.Collections.Generic;using UnityEngin...
2019-04-11 11:11:59
196
原创 unity DontDestroyOnLoad的坑,以及如何绕过
在使用DontDestroyOnLoad的时候,Scene A到B,对象a没有被销毁,从Scene B再返回A,这时候在加载SceneA的过程中,对象a又被重新加载了一次,这时候,我们怎么办呢?可以用unity自带的数据存储功能,存储一个变量作为标记,起到一个开关的功能,只要进去了一次,以后都进不去了,具体代码就不贴了...
2019-03-16 21:10:19
608
转载 GetModuleHandle
#pragma pack(8)typedef struct _PROCESS_BASIC_INFORMATION64 { NTSTATUS ExitStatus; UINT32 Reserved0; UINT64 PebBaseAddress; UINT64 AffinityMask; UINT32 BasePriority; UINT32 Reserved1; UINT64 ...
2018-10-14 16:01:03
781
原创 连连看游戏寻找能成功消除的算法
连连看游戏的消除判定是3条直线之内能连上即可消除那么,要如何实现呢首先,我们把棋盘的数据用一个数组来存下来然后分析一下消除条件0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
2018-08-24 15:54:33
1311
6
原创 Unity高速物体穿透问题
因为物体速度过快,在一帧之内就把障碍物的碰撞体穿透了这种时候就应该把刚体的Collsion Detection选项调成Continues Dynamic物体逻辑要比节约性能更加重要,如果这样还不行,那么推荐https://blog.csdn.net/qq_37244872/article/details/100160026...
2018-06-14 18:39:19
3463
原创 用unity的line renderer 组件画个滑稽
Line Renderer组件是unity自带的3d画线组件,通过一个一个的点来在3d空间中画出一条线。第一步:先建一个Quad组件,在3D Object里面,然后调整一下坐标第二步:建一个管理画线的GameObject,Creat Empty就ok,挂上控制画线的脚本第三步:做每条线的预制件,同上,Creat Empty就ok,加上Line Renderer组件,这样就做好了想要后面画的线条好看...
2018-05-18 14:46:46
679
转载 u3d面试题
线程是操作系统级别的概念,现代操作系统都实现并且支持线程,线程的调度对应用开发者是透明的,开发者无法预期某线程在何时被调度执行。基于此,一般那种随机出现的BUG,多与线程调度相关。coroutine则是一个概念,windows上有所谓的fiber纤程实现,而好些语言中也自带coroutine的实现,比如Lua。与线程最大的不同是,coroutine的调度/挂起/执行开发者是可以控制的。另外cor...
2018-04-16 11:16:51
253
转载 MonoBehaviour继承关系
MonoBehaviour继承Behaviour,Behaviourh继承Component,Component继承Object
2018-04-04 13:53:56
297
原创 string数学表达式处理
优化一下上次写的代码,加上了注释,加强了可读性和封装性#include "reverse_polish.h"void reverse_polish(){ string st; cout << "输入一个表达式" << endl; cin >> st; cout<<main_logic(st);}//处理括号string main_l...
2018-02-09 16:17:03
524
原创 string类型的数学表达式处理
本来是想写一个逆波兰的,写着写着就写歪了,写成了直接处理表达式字符串并输出结果,写的差不多了才发现逆波兰比这样写应该要简单,也可能是我的思路有问题吧,还有一些需要优化的地方以后再说吧。 主要的思路是这样的,先处理括号,把一个带括号的表达式分解成前段,括号内的内容为中段,括号后面的内容分为后段,递归处理中段括号内的字符串,因为这样可以完美的处理好括号的问题,然后把不带括号的表达式传递给计算不带...
2018-02-08 14:54:49
1193
原创 int(*foo(int(*)(int,int),int*))(int*, int(*)(int*))到底是什么?
int(*foo(int(*)(int,int),int*))(int*, int(*)(int*))可以分为2个部分auto foo(int(*)(int,int),int*) ->int(*)(int*, int(*)(int*))这样看就很明了,foo是参数是(一个参数为2个int,返回值为int指针的)函数指针和int指针的函数,返回值是一个指向(返回值是int)(参数为int
2018-01-29 17:13:02
1498
1
原创 递归约瑟夫一点理解
int Joseph_recursive(int sum, int value, int n){ if (n == 1) { return (value - 1) % sum; } else { return (Joseph_recursive(sum - 1, value, n - 1) + value) % sum; }}第一步,限定递归的范围,就是当递归次数到达最
2018-01-15 17:35:44
200
原创 2017-12-13 指针
指针常量指向常量的指针可以修改指针指向,不能修改指向地址的内容。 常量指针固定指向的指针,可以修改指向地址的内容,但是不能修改其指向性。 指向常量的常量指针指针本身就是一个常量,即不能修改其指向的地址,但是因为其指向的地址是个常量,所以连其指向地址的内容也没法修改。 2个函数的用法malloc函数动态内存空间申请realloc重新...
2017-12-13 19:12:06
119
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人