- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 C# 使用Protobuf产生的堆栈溢出问题 Stack overflow.
直接说明情况:[ProtoBuf.ProtoContract][ProtoBuf.ProtoInclude(11, typeof(Cat))][ProtoBuf.ProtoInclude(12, typeof(Dog))]public abstract class Animal{[ProtoBuf.ProtoMember(1)]public string name;[ProtoBuf.ProtoMember(2)]public int sex;}[ProtoBuf.ProtoContr
2022-02-15 14:03:12 463
原创 Unity连接Mysql数据库
下载对应版本的dll文件,包括Unity版本和MysqlServer版本本项目使用的是MysqlServer8.0Unity2020.3.21所以下载的dll文件需要满足这两个版本1.mysql8.0以上2.4.5以及4.5以下(只是猜测,4.6以上unity也确实不能识别)综上,选择了8.0.11版本,网址如下https://downloads.mysql.com/archives/c-net/下面是具体脚本:using MySql.Data.MySqlClient;using Sy
2022-01-25 17:46:02 3631
原创 C# 常用Github工程地址
基于C#实现的RPC项目https://github.com/Cysharp/MagicOnionhttps://github.com/supperlitt/tcp_all
2021-11-26 14:34:24 355
原创 网络编程中的粘包处理
/* 主要用于处理粘包现 怎么会出现这种现象? 从接收数据来看,Socket每次接收数据并不是根据目标数据来设置Buffer的大小,而是先设置一个Buffer然后去接收,当发送方发送的数据大于设置的Buffer大小时,则会发生发送方发送一次的数据,接受却用了n次,更关键的是接收方根本不知道自己什么时候才算接受到一次完整的消息,而这个问题也就是粘包问题 解决方法: 双方约定一条消息由两部分组成:包头 + 内容 包头:表示这条消息的长度 + 4 内容:表示
2021-08-14 17:17:01 129
原创 引导遮罩的一种实现方式
来源:https://github.com/asyncrun/GuideMaskusing UnityEngine;using UnityEngine.UI;/* 引导遮罩 -- 打开后只有指定地方可以点击,且指定地方完全透明 targetArea: 指定区域 offset: 偏差值*/[RequireComponent(typeof(RectTransform))][RequireComponent(typeof(Canva
2021-05-14 18:53:26 244 1
原创 LoopScrollView-Unity
自己实现的循环列表,附带一个工程地址,有Bug随时提https://github.com/CamelWH/LoopScrollView/tree/mainusing System;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;/* 循环列表 -- 格子大小一致的循环列表 -- 通过Template的大小
2021-05-12 16:20:47 600
原创 Unity~辅助类Gizmos
记录一下Unity中关于线框的两个方法void OnDrawGizmos()void OnDrawGizmosSelected()类似于OnGUI,每帧运行,且在编辑器模式也能运行,在编辑器中显示形状 private void OnDrawGizmos() { Gizmos.color = Color.red; // 以自身位置为球心,画出一个半径为10的球体 Gizmos.DrawSphere(transform.position, 1
2021-05-06 21:14:51 269
原创 Shader效果实现:双色渐变
// 双色渐变// 颜色由一种颜色随着时间逐渐变成另外一种颜色,再从另外一种颜色回到初始颜色// 初始颜色// 目标颜色// 渐变速度// _Time 内置时间函数// sin 内置sin函数Shader "MyShader/DoubleChange"{ Properties { _Color1 ("Color1", Color) = (1,1,1,1) _Color2 ("Color2", Color) = (1,1,1,1) _Speed
2021-04-12 15:52:34 1158 1
原创 修复ScrollRect在Elastic的模式下,localScale.x或者localScale.y为0时一直计算的Content位置的Bug
using UnityEngine;using UnityEngine.UI;// 修复了在Elastic的模式下,localScale.x或者localScale.y为0时一直计算的Content位置的Bugpublic class CustomScrollView : ScrollRect{ protected override void LateUpdate() { if (Mathf.Abs(transform.localScale.y) > 0.01
2021-04-08 16:28:21 200
原创 基于unity实现的FSM有限状态机(泛型篇)
前言:基于上篇实现的FSM状态机,发现只有Transition和FSMState两个枚举的时候,若是实现超过两种状态机时,枚举容易混淆,显然不够实用,于是采用泛型的方式重新实现了一遍,当为一种对象创建状态机时,先要为其创建EnemyAIData,EnemyTransition,FSMEnemyState三份文件.EnemyAIData – 在状态检测时需要使用到的数据EnemyTransition – 过度条件,枚举FSMEnemyState – 对应状态,枚举using System
2021-02-25 20:33:24 388
原创 基于unity实现的FSM有限状态机
代码思想来自于https://github.com/KinJin-Ristina/FSMState,这里进行了一定的修改主要代码using System.Collections;using System.Collections.Generic;using UnityEngine;public class FSMSystem{ private List<FSMStateBase> stateList = new List<FSMStateBase>();
2021-02-25 19:08:06 280 2
原创 unity编辑器扩展~Inspector扩展
前言对于一个继承于MonoBehaviour的脚本组件来讲,它的字段是可以在Inspector面板中显示,但是通过对Inspector的扩展,可以为自定义组件创建自定义检视面板和编辑器,例如修改字段显示的样式,以及该字段是否显示等操作具体脚本创建组件脚本,继承自MonoBehaviour:public class Test : MonoBehaviour{public int a;public string b;}创建对应的编辑器脚本,继承自Editor,并添加CustomEditor属性
2021-02-24 11:04:41 537
原创 记录一种不均等随机函数,值越大随机到的几率就越大
public static int RangeList(List<int> list) { //1.计算和 int sum = 0; foreach (var item in list) { sum += item; } var ran = Random.Range(0, sum); var curNum = 0; foreach...
2021-02-23 17:23:48 558 1
原创 基于C#实现的WebServer
最近终于理解Http协议的底层是Socket这句话,于是用C#实现了一下1.通过Socket直接实现using System.Text;using System.Net;using System.Net.Sockets;using System;using System.IO;using System.Runtime.Serialization.Formatters.Binary;/// <summary>/// 通过Socket实现/// </summary>
2021-01-20 11:55:55 1490
原创 基于Unity中UGUI的EventTrigger组件实现的UI拖拽以及位置交换功能
如图所示,点击UI跟随鼠标移动并在拖动过程移动其他UI的位置`public class Test : MonoBehaviour{ /// <summary> /// 记录一下当前拖拽的物体 /// </summary> public Slot curSlot; public List<Slot> slotList = new List<Slot>(); private Dictionary<Game.
2020-07-10 13:33:49 1512 1
原创 Lua编程(一)~数据类型
在Lua中数据类型有以下几种:nil–该类型只有nil一个值,表示一个无效值,在条件表达式中相当于falseboolean–包含两个值:false,truenumber–表示双精度类型的实浮点数string–字符串function–由C或者Lua编写的函数userdata–表示任意存储在变量中的C数据结构thread–表示执行的独立路线,用于执行协同程序table–lua表其实是一...
2019-12-23 17:27:30 189
原创 Lua面向对象~创建类以及其实例的概念
–利用局部表的概念–定义一个类class={new=function()local o={}–在这里可以定义属性和方法o.a=1o.fun1=function()print(“fun1”)endreturn oend}–构造该类的两个实例,分别为a,ba=class.new()b=class.new()print(a.a)print(b.a)a.a=10b....
2019-12-18 11:38:38 330
原创 MySql数据库在C#中的一些应用
前提:需要安装MySql的Windows环境以及下载MySql的.Net连接文件,即相关.dll文件本文使用的是8.0.17版本的连接文件,支持.net 4.5.2以上环境编译.GitHub地址为:https://github.com/CamelWH/MySqlForCSharpusing System;using System.Collections.Generic;using Sys...
2019-09-16 17:52:57 195
原创 Unity Shader学习(一)
本章没有讲述具体编程过程,而是从以下三个角度进行阐述:1.计算机渲染流程2.CPU和GPU的关系3.着色器语言1.计算机渲染流程–1.1应用阶段这个阶段主要做三件事情://a.准备场景数据(模型,光照等等),把视野范围外的数据剔除.//b.设置好模型的渲染信息(材质,纹理等)//c.最后输出渲染图元到GPU的显存中,一般来说渲染图元就是点,线,三角面等数据,也称为一次DrawCa...
2019-07-24 17:04:37 136
原创 Unity学习笔记(一)~介绍以及入门
1.简单的个人介绍在介绍Unity前,容许我介绍一个自己吧,毕竟自我介绍是每一个码农,咳咳,每一个求职人员必备的一项工作,虽然感觉就是一个开场白吧.本人呢就是普通的本科毕业,既不是985也不是211,大学专业学的自动化专业,就是那种90+人,4个妹子那种工科专业.着实不是啥好专业(PS:如果你是正在考大学,选专业,如果你不是对工科特别感兴趣,千万不要选择这种工科专业~).学习自动化,说实话,...
2019-07-18 19:02:24 256
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人