![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unity3D
文章平均质量分 62
yj爆裂鼓手
这个作者很懒,什么都没留下…
展开
-
unity一种日志过滤的思路
unity打印日志的函数Debug.Log但是这样会有一个问题,某些c#打印过于频繁 ,我作为一个开发者不关心他的模块日志。但是我没办法去给他把日志删除了,这样没有道德。于是想着写这样个工具,它不太完美 ,它只能指定我们需要那些cs文件的日志 整体它长这样比如我现在调试角色的跳跃,角色的跳跃是个很复杂的过程,有起跳阶段,上升阶段1 2 3 ,最高阶段 ,下落阶段123 落体阶段等等等等 这里面相关的参数很多,需要很多判定,需要看日志如下图就是看移动组件的日志 。上面filter是一个list 我原创 2022-03-21 17:34:19 · 3399 阅读 · 0 评论 -
游戏开发中如何设计一个撤销重做系统DoUnDo
我现在负责做捏脸的模块,其中需要做撤销重做,老实说上一次做还是大学的时候做绘图程序有用到过,那个时候就是简单用了一个栈来操作。当时的一个核心思想是不管你绘制的是矩形、三角形、还是什么形状,底层他们都有一个基类叫图元。基于这种联想我开发出了一个实际游戏工程中用到的撤回重做系统。 我们不记录复杂的操作,复杂的操作留给系统内部cpu去计算,我们只是记录简单的数据越少越好,当然需要保证逻辑正确。这种系统还可以联想到某些游戏中的时间回流的做法。所有的需要被DoUnDo的操作 比如一个点击 我们可以new一个对象,原创 2022-03-21 17:26:43 · 3499 阅读 · 0 评论 -
DoTween的DoKill可能的坑点梳理
现在游戏中都是尽量复用对象,后者会导致复用的对象状态还是之前的状态。DoTween的onComplete回调会立即执行 。为了保险起见建议使用前者 参数传false 已经实践transform.DOKill(false);transform.DOKill(true);...原创 2022-01-28 19:15:01 · 4464 阅读 · 0 评论 -
3种递归写法 获取结点树目录
3种获取场景结点树目录的递归写法原创 2022-01-26 18:13:55 · 325 阅读 · 0 评论 -
未知轴的四元数变换问题从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 · 2539 阅读 · 0 评论 -
解决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 · 2012 阅读 · 0 评论 -
unity粒子系统设置粒子的长度,旋转等
我这里全都是实践干货。粒子系统参数众多比较复杂。我在项目里面也有写粒子发生器但是绝对没有unity搞得那么复杂。分析策划需求,策划希望可以控制粒子的长短,比如需要将粒子设置为15个单元的长度定义length = 15关键在于设置ParticleSystemRenderer的lengthScale属性main = 粒子的main属性length =(transform.localscale.x* main.startSize.constant) *ParticleSystemR...原创 2021-09-03 22:31:06 · 3644 阅读 · 0 评论 -
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 · 601 阅读 · 0 评论 -
从数组中找出第n大的数
基本思路就是随便找一个数,遍历数组,比这个数大的那么放到这个数的左边,比这个数小的放在这个数的右边。如果左边的数+1 == 这个n 那么当前这个数就是我们需要返回的,否则遍历左侧或者右侧的数组,条件是 如果左边的数很少,比如只有1个 ,你需要得到第3大的数,明显需要遍历右侧,否则就遍历左侧 。如此递归进行public static class Util{ public static int INVALID_INT_VALUE = 1 << 31;...原创 2021-08-24 22:55:47 · 978 阅读 · 0 评论 -
不使用递归算法找结点||组件
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 · 61 阅读 · 0 评论 -
unity ugui toggle组件的坑
退出一个界面,然后在打开界面,需要重置为选择第一个标签页。但是经常你会发现当你设置对应的页签isOn= true的时候不触发事件(界面SetActive为true的时候toggle内部会自动设置一下isOn )。所以这里在我们界面OnEnable的时候 lua那边建议封装类似的函数 处理一下相关的逻辑 先将所有的isOn设置为false然后将对应的页签设置为true从而触发逻辑。...原创 2021-08-17 09:53:52 · 843 阅读 · 0 评论 -
2021年7月10日如何构建一个简单的trigger系统
我在工作中经常看到别人写trigger,我自己一直很想写,由于工作的原因写了一个最简单的,这个trigger还不包括triggercondition 我这里没有条件分支,只有节点逻辑,这个东西也是以后需要扩展的。triggerview.cs脚本(可以挂在gameObject上先选择一个触发类型,然后点+然后填写相关的参数 然后在你的脚本中通常和triggerview在同一个节点上或者同一个节点数上去触发trigger,至于什么时候触发那是逻辑的事情) triggersystem.cs脚本 (在trig.原创 2021-07-10 19:54:01 · 230 阅读 · 0 评论 -
2021-05-25开发2D特效遇到Quaternion.LookRotation使用的坑
最近写一个飞剑的特效,遇到了坑,以前写特效的时候可能是因为轴向正好对上了没有遇到啥坑。这里记录一下。如下图所示 右边世界是正x轴 上边世界是正y轴 屏幕里为正z轴蓝色的轴表示飞剑的forward 红色的为飞剑的right 绿色的是飞剑的up我们的飞剑需要走一个xy平面的曲线运动路线,所以这里应该是沿着z轴去旋转,如果是顺时针转动那么是负角度,否则是正角度,首先声明这点(正负不清楚的可以取查阅其他资料,比如左右定则,或者向量的叉乘)。这样的问题就是 我们看上去的前向方向是up方向向量,这就...原创 2021-05-25 19:54:54 · 458 阅读 · 0 评论 -
给单个预制体批量设置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 · 115 阅读 · 0 评论 -
对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 · 193 阅读 · 0 评论 -
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 · 156 阅读 · 0 评论 -
游戏主相机和unity编辑器相机同步变化
打开unity 切换到场景视图 你会发现这里是存在一个unity 编辑器相机的 这应该是引擎内置的相机 那么我们的引用层相机(游戏主相机)如何跟随这个场景相机呢(比如我们按wsad 原本只是unity 编辑器相机发生变换,现在要求游戏主相机也跟随变动) 下面就是具体实现代码1 编辑器类using UnityEngine;using System.Collections;using UnityEditor;[CustomEditor(typeof(AlignToEdito...原创 2021-03-23 11:21:10 · 507 阅读 · 0 评论 -
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 · 1019 阅读 · 1 评论 -
unity vs工程无法打开属性
VS 项目没有“添加引用”选项出问题的环境:vs2017,unity2017unity创建工程后,vs打开项目后,无法添加引用dll,没有“添加引用”项原因:需要把目标框架改为.转载 2021-03-04 15:27:19 · 146 阅读 · 1 评论 -
DragImage拖拽赋值组件
DragImage拖拽赋值组件游戏中的拖拽组件、拖拽类。 游戏开发中经常需要拖拽一个图标来完成赋值操作,比如我们游戏就需要拖拽技能图标到一个孔位上实现技能的装配重要的3个方法DragIn(拖自己) DragOut(被别人拖) DragSus (拖拽成功后做的表现,不做逻辑)主要就是想把几个阶段分出来,同时做...原创 2020-11-14 16:57:50 · 749 阅读 · 0 评论 -
RectAToB组件
RectAToB组件在游戏开发中经常中经常会有这样的需求,需要一个tips界面在某个图标的旁边显示。于是我写了一个RectAToB 方法 以下是全部c#代码 需要的同学可以改一改需要特别注意的是某些tips界面如果是生成后会动态调整大小的,可能需要你延后一帧去处理逻辑,避免位置偏差。using Unity...原创 2021-01-06 22:00:03 · 156 阅读 · 0 评论 -
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 · 1394 阅读 · 0 评论 -
NGUI的UITweener动画注意事项
一种情况:我们在项目中经常会遇到播放动画的情况,比如选择A、B两个button 经常有这样的需求勾选B那么先播放A动画的反向动画然后播放B动画的正向动画(谈入谈出 我比较喜欢通俗的描述)。这种情况要注意 首先设计规范的动画是必须的,那些显示那些不显示。其次不要设置ResetToBegining 这会使得我们的动画变得生硬,过渡的不自然。另外一种情况,如果你要播放的动画是那种只有正向播的(你不可原创 2016-11-24 16:44:53 · 427 阅读 · 0 评论 -
unity摄像机镜头平滑处理
我这个摄像机是跟随角色,且角色朝向某个方向,镜头也会做相应的调整,我看网上大部分估计66%左右只是设置镜头和角色之间的offset,并没有考虑角色可能一直在寻找敌人,攻击敌人或者跑向敌人的时候,他们没有去考虑摄像机是否转向的问题using UnityEngine;namespace XX.Battle // 这里命名空间隐藏掉 ,xx你可以自己替换你想要的{ public cla...原创 2019-09-26 16:26:54 · 1638 阅读 · 0 评论 -
unity Animator动画 如何快速过渡
发现美术做的很多动画都比较拖沓,从生成一个模型开始到他真正跑起来往往需要很久很久,导致体验非常糟糕。首先需要去掉ExitTime,其次展开Settings,把这个过渡时间设置短点我这里是0.11 。 设置成0那下面这个时间轴就没了。最后调整这个时间轴,unity这个ui着实让我经常猜功能,把ready动画拉到0这个位置,然后那个过渡的斜面表示动画的过渡,从静止到跑,总还是要过渡的,我们让这...原创 2019-09-26 17:08:26 · 3091 阅读 · 0 评论 -
Unity3D与Android相互传递消息
原创文章如需转载请注明:转载自雨松MOMO独立域名博客,欢迎大家来访!!雨松MOMO程序研究院本文链接地址:Unity3D研究院之与Android相互传递消息(十九) 上一篇文章我们学习了Unity向Android发送消息,如果Android又能给Unity回馈消息那么这就玩美了。恰好Unity for Andoid 和 IOS一样都是可以相互与Unity发送与接收消转载 2014-07-28 10:29:19 · 445 阅读 · 0 评论