- 博客(24)
- 资源 (5)
- 收藏
- 关注

原创 unity程序优化(一)
一、正确操作字符 字符串在我们编程过程中使用的最频繁的一种基础数据类型,使用不慎就会带来额外的性能开削。 string str=”string1”+100; string str1=”string1”+100.ToString(); 第一行代码会有一次装箱操作,第二行代码ToString()调用的是一个非托管的方法。ToString方法如下: [SecurityCriti...
2018-08-05 14:37:04
1152

原创 C# 数组Copy的效率问题
在C#中数组Copy是比较常用的,网上有很多帖子,但是写的也不是很完整,今天我对一些比较常用的方法做了一下总结。1、 数组自带的CopyTo方法private static void NewMethod(byte[] da, byte[] da1) { Stopwatch dd = new Stopwatch(); d
2016-08-18 16:03:27
4337
原创 进程通信--内存共享
共享内存其实就是访问计算机系统的共享域。这是一种系统内核级资源,数据量太大就考虑别的方式吧。如果是普通windows程序调用windowsAPI或者升级.net framework版本到4.5,就有内存文件映射的函数。在 System.IO.MemoryMappedFiles这个命名空间下。一、使用MemoryMappedFiles创建内存文件引入System.IO.MemoryMappe...
2018-07-01 17:31:40
564
原创 unity下载文件的方式
互联网发展到现在,很多技术已经很成熟了,但是用到unity在某一个特定平台下没问题,如果跨平台就有问题了。就拿http通信来说,C#原生的http到hololens上就不好使,我只能用unitywebRequst。以下是两种方式的文件下载,写法都差不多。一、HttpWebRequst请求方式//下载地址 private const string url = "http://127....
2018-04-28 12:16:45
5186
2
原创 Unity3d 5.x AssetBoundle加载
上一篇讲了assetboundle的打包,这篇我们讲assetboundle的加载 其实加载过程也很简单,通过www加载或者通过AssetBundle.LoadFromFile加载,www可以加载网络资源,而AssetBundle.LoadFromFile不能加载网络资源。 加载assetboundle的方式有以下几种:AssetBundle.LoadFromMemoryAsync As...
2018-04-11 17:10:20
462
原创 Unity视频透明显示Shader
最近有需求要透明显示视频,即使视频带Alpha通道,导入unity之后不会直接透明显示,写一个shader就可以解决这个 问题,shader代码如下,需要的直接copy 就可以了。Shader "Custom/Example"{ Properties { _Color ("Color", Color) = (1,1,1,1) //视频1,...
2018-04-08 21:38:08
1547
原创 七、C#学习基础篇---反射
其实到这里属于高级语法了,我们再写一个类的时候,不让外界访问的字段和方法用怕private修饰,在一个程序集里我们用internal修饰,这些是正向思维,有没有一种方法,我们可以访问到这些私有字段和方法呢,办法是有的那就是反射,我们通过反射可以访问和修改这些私有属性和方法。 我们可以使用反射动态创建类型的实例,反射可以解析出一个类里的所有内容。反射就是通过类型Type 创建实例。优点:...
2018-03-02 16:32:31
293
原创 六、C#学习基础篇---特性
特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。特性(Attribute)用于添加元数据,如编译器指令和注释、描述、方法、类等其他信息。.Net 框架提供了两种类型的特性:预定义特性和自定义特性。所有特性类都派...
2018-03-02 15:28:41
229
原创 子线程访问unity对象
使用子线程是不能直接访问unity对象的,可以通过委托来访问。using System;using System.Collections.Generic;using System.Threading;using UnityEngine;public class Dispatcher : MonoBehaviour{ private static Dispatcher _...
2018-03-01 16:51:28
2030
1
原创 四、C#学习基础篇---委托
C#的委托(Delegate)类似c或者c++的函数指针,但是,委托是类型安全和可靠的。委托也是事件的基础。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。与委托签名匹配的任何方法都可以分配给当前委托。声明委托(Delegate)//有参数有返回值public delegate int CalcDelegate(int a,int b);实例化委托CalcDelegate c...
2017-11-27 15:34:23
192
原创 三、C#学习基础篇---属性
C#里有多好玩的语法比如属性,提供get,set访问器,防止其他人修改一个类里的内容,我们只暴露需要外界修改的内容,比如,有一个名为Person 的类,带有 age、name 和 id的私有域。我们不能在类的范围以外直接访问这些域,但是我们可以拥有访问这些私有域的属性。// 声明类型为 string 的 ID属性public string ID{ get { return
2017-11-24 15:05:15
258
原创 C# 操作Excel
前段时间朋友问我,C#操作excel的问题,代码传过来后发现是他下载的dll版本不对,之后我就上百度查了,发现这个库是有源码的。 C#读取excel 的方式有很多,有些库你必须安装office ,而有些是不需要的。 第一种方式,我在项目里用的是npoi(支持.xls,.xlsx),这种方式确实挺好用的,可以任意操作excel。我的思路是把excel文件转成datatable,然后
2017-11-24 13:54:50
722
原创 二、C#学习基础篇----基础语法
在学习之前,先介绍几个关键字,class(类),namespace(命名空间),using(引用),interface(接口),abstract(抽象的),static(静态)。大家都知道C#是面向对象的语言,一个实例就是一个对象,把自然界的物体,通过C#,Java这种高级语言转换成计算机语言,每种物体都有自己的属性和行为,我们这些属性和行为组合起来用class来表示,这行为就是方法。做个简单的例
2017-04-27 18:13:20
350
原创 Unity中默认的文件夹以及路径问题
unity有一些特殊目的的文件夹,这些文件夹影响编译顺序,文件夹名字如下: **Assets Editor Editor default resources Gizmos Plugins Resources Standard Assets StreamingAssets** 这些特殊文件在不同的平台上的获取方式不一样,获取方式如下: http://blog.youkuaiyun.com/li
2017-04-27 13:52:44
7729
原创 unity NetWorking小案例
最近项目需要做hololens物体同步,他自带的UWP的延时很高,找一种延迟小的解决方案,我打算用socket的封装一个传输层,后来团队决定用NetWorking先试试,我就做了一个简单的demo。在unity5.x之前,unity用RPC通信,在5.x之后,我发现很多API被更改了,新的API加了NetworkServer,NetworkClient。这两个API用起来特别方便。 Ne...
2017-04-25 17:50:11
632
原创 C# 数组转Intptr
在c++里数据转指针是很容易的,但是在托管代码里,转起来就比较费劲了。转换方法如下:internal static IntPtr ArrayToIntptr(byte[] source) { if (source == null) return IntPtr.Zero; unsafe {
2017-04-12 11:02:58
14116
原创 C# USB通信(调用Windows API)
网上usb通信的案列有很多,或多或少的有点bug,我在做项目的时候,费了很大的功夫都是在调试bug,今天有空把usb通信的底层代码贴出来,方便大家使用。 示例代码如下:using System; using System.Runtime.InteropServices;namespace USB { public class Win32Usb { #re
2017-01-06 21:31:01
24280
22
原创 UDP的IOControl(低级操作模式)
private IPEndPoint LocaIPEP; //udp 本地节点 private IPEndPoint RemoteIPEP; //对方节点 private Socket MyClient; //当前对象 public UdpHandle(IPEndPoint local, IPEndPoint remote)
2016-12-28 13:23:43
2968
原创 unity 打包完成之后 (黑色控制台提示)
unity 打包完成之后 (黑色控制台提示)习惯了原来C/S结构的开发,需要在unity里调用控制台来打印游戏日志,而不影响游戏的画面,我们需要调用windows API来处理一些事情。废话不多说了,直接上干货,调用windows API来显示控制台。代码如下:using UnityEngine; using System.Runtime.InteropServices; using Sy
2016-12-28 13:14:20
2272
原创 kbengine基础教程--01
我们在学习kbengine的时候先做如下准备工作:1,我们要安装python编译器:https://www.python.org/downloads/2,还需要下载kbengine源码包:http://kbengine.org/3,我安装的是mysql数据库:https://www.mysql.com/4,vs 2013的安装包,https://www.visuals
2016-07-23 09:51:21
1525
原创 一、C#学习基础篇----基础语法
C#是一种面向对象的语言,类似于java,面向对象有的特点他都具备了面向对象的三个 基本特性,封装,继承,多态。其他的不多说了,我们直奔主题,C#有基本数据类型,和引用数据类型之分,基本数据类型有bool(布尔型,true或者false),bool?(true,false,null),char(字符型),int(整型),long(长整型),short(短整型),byte(无符号字节型)
2015-05-08 23:50:09
2870
原创 WinForm基础篇----button
winform编程入门特别简单,安装完vs(我使用的是vs2010,版本不要求),打开vs,新建项目,选择Visual C# ------->Windows----->Windows窗体应用程序,然后在下边输入所需要的内容,在名称的地方输入工程名,默认是和解决方案同一个名字,位置选择一个路径,来保存你建的工程,我在D盘下建了一个自己的目录,啰嗦一句(这里的解决方案下可以有很多工程),如下图所示
2015-05-07 22:11:58
1253
Vegetation Studio 1.5.3
2024-12-04
paint in 3d 4.1.3
2024-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人