![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#学习笔记
鹿野素材屋
独立游戏/应用开发,《香椿勇者》开发者,长期接各类外包。
对动作游戏、游戏AI具有浓厚兴趣,现在主要进行模拟经营类型游戏开发。
展开
-
C#使用Sort函数对list排序
一个比较常见的问题,这个时候用快排啥的写起来有些麻烦。大致如下,起到个兜底的作用(性能肯定不及自己优化)原创 2023-02-22 15:56:15 · 258 阅读 · 0 评论 -
技能:闪现穿墙
很久以前游戏中遇到的一个问题,怎么判断闪现是否可以穿墙。当然这只是短距离的实现,长距离跨越多重障碍物墙,需要另外的算法。原创 2022-11-23 14:54:48 · 217 阅读 · 0 评论 -
Unity3D热更设计:一款基于 HybridCLR的C#热更方案
其中CreateByCode是官方提供的测试脚本,Login是我们自己写的初始化脚本。这里需要注意的是,启动的脚本貌似必须得继承HybridCLR,不然可能因为解释器的原因不能正确执行(可能是因为解释器启动前,不支持两套脚本读取方式)接着就是我们的Login脚本,这里可以做我们自己的操作,比如说一些ab包热更之类。这两篇博客看完后,应该就会对热更有个大致的印象了,接下来我们要做的就是将两者合并起来,实现真正的热更。通过以上脚本,配合将热更资源放到对应服务器,我们可以实现代码的热更。原创 2022-10-26 14:27:08 · 1973 阅读 · 1 评论 -
C#热更方案 HybridCLR尝鲜:Windows及Android打包
近来Unity3D开发圈比较火热的HybridCLR已经开始推出正式版了,相比于传统的XLua或者ULua,它不用重新学习使用新的代码,而且使用起来也非常方便,所以我们决定使用其作为项目热更解决方案。接着打开 项目工程\HotUpdateDlls\Android文件夹,可以看到生成了这些,将更改过的dll库替换过去,打包就能看到热更变化了。*目前官方说支持的那些版本,但经过实际测试只有官方推荐的版本比较好用,所以建议使用Unity2020.3.33f1。另外demo工程的API版本需要采用31及以上。原创 2022-10-25 10:33:11 · 2245 阅读 · 6 评论 -
C#使用Http连接
Http是我们用的比较多的网络连接方式,它一般分为Get和Post两种,一种不传参、另一种传参。原创 2022-08-17 11:33:07 · 1933 阅读 · 0 评论 -
C#如何批量创建类
这是个心跳类,里面包含了用到的数据及一个解析方法。如果每个接口都写一遍就太麻烦了,我们可以用到如下工具脚本。有时候我们会遇到创建大量子类的情况,这些子类基本代码类似,这个时候我们就可以用工具来批量创建。如果有其它格式的,可以自己改改。拖到物体上,运行即可创建。......原创 2022-08-17 11:52:01 · 940 阅读 · 0 评论 -
C#遍历类中的变量与值
代码】C#遍历类中的变量与值。原创 2022-08-16 20:39:23 · 970 阅读 · 0 评论 -
Unity3D改变子物体的颜色
Unity3D改变子物体的颜色原创 2022-08-12 09:26:17 · 823 阅读 · 0 评论 -
海外休闲游戏的网络连接方案
联网的一些总结原创 2022-07-15 09:38:23 · 1608 阅读 · 0 评论 -
Unity UGUI优化问题
1,图片像素使用4的倍数,比如48*52这种,最后在打包的时候Compression Method选择LZ4格式,能够压缩部分内存:2,原创 2022-02-28 13:57:37 · 3086 阅读 · 0 评论 -
C#去除string的首尾空格
由于海外版有些用户登录不上去,经过服务器的查看,发现是某些玩家的设备号末尾带有空格。C#中去除首尾空格的函数如下: string _str = " fsa fa sf "; _str.TrimStart();//去除头部空格 _str.TrimEnd();//去除尾部空格 _str.Trim();//去除首尾空格...原创 2021-12-09 11:43:20 · 3437 阅读 · 0 评论 -
Unity3D:用泛型T实现数据的读写
通常我们单机游戏或者弱联网游戏,会有部分数据存储在本地。该数据本身为一个变量,需要有读写操作,但针对每个变量写一套函数就很麻烦。于是可以使用泛型T做一个统一的操作处理:using System;using System.Collections;using System.Collections.Generic;using UnityEngine;public class ReadWrite{ public static readonly ReadWrite Inst = Sing原创 2021-12-03 17:40:33 · 546 阅读 · 0 评论 -
C#脚本在海外德语、法语环境中逻辑不对的问题
我们游戏换用Unity3D2020上线后,收到很多德语、法语玩家的反馈,类似于以下这种: 根据玩家的反馈,我们将手机调整为法语环境,结果在游戏 在新手引导阶段卡死,经过检测发现问题出现在float.parse(),解析"3.5"这样的数据时候出错。 进一步研究发现,U3D新版本中使用了C#的新特性,自适应每种语言的浮点数标准化。打个很简单的例子:5.24.ToString();这个很基础的字符串转化函数,在英语和中文环境下出来的结果是:5.24.但是!德语中出现的...原创 2021-11-16 10:15:57 · 2655 阅读 · 0 评论 -
遗传算法入门:族群繁衍问题
前言记得学遗传算法的时候,有个案例大致意思是:山羊会在山坡不同高度出生,然后朝着不同的方向行走,当低于一定高度的时候山羊会死亡。当N代以后,模拟山羊的属性。这个案例的最大高度就是山顶,山羊会不停奔走,繁衍会产生后代,是一道比较经典的族群繁衍问题。这里我做下延伸,改编为人口问题。规则/// 管理器/// 规则:/// 1,管理器控制初始人口的数量,最大寿命区间等初始数值/// 2,管理器汇总人口的出生,并分配初始位置x/性别/// 3,管理器汇总人口的死亡,并在代际全部死亡的时候原创 2021-07-11 14:16:37 · 672 阅读 · 0 评论 -
C#字典增删改查测试
using System.Collections;using System.Collections.Generic;using UnityEngine;/// <summary>/// 字典数据的增删改查/// </summary>public class DictionaryTest : MonoBehaviour{ // Start is called before the first frame update void Start() .原创 2021-05-06 11:25:48 · 589 阅读 · 0 评论 -
C#关于泛型List<T>的应用
在C#中,泛型是一个经常被使用到的类型,它可以用来处理大量相似逻辑不同类型变量的方法比如说将数据装为逗号隔开的数据: //list<int>存入 public string PackagingIntList(List<int> intList) { string str = ""; for (var idx = 0; idx < intList.Count; idx++) { i原创 2020-11-19 16:24:01 · 351 阅读 · 0 评论 -
C#天文级别大数的运算
对于通常数值而言,我们只需要用int、long、float等即可存储,但对于无限长度的天文级别数据而言,就不能使用直接运算了。这时候需要转换下运算方式,即通过字符串的形式进行运算: #region 大数操作 /// <summary> /// 大数比较 /// </summary> /// <param name="_var1">参数1</param> /// <param name="_var2">参原创 2020-08-18 19:28:54 · 463 阅读 · 0 评论 -
C语言系列:关于++与--
自学C语言起,++与--操作都是绕不过去的坎儿。为了将它们区别开来,我们用C#来设计以下几个测试用例:首先是赋值:int _i = 0;然后分情况处理,最后打印_i的值:第一种情况: _i++;//打印结果:1第二种情况:_i = _i++;//打印结果:0第三种情况:_i = _i + 1;//打印结果:1第四种情况:_i = ++_i;//打印结果:1第五种情况:++_i;//打印结果:1之所以第三种情况结果不一样,我们可以看下网上的解释:原创 2020-08-12 11:12:45 · 219 阅读 · 0 评论 -
C#入门学习笔记(三):类——面向对象编程
前言: C#属于面向对象语言,所谓面向对象就是把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。正文:1,C#语言的三层基本结构:通常我们在打开VS工程的时候,会出现如下界面:大括号代表不同的层级,其中namespace叫做命名空间,class叫做类,main叫做函数或者方法。你可以理解为namespace为一所大房子,c...原创 2020-03-14 21:55:23 · 676 阅读 · 0 评论 -
C#入门学习笔记(二):数据类型与表达式
前言: C#的数据类型分为值类型和引用类型,值类型指向实际的值,引用类型指向数据的引用。而表达式部分,主要涉及到C#基本的运算逻辑。简而言之,一个是针对数据本身,一个是针对数据的运算。*除了值类型和数据类型外,C#还包括指针类型,但在实际项目中很少用到。知识点:常见值类型:整数(short、int、long)、字符(char)、实数(float、double)、布尔(boo...原创 2020-03-07 20:29:27 · 644 阅读 · 0 评论 -
C#入门学习笔记(一):hello world与学习大纲
引子: 自16年冬入行开始,不知不觉已经度过三年多的时光。这系列文章一来是为了回忆知识点,二来也是为了帮助更多的同学感受编程的乐趣。 由于个人现在主要用C#进行游戏开发,不是用VS来进行开发。所以在这系列文章中,调试都是用VS控制台程序。如下 打开之后,我们可以看到如下代码,分别用大括号包裹三层,分别为命名空间、类和方法,我们程序主要在方法里面运行。 我们可以在...原创 2020-03-07 17:58:00 · 476 阅读 · 0 评论