- 博客(74)
- 资源 (4)
- 收藏
- 关注
转载 托管代码和非托管代码的区别
什么是托管代码?托管代码是一microsoft的中间语言,他主要的作用是在.NET FRAMEWORK的CLR执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段: 1. 源代码编译为托管代码,(所以源代码可以有很多种,如VB,C#,J#) 2. 托管代码编译为microsoft的平台专用语言。编译器把代码编译成中间语言(IL),而不...
2018-09-10 19:53:48
6831
转载 C#中数组的存放位置
class Program{ static void Main(string[] args) { char[] a = new char[4]; object[] b = new object[3]; Console.WriteLine(a.GetType().IsSubclassOf(typeof(System.Array...
2018-05-10 10:26:58
2517
原创 C#装箱和拆箱以及相关IL代码简介示例
前言本文要使用的工具有csc.exe(微软.Net Framework已经帮我们装好,路径是:C:\Windows\Microsoft.NET\Framework64\v4.0.30319)程序集生成工具,ildasm.exe(IL代码查看,同上,路径是:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin)工具;正文查看下文的...
2018-04-29 20:56:21
568
原创 C#结构体和类的区别和联系
前言好记性不如烂笔头,有些知识点吧,不去记下来总是忘的很快,即使明白也说不出个所以然,茶余饭后还是需要梳理一下。关于C#中的结构和类的区别和联系1、类型区别结构是值类型类是引用类型2、声明字段时结构在声明时不能给予默认值类在声明字段时可以给予默认值(代码编译之后是将赋值语句放到构造函数内去执行赋值操作的)3、构造函数结构中不管有没有手动实现有参数的...
2018-04-10 23:23:25
412
原创 Unity3D代码动态生成Mesh
在游戏开发过程中不免会遇到自己动态生成Mesh的操作,下面的代码中在运行之后会动态的生成一个面片,本例中只设置了顶点、顶点颜色、uv以及三角形顺序。using System.Collections;using System.Collections.Generic;using UnityEngine;public class GenerateMesh : MonoBehaviour {...
2018-04-01 23:42:42
5406
原创 特殊矩阵相关的几个定义
1、方块矩阵方块矩阵,简称方阵,是指那些行数和列数相同的矩阵对角矩阵,如果一个矩阵除了对角元素外的所有元素都为0,则称为对角矩阵2、单位矩阵一个特殊的对角矩阵是单位矩阵,即对角线元素都为1的对角矩阵 MI = IM = M3、转置矩阵对原矩阵的一种运算,只需要把原来的矩阵翻转一下就行 性质一:矩阵转置的转置等于原矩阵 (MT)T = M性质二:矩阵串...
2018-03-24 11:53:47
2879
原创 Lua面向对象的实现
TSprite = { x = 0, y = 0,}function TSprite:setPosition(x, y) self.x = x self.y = yendfunction TSprite:display() print(self.x .. ", " .. self.y)endlocal who = TSpriteTSprite = nilwho...
2018-03-22 23:09:22
393
原创 C#记录运行时间的API(Stopwatch)
使用System.Diagnostics空间下的Stopwatch类start()函数开始计时stop()函数结束计时Elapsed属性下面的双精度TotalSeconds记录时间//位运算和取余运算运行时间输出using System;using System.Diagnostics;namespace TestStopWatch{ class Program ...
2018-03-19 13:25:28
1877
原创 Unity Shader内置属性 _MainTexture_TexelSize
_MainTexture_TexelSize,一个容易忘记的属性{TextureName}_TexelSize - a float4 property contains texture size information: - x contains 1.0/width - y contains 1.0/height - z contains width - w contains heig...
2018-02-10 14:22:11
10182
转载 shader内置函数
UnityObjectToClipPos, UnityObjectToViewPos,WorldSpaceViewDir,ObjSpaceViewDir,ParallaxOffset,Luminance,DecodeLightmap,EncodeFloatRGBA
2017-03-30 14:29:46
1036
原创 Unity3D——背景音乐格式设置
加载时解压缩(Decompress on load): 加载后解压缩声音。使用于较小的压缩声音,以避免运行时解压缩的性能开销。(与在内存中压缩相比,会产生10倍或更多内存,因此大文件不要使用这个。)在内存中压缩(Compressed in memory): 保持声音在内存中(是压缩的)在播放时解压缩。这有轻微的性能开销(尤其是OGG / Vorbis格式的压缩文件),因此大文件使用这个。从磁盘流(...
2017-03-28 18:17:54
2922
原创 Unity3D——将Unity中自定义的类映射到Lua中来调用
众所周知,Unity3D游戏的热更新在IOS平台需要使用Lua语言,虽然效率低于C#的实现,但也是没有办法的办法;现在网上比较流行的是一个基于ToLua的LuaFramework的框架,对于这个框架,网上教程资源比较多,下面就说一下自定义类乃至自定义扩展的内容如何映射到lua中,进而使用。
2016-12-07 18:09:54
3674
原创 Unity3D——粒子系统被2D的NGUI或者UGUI遮挡的问题
今天研究了一下粒子系统和2D UI(主要是NGUI和UGUI)的层级遮挡问题,在网上查了很多博客资料,五花八门的各有风采,看起来很容易的样子;但是描述出来和自己做出来是两码事,自己不亲手做出来根本不会发现什么叫做眼高手低;因此,笔者自己做了一遍,进坑出坑后整理了一篇博客。
2016-11-28 21:39:39
16402
3
原创 Unity3D——使用遮挡剔除优化游戏场景&DrawCall优化
降低DrawCall的方法:1.对图集的有效管理,按功能模块划分,相同模块下的图片资源放在一张图集中,公共部分的图片资源放在一起,合理的管理既能适当降低I/O操作,又能适当减少DrawCall(原则是:根据UI中图片的深度值来优化的,深度值相差为1的图片,若在同一图集中,则对应的DrawCall增加1,否则为2);2.遮挡剔除,即为摄像机照不到的地方,想办法通知CPU不进行渲染。
2016-11-25 23:38:29
4402
转载 Unity3D——Mecanim动画 AnimatorTransitionInfo和AnimatorStateInfo 在角色移动和待机平滑切换中的应用
首先,当角色在从 Idle 切换到 Locomotion 动画的过渡中时,上面的这段代码会直接忽略动画过渡的这段时间,所以在女主角从静止起步到跑步的过程中,Animator 实际上一直都会保持为 Idle 的状态,直到整个 Transition 完成了,Animator 的 State 才会切换到 Locomotion,这样的话女主角实际上是在原地播放了这个过渡的动画,而这段时间的动画中,女主角的脚步会从静止切换到小碎步,再到大步跑,而这个时候女主角的位置不会发生变化(没有在女主角跑动动画对应的方向上移动)
2016-11-14 16:06:53
14042
4
原创 Unity3D——SendMessage方法的使用
GameObject自身的ScriptSendMessage("函数名", 参数,SendMessageOptions)自身和子Object的ScriptBroadcastMessage("函数名", 参数,SendMessageOptions)自身和父Object的ScriptSendMessageUpwards("函数名", 参数,SendMessageOptions)
2016-11-01 11:20:50
5259
1
原创 Unity3D——GetComponentsInChildren<T>()方法详解
最近使用GetComponentsInChildren在做游戏获取孩子节点对象的时候遇到了问题,索性就花点时间理解透彻来,省的下次进坑;总结了三种情况,使用需谨慎。
2016-10-29 14:00:16
39815
4
原创 Unity3D——利用协同程序实现游戏中的AI(自动行走和发现目标)
协同程序:主程序运行时同时开启另外一段逻辑处理,来协同当前的执行;同一时刻只有一个协同程序在运行,并且协同程序会影响到主线程的运行;开启方法:(方法2可以传递多个参数,并且性能消耗略小)StartCorourine(string methodName)StartCorourine(IEnumerator routine)如下图所示,AI(黑球)沿着5个黄色方块(Cube)所连接的绿色路径(使用Gizmos绘制)行走,当Mage(Hero)接近AI一定范围的时候,AI将会追击Mage,Mage离开范
2016-10-25 17:26:46
5426
原创 Unity3D——PlayerPrefs 游戏存档
unity3d提供了一个用于本地持久化保存与读取的类——PlayerPrefs。在游戏会话中储存和访问游戏存档。这个是持久化数据储存,比如保存游戏记录。 Mac OS在Mac OS X上PlayerPrefs是存储在~/Library/Preferences文件夹,名为unity.[company name].[product name].plist
2016-10-24 10:09:20
2956
原创 Unity3D 使用NGUI制作简易弹出窗口声音控制器
制作一个简单的声音控制器,采取参处窗口的形式来制作,弹出窗口被做成预设体,点击设置的时候加载,再次点击时销毁内存中的预设体克隆对象; 使用单例来控制弹出窗口实例的唯一性。
2016-10-11 20:57:55
1768
原创 Unity3D EasyTouch JoyStick控制小黄人的移动
利用EasyTouch中的 JoyStick控制小黄人的移动 如下图所示: 挂载在EasyTouch上的ControlWithEasyTouch脚本
2016-10-11 20:26:19
2257
原创 Unity3D (C#)事件分发机制的实现
金钱和能量的加减操作 //声明一个委托类型 public delegate void VoidCall(GameObject go); //声明一个事件 public event VoidCall clickCall;
2016-09-30 10:25:02
3226
原创 C#学习笔记类和结构体
类的修饰符 - 无或者internal:只能在同一程序集访问类 - public:同一程序集或者引用该程序集的其他程序集都可以访问 - (internal) abstract:只能在同一程序集访问类,该类不能被实例化,只能被继承 - public abstract:不能被实例化,只能别继承,引用改程序的其他程序集可以使用
2016-08-31 15:13:39
353
转载 如何计算程序的时间复杂度
定义:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数T(n)称为这一算法的“时间复杂性”。当输入量n逐渐加大时,时间复杂性的极限情形称为算法的“渐近时间复杂性”。我们常用大O表示法表示时间复杂性,注意它是某一个算法的时间复杂性。
2016-08-22 10:53:22
10457
1
原创 C++学习笔记——继承相关问题
一、 1、声明一个派生类对象,构造函数的执行顺序是:限制性基类的构造函数(体),在执行本类的构造函数(体) 2、回收一个派生类对象,析构函数的执行顺序:先执行本类的析构函数(对本类特有成员相关堆空间进行释放),再执行基类的析构函数。二、将子类对象当父类对象的情况:将子类对象赋值给父类对象,父类引用指向子类对象,父类指针指向子类对象向下转型 将父类的指针或者引用转为子类的指针或者引用。目
2016-08-12 19:19:59
374
原创 C++拷贝构造函数、赋值运算符重载函数使用总结
构造函数的作用是创建并初始化对象,所以构造函数被调用的前提是有对象被创建。拷贝构造函数的使用//例如有个类为PointPoint p1(1, 2);Point p2 = p1;//或者Point p3(p1);//都会调用拷贝构造函数//还有一种情况是调用一个函数的时候,传递的参数是一个类的对象,这个时候回调用拷贝构造函数赋值运算符重载函数
2016-08-09 16:07:11
390
原创 D3.js学习总结
D3 的全称是(Data-Driven Documents),顾名思义可以知道是一个被数据驱动的文档。听名字有点抽象,说简单一点,其实就是一个 JavaScript 的函数库,使用它主要是用来做数据可视化的。
2016-08-05 14:47:32
402
转载 轻松理解javascript中的闭包
闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它。因此,本文不会对闭包的概念进行大篇幅描述,直接上干货,让你分分钟学会闭包!1、闭包–爱的初体验在接触一个新技术的时候,我首先会做的一件事就是:找它的demo code。对于码农们来说,代码有时候比自然语言更能理解一个事物。
2016-08-05 14:33:22
294
原创 设计模式:职责链模式
职责链模式(chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。结构图:UML 职责链的好处 关键:当客户提交一个请求时,请求是沿着链传递直至有一个ConcreteHandler对象处理它为止
2016-08-04 16:59:26
415
转载 JS中json对象和json字符串总结
JS中json对象和json字符串总结JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。
2016-08-04 14:50:26
453
转载 C++ 传指针和传引用
有区别 无论你传值还是传指针,函数都会生成一个临时变量, 但传引用时,不会生成临时变量;当你传值时,只可以引用值而不可以改变值,但传值引用时,可以改变值; 当你传指针时,只可以改变指针所指的内容,不可以改变指针本身,但传指针引用时,既可以改变指针所指的内容,又可以改变指针本身;但传引用主要是它不生成临时变量,不进行返回值copy等,速度快。 数据结构的二叉排序树中有典型应用..注:简单一点可
2016-08-03 11:15:22
440
原创 const操作符
(1)、int* const p;const修饰p,表示p不能被修改;指针常量,const int a;(2)、const int *p、int const *p;const 修饰*p, *p不能被修改(即不能通过指针间接修改它“指向”的数据);常量指针->指向常量的指针。
2016-07-25 11:26:11
337
python-2.7.6
2016-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人