
C#技术
神一般的狄狄
....字数不够我的签名...............
展开
-
留个档,C# Dictionary的源码
官方开源github的一篇Dictionary的源码,学习留档。转载 2024-09-27 17:13:17 · 120 阅读 · 0 评论 -
留个档,Unity Animator state节点的Motion动态替换AnimationClip
利用AnimatorOverrideController,GetOverrides 和 ApplyOverrides,对Animator的state进行大量替换。原创 2023-06-20 10:01:53 · 2647 阅读 · 0 评论 -
留个档,Unity 一个简易的红点树功能实现。(两大段,C#版本 和 xLua版本)
一个简易的红点树功能实现原创 2023-03-01 12:26:47 · 731 阅读 · 0 评论 -
造个轮子,Unity UGUI 循环对象池ScrollView
造个轮子,Unity UGUI 循环对象池ScrollView。只用Mask做显示切割,不依赖其他任何UGUI控件,一个纯粹的轮子。原创 2022-08-18 10:57:25 · 1043 阅读 · 0 评论 -
留个档,C# 命令行,对图片进行缩放再输出
C# 命令行,对图片进行缩放再输出原创 2022-08-10 16:52:45 · 276 阅读 · 0 评论 -
留个档,C# AlphaBlend,带Alpha通道的图片的叠加
C# AlphaBlend,带Alpha通道的图片的叠加原创 2022-08-10 16:39:43 · 780 阅读 · 0 评论 -
留个档,Unity下,Windows和MacOS快捷打开persistentDataPath缓存目录代码
unity快捷打开缓存目录原创 2022-07-14 14:28:39 · 1144 阅读 · 0 评论 -
留个档,Unity的资源反向引用查询
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;using System.IO;using System.Linq;using System;using System.Text;using System.Reflection;public class ReverseDependencies{ [MenuItem("优化工具/反向引用/刷新"原创 2021-12-15 17:42:25 · 2454 阅读 · 0 评论 -
增量资源热更以及版控方案
例如,需要下载5000个文件,那么下载第4998,4999个文件的时候,按照常规的WriteAll保存方法,重复写入之前4000多条记录。常规的解法,是路径唯一,当玩家请求的站点不存在资源,那就会从源站点抓取。所以在增量版控的设计里,每一个版本的路径都是唯一的,旧版本的资源不需要动,新版本是新路径,就能保证玩家下载的资源一定没有问题。所以可以理解为,用文本冗余导致的加载本地记录IO带宽增加,和解析本地记录的耗时,来兑换运行时的写入效率。这样玩家下载资源时候,会去最近的一个站点下载,达到了加速的效果。原创 2021-09-01 14:34:34 · 327 阅读 · 0 评论 -
Unity接入AWS S3过程,AWS SDK for Unity 踩坑记录
AWS S3,亚马逊的资源服务器服务,最近在研究这一块内容。记录一下踩坑的内容。AWS SDK研究了aws sdk for unity和for .net 两部分AWS SDK的API命名不管啥平台都差不多,主要分3个系列list 查询get 获取,下载put 上传主要的接口:初始化AmazonS3Clientm_AWSClient = new AmazonS3Client(new BasicAWSCredentials(strAccessKey, strSecretKey), reg原创 2021-09-01 11:18:10 · 1996 阅读 · 0 评论 -
留个档,毛玻璃效果
懒得百度了,留个档脚本using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class BlurMaskCtrl : MonoBehaviour{ [SerializeField] Camera m_uicamera = null; [SerializeField] RawImage m_RawImage = null;原创 2021-05-20 09:57:10 · 189 阅读 · 0 评论 -
留个档,计算圆上的一个点
已知圆心,半径,角度,求圆上的一个点懒得百度,自己留个档 Vector3 result = Vector3.zero; result.x = pos.x + nRadius * Mathf.Cos(nAngle * Mathf.PI / (float)180); result.z = pos.z + nRadius * Mathf.Sin(nAngle * Mathf.PI / (float)180); return result;程序原创 2021-05-20 09:51:14 · 129 阅读 · 0 评论 -
Unity下,在不规则斜坡上移动解决方案和推导过程
假设有一个上下的旋转楼梯,人物按照第三人称向前移动,爬上楼梯那么这个楼梯就成为了一个斜坡我们来套用 unity的常规移动方案 的话1.Transform.Translate;常规的移动方案,向前走,在斜坡的状态下,人物会嵌入地面,然后再由物理系统把人弹出地面碰撞,就会出现人物上下抖动,摄像机如果是挂在人物节点下面 跟随移动,那估计得眼花了2.Rigidbody.MovePosition3.Rigidbody.AddForce物理移动方案,是在不规则地形时比较好用的方案,但是实际使用的时候会发原创 2021-03-26 11:18:06 · 9064 阅读 · 3 评论 -
Unity,C#版的动画曲线,Tween:EaseIn,EaseOut,EaseInOut(语法逻辑整理版本,含测试代码)
前篇:Unity,C#版的动画曲线,Tween:EaseIn,EaseOut,EaseInOut(编程语言翻译版本)https://blog.youkuaiyun.com/qq_37776196/article/details/114667670整理了语法和逻辑,拆分了会让人难以理解的连写代码。我是很讨厌连写代码的, 大量的三元运算和一行代码中多个赋值操作。下面再附送一段测试代码public class Tween{ public static float GetTime(float time, floa原创 2021-03-11 16:23:02 · 2066 阅读 · 1 评论 -
Unity,C#版的动画曲线,Tween:EaseIn,EaseOut,EaseInOut(编程语言翻译版本)
原文地址:https://blog.youkuaiyun.com/jebe7282/article/details/7521067/原因是因为现在在Unity里用曲线,要不就自己AnimationCurve自己扭一个曲线出来。要不就下载插件。然鹅,插件都封装了DLL, 我只用曲线,也不需要其他功能,买个插件岂不是浪费(不喜欢用盗版)。 找到一篇不是C#的tween算法,于是进行一波翻译。public class Tween{ public static float GetTime(float time, fl原创 2021-03-11 15:19:25 · 1194 阅读 · 1 评论 -
Unity下,移动撞墙后抖动的解决方案
Unity下的移动方案:1.Rigidbody.MovePosition2.Rigidbody.AddForce3.Transform.Translate;Transform.position = vector3;目前主要分这三大类的移动方式。1和2是物理移动方式3是实体对象坐标的移动方式然后说说题目,为啥会抖动呐:public class Test : MonoBehaviour{ public float m_nSpeed = 0; void Update() {原创 2021-03-10 17:19:17 · 3240 阅读 · 4 评论 -
留个档,Unity自定义曲线,Unity画曲线,贝塞尔曲线
网上有很多贝塞尔曲线实现原理,这篇给自己留个档,好用就行。using UnityEngine;public class BezierCurve: MonoBehaviour{ /// <summary> /// 曲线上的点数量; /// </summary> [SerializeField] int m_nPointCount = 50; [SerializeField] Transform[] m_arrTransDocks = nu原创 2021-03-02 10:57:58 · 465 阅读 · 0 评论 -
留个档,Unity,C#,摄像机抖动 CameraShake
参考2019-03-15 【UnityTips】【曲线】 CameraShake.cs 带曲线操作的相机小恶魔作者:持刀的要迟到了链接using UnityEngine;public class CameraShake : MonoBehaviour{ private static CameraShake m_this = null; public static CameraShake Instance { get {原创 2021-03-01 18:12:03 · 324 阅读 · 1 评论 -
留个档,Unity,C#,物理抛物线计算公式,经常用一直百度公式烦死了,留个档
不是数学里的对称抛物线,是根据 加速度公式 s=v0t + 1/2vt平方,算Y轴和X轴位移, 看起来更像物理抛物线 [SerializeField] Transform m_trans = null; [SerializeField] float m_nV0 = 10; [SerializeField] Vector3 m_v3Dir = Vector3.zero; [SerializeField] float m_nGForce = -9; // 重力加速度原创 2021-03-01 14:05:41 · 718 阅读 · 0 评论 -
Unity下的UI框架的推导和搭建 以及 消息通讯机制对于解耦的实际应用
UI应该是一个独立的模块需要与其他模块之间低耦合,或者0耦合。稍微简述一下解耦和利弊:解耦通常的方案是用消息通讯机制来传递事件和数据。比较好用的方案 可以搜索看看 CSharpMessenger实现原理其实很简单,很多文章都有。是用一个 唯一key对应delegate,保存在字典里。用的时候,找到key,Invoke对应的delegate就可以了。解耦的弊端:那带来的问题是 逻辑的断层,调试时候,会发现在调用delegate这一步断开了,调试器找不到之前或者之后的逻辑,所以就需要人工的查找原创 2021-02-24 10:36:01 · 933 阅读 · 1 评论 -
留个档,批量给BuildSetting设置图片,不用手一个一个拖
直接上代码,批量给BuildSetting设置图片,不用手一个一个拖/* * Icon路径:Application.dataPath + "/Res/Icon/"; * 工程路径"Assets/Res/Icon/"下,放icon图片; * Icon文件名 : * icon32 * icon64 * icon1024 * * * BuildSetting不会自动刷新,需要关闭页签,重新打开后可以看到变化; * 实际上是Set成功的原创 2021-01-27 14:18:19 · 293 阅读 · 0 评论 -
简单易懂的Socket TCP网络通讯知识-粘包,拆包,包体长度的意义
粘包 和 拆包百度一下很多文章都有解释的链接:MSS.MTU.原因的话,就是网络层级故意给你搞的。TCP下,也没啥必要纠结这一块东西。简单来说,就是 粘包就是 接收端一次收到2个包拆包 就是 接收端里 有一个包不完整,只有一部分。拆包 和 粘包 可能混合出现。解决这个问题最好的办法,其实就是 数据包 有长度。按照长度去获取 数据包,发现包体不完整,就等下一次Check。例如完整数据包 + 破损数据包(粘包 + 拆包,经常出现 很正常)破损数据包(拆包,可能是你缓冲区太小了,单个数原创 2020-12-06 15:37:38 · 646 阅读 · 0 评论 -
简单易懂的Socket TCP网络通讯知识-消息协议和数据包
不管用的是什么样的协议方式,基本通讯的原理到底层 都是 byte[]数组 传递。1.协议的定义协议本身只是 通讯时候 前后端 定义的变量类型和顺序的集合。比如说,要做一个登陆的消息传递,需要传递的内容是帐号密码public class MsgLogin{ public string m_strIDName = null; public string m_strPassWord = null;}前后端都确认好,使用帐号密码登陆,那么这样一个类,就可以称之为一个协议了。那么原创 2020-12-06 15:12:17 · 949 阅读 · 0 评论 -
留个档,动态给UGUI绑定事件的delagete工具类
直接上代码,动态给UGUI绑定事件的delagete工具类using Fox.Common;using UnityEngine;using UnityEngine.EventSystems;namespace Fox.UI.EventListener{ /// <summary> /// 事件监听类 /// 使用方法:UIEventListener.Get(gameO......原创 2019-12-10 14:54:51 · 199 阅读 · 0 评论 -
[一个小测试]Unity Coroutine协程可以包含返回值
话不多说,直接上代码:using System.Collections;using UnityEngine;public class NewBehaviourScript : MonoBehaviour{ private int m_nStep = 0; void Start() { StartCoroutine(RunCoroutine()); } ...原创 2019-12-04 16:05:21 · 3002 阅读 · 0 评论 -
UnityEditor下调用命令行编译外部sln工程
UnityEditor下编译外部sln工程。//先用File删除原来的DLL//编译DLL------------------------------------------------string strMSBuildPath = "C:/Windows/Microsoft.NET/Framework64/v4.0.30319/MSBuild.exe";string strSlnTarg...原创 2019-09-27 11:05:10 · 891 阅读 · 0 评论 -
Unity下的 C# 解析XML,读取部分
Unity下的 C# 解析XML,读取部分xml解析类using System.Collections;using System.Collections.Generic;using UnityEngine;using System.Xml;public class XmlReaderHelper{ private XmlDocument xDoc = null; private...原创 2019-06-21 14:23:10 · 461 阅读 · 0 评论 -
C# 解析Excel
分享一篇自己写的 解析Excel的代码网上很多帖子都写的太复杂了,就自己重新整理了一份支持读写Microsoft.Office.Interop.Excel这个是个DLL 直接百度下载就可以了。添加进解决方案的引用using Microsoft.Office.Interop.Excel;using System;using System.Runtime.InteropServices...原创 2019-01-03 12:14:37 · 3847 阅读 · 1 评论