
C#
独立游戏开发指南
这个作者很懒,什么都没留下…
展开
-
Unity 游戏计时
1:当前时间(秒数)(登录游戏是获取服务器当前时间:_serverTime、游戏开始到现在的时间:Time.realtimeSinceStartup、打开游戏时记录的时间:m_UpdateTime)public int ServerTimestamp{ get {return (int)(_serverTime +Time.realtimeSinceStartup - m_UpdateTime);}}2:今天剩余时间(一天的秒数:ONE_DAY、一天经过的秒数:Server原创 2020-07-09 21:12:35 · 1258 阅读 · 0 评论 -
C#中的Lambda表达式和表达式树
Lambda—— 表达式"Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量。它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to"。Lambda运算符的左边是输入参数(如果有),...原创 2019-12-04 17:22:11 · 787 阅读 · 0 评论 -
C#中委托和事件的区别
委托提供与C++中“函数指针”相同的功能,用于传递和调用函数的引用,是观察者模式的一种实现。事件是用委托实现的,是对委托的额外封装,其本质上是一种特殊的委托。事件是基于委托的,为委托提供了一个发布/订阅机制。可以说事件是一种特殊的委托,他的调用和委托是一样的。事件的作用封装订阅: 事件将委托的订阅操作进行封装,仅允许 += 和 -= 操作,避免程序员在开发时因误用 = 使得委托链断...原创 2019-12-04 14:41:05 · 559 阅读 · 0 评论 -
C#中的强引用和弱引用
我们平常用的都是对象的强引用,如果有强引用存在,GC是不会回收对象的。我们能不能同时保持对对象的引用,而又可以让GC需要的时候回收这个对象呢?.NET中提供了WeakReference来实现。弱引用可以让您保持对对象的引用,同时允许GC在必要时释放对象,回收内存。对于那些创建便宜但耗费大量内存的对象,即希望保持该对象,又要在应用程序需要时使用,同时希望GC必要时回收时,可以考虑使用弱引用。一:...转载 2019-11-28 15:59:46 · 1210 阅读 · 0 评论 -
C#知识点扫盲——GC(Garbage Collector)
1:在.Net里面垃圾收集的工作方式:运行.NET应用程序时,程序创建出来的对象实例都会被CLR跟踪,CLR都是有记录哪些对象还会被用到(存在引用关系);哪些对象不会再被用到(不存在引用关系)。CLR会整理不会再被用到的对象,在恰当的时机,按一定的规则销毁部分对象,释放出这些对象所占用的内存。2:CLR是怎么记录对象引用关系的?CLR会把对象关系做成一个“树图”,这样标记他们的引用关系...原创 2019-11-15 15:32:40 · 440 阅读 · 0 评论 -
c#中的interface abstract与virtual的介绍与使用
abstract 与virtual : 方法重写时都使用 override 关键字,interface中的方法和abstract方法都要求实现。1:interface用来声明接口1.1.只提供一些方法规约,不提供方法主体. 如:public interface IPerson{ void getName();//不包含方法主体}1.2.方法不能用public abs...原创 2019-11-15 14:50:31 · 765 阅读 · 0 评论 -
C# 鼠标光标到达屏幕边缘后从另一边缘出现
描述:将鼠标向左移动,当光标移动到屏幕左边边框后,鼠标继续向左移动,但光标位置不再变化;现在希望鼠标继续向左移动时,光标能够从屏幕右侧出现,并继续向左移动;实现代码如下:需要声明的变量: bool isPrimary = true; //是否是主屏 int primaryScreenWidth = 0; //主屏 int primaryScreenHeight = 0;...原创 2018-07-06 13:54:31 · 1586 阅读 · 0 评论 -
c# 获取List中重复的数据
遍历集合,查找重复数据,将其中重复数据信息存放到Hashtable或Dictionary集合中。实现方法举例如下:【例】查找List 集合中重复的数据项,将数据项重复信息存放到Dictionary集合,最后输出结果:using System;using System.Collections.Generic; namespace ConsoleApplication1{转载 2017-09-12 11:47:32 · 11277 阅读 · 0 评论 -
C# List<T> 找出类中某个重复属性变量
在List中,找出类A中具有相同Phone属性的对象,并输出这些对象的ID值;代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Demo{ class A { public int ID;原创 2017-09-12 11:39:37 · 4227 阅读 · 0 评论 -
C# List去重的三种方法
三种去重的方法1、List中的元素实现IEquatabe接口,并提供Equals方法和GetHashCode方法。2、使用表达式users.Where((x,i)=>users.FindIndex(z=>z.name == x.name) == i) 去重,这条语句返回结果只保留users这个List中重复的元素的第一个(name相等认为重复)。3、使用循转载 2017-09-12 11:22:57 · 7176 阅读 · 0 评论 -
C# Process方法调用cmd执行命令
C#通过程序来调用cmd命令的操作可以应用与许多地方,例如:可以通过Process调用cmd命令的方法,获取NXN alienbrain Manager Client(AB资源管理)中的资源信息,完成与其他指定资源的对比检查;1:基本使用方法:使用前需加上: using System.Diagnostics; 同步重定向代码如下: 第一步:确定必原创 2017-09-11 13:33:04 · 18901 阅读 · 1 评论 -
C# 对List<T>取交集、差集以及并集
List以string类型为例,实际应用中可换做其他类型:1:取交集 // 取交集 static void Intersection() { List list1 = new List { "AA", "BB", "CC", "EE", "GG" }; List list2 = new List { "BB",原创 2017-08-31 16:05:32 · 28162 阅读 · 2 评论 -
Unity3D教程 之 如何获取某个方法执行的时间
如何获取某个方法执行的时间?考虑到有些场景需要这个功能,但鉴于有些开发者还不会,下面就给大家介绍下获取的方法,一起来看看吧。 想在一帧内获取某个方法的总执行时间,开始想用Time.time减去之前保存的时间。但是发现在一帧内永远返回的是0,多帧的话可以,看来Time.time只会在每一帧赋值更新一次,所以一帧内的就取不到了。 然后查了一下c#有一个Sto转载 2017-02-28 10:58:42 · 507 阅读 · 0 评论 -
Unity时间戳的使用教程
时间戳在游戏开发中虽然是一个比较小的功能?但是如果缺少这个功能就会导致开发遇到困难,为了帮助大家开发,下面就给大家介绍下将时间戳的使用方法,一起来看看吧。 将时间戳转换为时间123456789101112131415转载 2017-02-28 10:49:29 · 3181 阅读 · 0 评论 -
c#中的interface abstract与virtual
interface用来声明接口1.只提供一些方法规约,不提供方法主体 如 public interface IPerson { void getName();//不包含方法主体 }2.方法不能用public abstract等修饰,无字段变量,无构造函数。3.方法可包含参数 如 public interface IPerson {转载 2017-02-27 14:48:36 · 465 阅读 · 0 评论 -
对抽象编程:接口和抽象类
本文将介绍以下内容:• 面向对象思想:多态• 接口• 抽象类 1. 引言在我之前的一篇post《抽象类和接口的谁是谁非》中,和同事管伟的讨论,得到很多朋友的关注,因为是不成体系的论道,所以给大家了解造成不便,同时关于这个主题的系统性理论,我认为也有必要做以总结,因此才有了本篇的新鲜出炉。同时,我将把上贴中的问题顺便也在此做以交代。2. 概念引入转载 2017-02-27 14:37:18 · 415 阅读 · 0 评论 -
C# 浅谈 接口(Interface)的作用
继承"基类"跟继承"接口"都能实现某些相同的功能,但有些接口能够完成的功能是只用基类无法实现的 1.接口用于描述一组类的公共方法/公共属性. 它不实现任何的方法或属性,只是告诉继承它的类 《至少》要实现哪些功能,继承它的类可以增加自己的方法. 2.使用接口可以使继承它的类: 命名统一/规范,易于维护.比如: 两个类 "狗"和"猫",如果它们都继承了接口"动物",其中动物里面有个方法转载 2017-02-27 14:08:37 · 1797 阅读 · 0 评论 -
C#——输入某日期,判断该日期对应星期几
没有用C#系统提供的DataTime之类的,使用了就方便多了。。。代码如下所示:using UnityEngine;using System.Collections;using System;/// /// 已知1900年一月一日星期一/// public class WeekTest : MonoBehaviour{ public int Year;转载 2017-01-23 19:00:28 · 2423 阅读 · 0 评论 -
C# Dictionary通过value获取对应的key值
1:最直白的循环遍历方法,可以分为遍历key--value键值对以及所有的key两种表现形式2:用Linq的方式去查询(当然了这里要添加对应的命名空间 using System.Linq) 如下为一个十分简单的代码示例:private void GetDicKeyByValue() { Dictionary dic = n转载 2016-12-14 17:25:20 · 2013 阅读 · 0 评论 -
C# TimeSpan详解
TimeSpan的用法TimeSpan是用来表示一个时间段的实例,两个时间的差可以构成一个TimeSpan实例,现在就来简单介绍一下几点重要的用法:a 先来介绍几个方法TimeSpan.Minutes(其他时间比如天数,小时数,秒数都一样的情况下得到的分钟数的差),其他的Hours,Second一样DateTime.Tick :是一个计时周期,表示一百纳秒,即一千万转载 2016-10-12 19:57:09 · 2174 阅读 · 0 评论 -
C# Stopwatch详解
C# Stopwatch类命名空间:System.Diagnostics;namespace System.Diagnostics{ // 提供一组方法和属性,可用于准确地测量运行时间。 public class Stopwatch { // 获取以每秒计时周期数表示的计时器频率。此字段为只读。 pu转载 2016-10-12 19:52:21 · 3453 阅读 · 0 评论 -
C# 输出目录结构树到Console或文本文件
摘要C# 输出目录结构树到Console或文本文件1.关于打印目录树前几天写文档,要解释一个目录里大部分的子目录和文件的用途,于是顺手写了一个打印文件目录树的C#工具类,可以将生成的目录树打印到Console或是文本文件中。2.工具类源码打印目录树工具类:DocTreeHelper需要手动加载命名空间:System.IOclass DocTreeHelper转载 2016-08-29 18:08:33 · 1797 阅读 · 0 评论 -
关于List中FindAll用法的一些简单示例
[csharp]view plaincopyusingSystem;usingSystem.Collections.Generic;publicpartialclassList:System.Web.UI.Page{protectedvoidPage_Load(objectsender,原创 2016-08-29 17:52:26 · 8673 阅读 · 0 评论