自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (6)
  • 收藏
  • 关注

原创 反射UnityEditor.GameView设置GamePlayMode分辨率

/找到 构造方法 public GameViewSize(GameViewSizeType type, int width, int height, string baseText)int count = (int)getCustomCount.Invoke(curGroup, null);// 获取索引x的分辨率。// //执行 添加到 group 中 GameViewSizeType m_SizeType;//获取 GameViewSizeGroup。// //获取enum中的类型。

2024-01-06 15:43:02 1147

原创 unity一种日志过滤的思路

unity打印日志的函数Debug.Log但是这样会有一个问题,某些c#打印过于频繁 ,我作为一个开发者不关心他的模块日志。但是我没办法去给他把日志删除了,这样没有道德。于是想着写这样个工具,它不太完美 ,它只能指定我们需要那些cs文件的日志 整体它长这样比如我现在调试角色的跳跃,角色的跳跃是个很复杂的过程,有起跳阶段,上升阶段1 2 3 ,最高阶段 ,下落阶段123 落体阶段等等等等 这里面相关的参数很多,需要很多判定,需要看日志如下图就是看移动组件的日志 。上面filter是一个list 我

2022-03-21 17:34:19 3356

原创 游戏开发中如何设计一个撤销重做系统DoUnDo

我现在负责做捏脸的模块,其中需要做撤销重做,老实说上一次做还是大学的时候做绘图程序有用到过,那个时候就是简单用了一个栈来操作。当时的一个核心思想是不管你绘制的是矩形、三角形、还是什么形状,底层他们都有一个基类叫图元。基于这种联想我开发出了一个实际游戏工程中用到的撤回重做系统。 我们不记录复杂的操作,复杂的操作留给系统内部cpu去计算,我们只是记录简单的数据越少越好,当然需要保证逻辑正确。这种系统还可以联想到某些游戏中的时间回流的做法。所有的需要被DoUnDo的操作 比如一个点击 我们可以new一个对象,

2022-03-21 17:26:43 3479

原创 DoTween的DoKill可能的坑点梳理

现在游戏中都是尽量复用对象,后者会导致复用的对象状态还是之前的状态。DoTween的onComplete回调会立即执行 。为了保险起见建议使用前者 参数传false 已经实践transform.DOKill(false);transform.DOKill(true);...

2022-01-28 19:15:01 4339

原创 3种递归写法 获取结点树目录

3种获取场景结点树目录的递归写法

2022-01-26 18:13:55 320

原创 未知轴的四元数变换问题从a到b以及从b到a

最近在做捏脸查了很多资料大概有思路了,已知animator改变骨骼的transform是在update阶段故此留给我们的大概只有lateudpate中去修改骨骼的transform 。比如骨骼捏脸我们设置了一个旋转四元数,animator对骨骼施加了另外一个四元数 。那么我们要做的就是求出来模型静止的时候ab变换的那个t四元数。怎么求t呢 t * a = b 利用这个公式。四元数和矩阵的运算类似这里 t = b * a-1 (a-1是a的逆 ) 假设animatro将物体改变到c 那么我...

2022-01-24 21:22:23 2534

原创 解决button阻挡scrllrect滑动的问题

using UnityEngine;using UnityEngine.UI;using UnityEngine.EventSystems;using UnityEngine.Events;namespace rkt{ public class DragItem : MonoBehaviour, IBeginDragHandler, IEndDragHandler, IDragHandler,IDropHandler { [Header("要拖动的ScrollR...

2022-01-19 20:03:09 2004

原创 可回收特效拖尾组件TrailRenderer轨迹折线问题

美术特效经常会挂上拖尾组件以让一个飞行子弹或者飞行特效更加炫酷,因为我们的特效是可回收的,也就是说子弹在销毁的时候不是真的销毁是被我们放置到了很远的地方 比如10000,0,0。下次子弹生成的时候会被强行设置过来导致显示上存在一些问题。在子弹回收的时候设置清空trileRender组件数据for(int i = 0; trailRenderList != null && i < trailRenderList.Count; i++) { i...

2021-11-29 10:24:57 3348

原创 A追B如何计算子弹的飞行轨迹

假定有这么一个需求 A是我方B是敌方,现在A需要曲线追B ,万剑归宗大家应该都见识过,这些飞剑飞向目标并不是直线它有一段曲线的过程,那这个过程是如何做到的。这里s为速度方向,我们想办法推出他的公式。这个θ是相对角。因为一开始我们去配置这样一个轨迹的时候 我们粗暴的认为AB这条线就是正x轴。 不过实际游戏中AB这条轴是任意的向量,但是θ和他们的初始夹角却是一样的,如图θ是正的,这一点可以通过向量乘法去得到(向量的坐标表达式)我们需要得到s离不开AB 这里AB可以轻易算出来就是TargetDi...

2021-11-19 21:03:41 4026

原创 简单数组算法分享

1.算法来源于生活,来源于工程实际。我在2d游戏开发中遇到一个需要发射扇形区域的散射弹角度是+120 到-120之前 这个区域可能有12个子弹。我在计算的时候是从+120计算到-120 也就是数组是a【0】 = 120 a【11】 = -120 。 注意正角度在x轴上方 负角度在下方,这个通过向量的乘法来判断(用坐标表达式计算) 类似数组12345 要变为32415 下面的函数就是干这个事情 注意数组是引用类型。public static void CenterFloatArray(float[..

2021-11-19 20:46:06 2912

原创 unity粒子系统设置粒子的长度,旋转等

我这里全都是实践干货。粒子系统参数众多比较复杂。我在项目里面也有写粒子发生器但是绝对没有unity搞得那么复杂。分析策划需求,策划希望可以控制粒子的长短,比如需要将粒子设置为15个单元的长度定义length = 15关键在于设置ParticleSystemRenderer的lengthScale属性main = 粒子的main属性length =(transform.localscale.x* main.startSize.constant) *ParticleSystemR...

2021-09-03 22:31:06 3450

原创 八叉树unity实现

using System;using System.Collections.Generic;using System.Linq;using System.Text;using UnityEngine;//定义一个八叉树 二叉树对应于一维得数组(参考满二叉树)// 那么 四叉树 对应于 二维得数组 八叉树显然对应于三维数组// 因此我们也从1维世界转到2维世界最后来到三维.public class OcTree{ //程序需要定义一个最小的空间半径 下面的值可以自己指定(通过读...

2021-09-01 17:56:29 966

原创 unity3d编辑器拖拽创建可拖拽赋值的TextField

SDDynamicFlySwardEmiter.cs类中会去定义pathList以及prefabPathusing UnityEngine;using UnityEditor;using System.Collections.Generic;using rkt;[CustomEditor(typeof(SDDynamicFlySwardEmiter))]public class SDDynamicFlySwardEmiterEditor : Editor{ SDDy...

2021-09-01 09:46:06 579

原创 从数组中找出第n大的数

基本思路就是随便找一个数,遍历数组,比这个数大的那么放到这个数的左边,比这个数小的放在这个数的右边。如果左边的数+1 == 这个n 那么当前这个数就是我们需要返回的,否则遍历左侧或者右侧的数组,条件是 如果左边的数很少,比如只有1个 ,你需要得到第3大的数,明显需要遍历右侧,否则就遍历左侧 。如此递归进行public static class Util{ public static int INVALID_INT_VALUE = 1 << 31;...

2021-08-24 22:55:47 937

原创 不使用递归算法找结点||组件

Transform FindComponent(Transform parent,string name) { Stack<Transform> tmpStack = new Stack<Transform>(); tmpStack.Push(parent); while(tmpStack.Count > 0 ) { var nextTransform = tmpStack.Pop...

2021-08-24 22:40:20 56

原创 unity ugui toggle组件的坑

退出一个界面,然后在打开界面,需要重置为选择第一个标签页。但是经常你会发现当你设置对应的页签isOn= true的时候不触发事件(界面SetActive为true的时候toggle内部会自动设置一下isOn )。所以这里在我们界面OnEnable的时候 lua那边建议封装类似的函数 处理一下相关的逻辑 先将所有的isOn设置为false然后将对应的页签设置为true从而触发逻辑。...

2021-08-17 09:53:52 751

原创 2021年7月10日如何构建一个简单的trigger系统

我在工作中经常看到别人写trigger,我自己一直很想写,由于工作的原因写了一个最简单的,这个trigger还不包括triggercondition 我这里没有条件分支,只有节点逻辑,这个东西也是以后需要扩展的。triggerview.cs脚本(可以挂在gameObject上先选择一个触发类型,然后点+然后填写相关的参数 然后在你的脚本中通常和triggerview在同一个节点上或者同一个节点数上去触发trigger,至于什么时候触发那是逻辑的事情) triggersystem.cs脚本 (在trig.

2021-07-10 19:54:01 216

原创 2021-05-25开发2D特效遇到Quaternion.LookRotation使用的坑

最近写一个飞剑的特效,遇到了坑,以前写特效的时候可能是因为轴向正好对上了没有遇到啥坑。这里记录一下。如下图所示 右边世界是正x轴 上边世界是正y轴 屏幕里为正z轴蓝色的轴表示飞剑的forward 红色的为飞剑的right 绿色的是飞剑的up我们的飞剑需要走一个xy平面的曲线运动路线,所以这里应该是沿着z轴去旋转,如果是顺时针转动那么是负角度,否则是正角度,首先声明这点(正负不清楚的可以取查阅其他资料,比如左右定则,或者向量的叉乘)。这样的问题就是 我们看上去的前向方向是up方向向量,这就...

2021-05-25 19:54:54 446

原创 c#写log到文件

using System;using System.Collections.Generic;using System.IO;namespace rkt{ public class LogToFile { public static string LogFolderPath { get { return logFile; } ...

2021-04-09 12:22:34 258

原创 给单个预制体批量设置sprite为内置的uimask精灵

public class ToolSet{public static GameObject GetSelGameObjectInHierarchy() { return Selection.activeGameObject; }}[MenuItem("GameObject/一键设置uimask", priority = 0)] static void CreateEffect() { var go = ToolSet.GetSe...

2021-04-09 12:18:08 106

原创 对unity结点进行显示处理打标记,显示孩子结点数量

#if UNITY_EDITORusing UnityEngine;using UnityEditor;using System;[InitializeOnLoad] //Unity启动的时候执行编辑器的脚本 需要静态的构造函数static class DrawIcon{ static Texture2D icon; //静态的构造函数 static DrawIcon() { callback(); } private s...

2021-03-23 11:51:32 180

原创 untiy Hierarchy面板的Node结点标识方便开发

/** http://www.manew.com/thread-102160-1-1.html 游戏蛮牛*/#if UNITY_EDITORusing UnityEngine;using UnityEditor;using System;[InitializeOnLoad] //Unity启动的时候执行编辑器的脚本 需要静态的构造函数static class DrawIcon{ static Texture2D icon; //静态的构造函数 static...

2021-03-23 11:26:59 147

原创 游戏主相机和unity编辑器相机同步变化

打开unity 切换到场景视图 你会发现这里是存在一个unity 编辑器相机的 这应该是引擎内置的相机 那么我们的引用层相机(游戏主相机)如何跟随这个场景相机呢(比如我们按wsad 原本只是unity 编辑器相机发生变换,现在要求游戏主相机也跟随变动) 下面就是具体实现代码1 编辑器类using UnityEngine;using System.Collections;using UnityEditor;[CustomEditor(typeof(AlignToEdito...

2021-03-23 11:21:10 487

转载 unity vs工程打不开项目属性的解决办法

转 https://blog.csdn.net/qq_38640682/article/details/86627178?utm_medium=distribute.pc_relevant_t0.none-task-blog-OPENSEARCH-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-OPENSEARCH-1.controlunity vs工程打不开项.

2021-03-04 15:34:50 953 1

转载 unity vs工程无法打开属性

VS 项目没有“添加引用”选项出问题的环境:vs2017,unity2017unity创建工程后,vs打开项目后,无法添加引用dll,没有“添加引用”项原因:需要把目标框架改为.

2021-03-04 15:27:19 141 1

原创 unity 智能tips组件UITipPos

unity 智能tips组件UITipPos代码看下面,写了很多注释。 只需要新建一个场景或者在已有的游戏场景中(一般都有ui) 在canvas主ui画布下,新建一个image 然后给image添加上这个组件 然后设置这些参数运行游戏,左键触摸屏幕就可以看到效果了。 如果需要知道细节你需要查看源代码using UnityEngine;using UnityEngine.UI;#if UNITY_EDITORusing UnityEditor;#endifnamespace r..

2021-01-06 22:05:26 622

原创 RectAToB组件

RectAToB组件在游戏开发中经常中经常会有这样的需求,需要一个tips界面在某个图标的旁边显示。于是我写了一个RectAToB 方法 以下是全部c#代码 需要的同学可以改一改需要特别注意的是某些tips界面如果是生成后会动态调整大小的,可能需要你延后一帧去处理逻辑,避免位置偏差。using Unity...

2021-01-06 22:00:03 154

原创 DragImage拖拽赋值组件

DragImage拖拽赋值组件游戏中的拖拽组件、拖拽类。 游戏开发中经常需要拖拽一个图标来完成赋值操作,比如我们游戏就需要拖拽技能图标到一个孔位上实现技能的装配重要的3个方法DragIn(拖自己) DragOut(被别人拖) DragSus (拖拽成功后做的表现,不做逻辑)主要就是想把几个阶段分出来,同时做...

2020-11-14 16:57:50 724

原创 winform的双缓冲绘图

如果在使用双缓冲的过程中有一些疑问可以参考这个帖子https://bbs.csdn.net/topics/390673684/他的问题问的非常好,解决了我心中的一些疑惑。 另外写winform的gdi的代码可以参考一本书上的代码《GDI+图形程序设计》书中有一个项目GDIPainter很多人应该都熟悉win32的双缓冲,但是c#的却比较诡异。比如这段代码//绘图完毕 都应该调用这段代码。...

2019-11-19 09:51:14 433

原创 c++ log到文件存盘,方便阅读

0.这是我2年前做的一个程序,可以生成log,每一个log文件都是后缀data_ 具体后缀你可以传参自己决定。使用方式大概是这样下面2行声明为全局变量//FileWriteManager fwm("d:\\svn\\design_csmj\\策划文档_club\\study\\炮弹击杀分析\\data_");//FileWriteManager fwm2("d:\\svn\\de...

2019-09-27 09:42:54 656

原创 unity Animator动画 如何快速过渡

发现美术做的很多动画都比较拖沓,从生成一个模型开始到他真正跑起来往往需要很久很久,导致体验非常糟糕。首先需要去掉ExitTime,其次展开Settings,把这个过渡时间设置短点我这里是0.11 。 设置成0那下面这个时间轴就没了。最后调整这个时间轴,unity这个ui着实让我经常猜功能,把ready动画拉到0这个位置,然后那个过渡的斜面表示动画的过渡,从静止到跑,总还是要过渡的,我们让这...

2019-09-26 17:08:26 3010

原创 unity摄像机镜头平滑处理

我这个摄像机是跟随角色,且角色朝向某个方向,镜头也会做相应的调整,我看网上大部分估计66%左右只是设置镜头和角色之间的offset,并没有考虑角色可能一直在寻找敌人,攻击敌人或者跑向敌人的时候,他们没有去考虑摄像机是否转向的问题using UnityEngine;namespace XX.Battle // 这里命名空间隐藏掉 ,xx你可以自己替换你想要的{ public cla...

2019-09-26 16:26:54 1587

原创 转圈算法

在斗牛游戏中,有一个抢庄的阶段。会有一个亮框周期性循环转的效果,最终转到抢到庄家的那个人头像上。我要实现这个功能,假定整个动画过程就是3秒,没一个框亮后再灭持续时间是0.1秒。现在比如说有4个人都抢了4倍。那就是1234 1234 1234 不停的转动知道转到庄家位置比如3. 如果都是0.1秒按序执行的话就是转30次动画就结束了,怎么保证最后一次恰好落在庄家的位置上?可以假想一下,

2017-10-15 18:37:05 502

原创 c++尝试写一个代理类

#include using namespace std;//运算符重载//class A//{//public:// A(){}// A(double a1)// {// m_a = a1; // }// virtual ~A(){ cout // //~A(){ cout // double getA() const { re

2017-07-03 16:18:12 220

转载 计算机中数据的存储形式

转载一篇文章,原文链接http://blog.csdn.net/gaochizhen33/article/details/7161417  感谢博主gaochizhen33在计算机中如何表示?,+8在计算机中表示为二进制的1000,那么-8怎么表示呢?很容易想到,可以将一个二进制位(bit)专门规定为符号位,它等于0时就表示正数,等于1时就表

2017-05-02 16:25:49 614

原创 NGUI的UITweener动画注意事项

一种情况:我们在项目中经常会遇到播放动画的情况,比如选择A、B两个button 经常有这样的需求勾选B那么先播放A动画的反向动画然后播放B动画的正向动画(谈入谈出 我比较喜欢通俗的描述)。这种情况要注意 首先设计规范的动画是必须的,那些显示那些不显示。其次不要设置ResetToBegining 这会使得我们的动画变得生硬,过渡的不自然。另外一种情况,如果你要播放的动画是那种只有正向播的(你不可

2016-11-24 16:44:53 422

原创 c#中实现的万能变量类

c#里面有一个很好的机制一切对象都继承自Object 废话少说直接上代码:第一个类Varient.cs文件using System;using UnityEngine;using System.Collections;using System.Collections.Generic;/// /// 公用的容器/// public class Varian

2016-08-18 23:21:33 2409

原创 unity3d小插件之查找结点路径并自动写入到剪贴板

using UnityEngine;using UnityEditor;using System.Collections;using System.Collections.Generic;using System.IO;public class FindPath{ public static List filelist = new List(); public s

2016-07-13 13:47:41 1381

原创 平衡二叉树的简单建立--示例

PG.lua文件 -- 这个用来输出处理 打logPG = {}function PG.Log(str) print(str);end首先是pinghengtree.lua文件 数据结构定义在这里 require "PG";_M = {}; rawset(_M,"pinghengtree",{}); local pinghengtree = rawget(_M,

2016-07-10 22:16:23 1616

转载 C++动态分配指针数组

C++动态分配指针数组C++ Primer 4.34练习要求将存在vector中的string取出,存入另外的字符数组中,并用一个字符指针数组存放每个字符数组的首地址。动态分配一个字符数组不难,用1char *ptr = new char[N];1就可

2016-07-08 16:15:24 915

自动设置导入资源的纹理类型和图集tag.unitypackage

通过配置xml自动将导入的图片设置成对应的纹理类型和设置图集tag,LoadAutoSetTagXml 这个是xml的加载器 。。。AutoSetSpriteTag 这个类是对资源的一个hook SetSpriteTag.xml是可以动态去修改的设置目录和tag的值

2020-05-11

unity第三人称相机实现

实现了按下wsad角色自动转向的功能,当相机偏向一个方向后依然有效,可以作为新手学习untiy 3d相机的例子。另外有向量叉乘的实际运用,可以判断旋转的方位。

2019-03-03

将log写入到文件

有时候我们希望文件的写入操作更加简单直白一些比如可以这样outfile<<"11' <<"hello"

2018-05-22

c#中实现的万能变量类

vs2015 community 编译通过。如果你不太喜欢定义一堆变量 这个工程可以参考参考。Varient.cs这个类我感觉不错

2016-08-18

可拉伸直线矩形

可以选中一个你画的图形 然后可以对它进行拉伸等一系列的操作

2012-07-12

MFC编程随机生成一个矩形 颜色也随机 带滚动条的

MFC编程随机生成一个矩形 颜色也随机 带滚动条的

2012-05-01

空空如也

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

TA关注的人

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