自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (7)
  • 收藏
  • 关注

原创 优快云写博客体验太差了,各种不稳定,MarkDown也是各种问题,转战简书了

http://www.jianshu.com/u/62f51c390c19

2017-09-14 13:07:20 928

原创 Unity中的各种Attribute

CreateAssetMenuAttribute添加菜单项到Create菜单,通常用来创建自定义的ScriptableObject。[CreateAssetMenu(fileName="sceneData.asset",menuName="Scene Data")]public class SceneData : ScriptableObject{ public int ID; p

2017-09-12 20:12:28 497

原创 JSON

Unity提供了JSON序列化相关的的工具类JsonUtility,性能比.Net的Json要好。目前只支持MonoBehaviour,ScriptableObject,与普通Class。普通Class要标识可序列化。同时,字段的要求与ScriptableObject的要求一致,比如不支持Dictionary的序列化。 public static string ToJson(object obj

2017-09-12 18:41:57 299

原创 MonoDevelop编译

依赖 https://dl.xamarin.com/XamarinforMac/Mac/xamarin.mac-3.6.0.19.pkg http://download.mono-project.com/archive/5.4.0/macos-10-universal/MonoFramework-MDK-5.4.0.macos10.xamarin.universal.pkg

2017-09-12 16:18:07 1147

原创 减小包大小

减小包大小不仅可以使缩短用户下载时间,还可以节省流量,同时AppStore对包大小也有限制。排查Resources目录Resources目录中的所有资源,不管有没有被引用,都会被打进最终的包中。所以是重点优化目录。压缩贴图贴图是最占资空间的,非透明贴图比透明贴图更节省空间。除此之外,贴图的文件格式是不会影响最终包大小的,因为无论哪种图片格式,最终都会被Unity转成平台相关的贴图。所以把项目中的

2017-09-12 00:36:24 494

原创 调用Native Plugin

使用C/C++生成的库,调用方法如下// Native Plugin 中声明的函数float FooPluginFunction () { return 5.0F; } using UnityEngine; using System.Runtime.InteropServices; class SomeScript : MonoBehaviour { #if UNITY_

2017-09-11 23:24:36 656

原创 使用MonoDevelop编译Dll

有时我们需要将写好的库或者插件,封装为一个Dll,然后再导入Unity使用。首先注意的是,不可以直接使用MonoDevelop默认的Framework导出,因为默认的是 .NetFramewok 4.0,而Unity要求最高为3.5。所以需要手动导入依赖的.netframework库。同时,如果需要用到Unity的API,还需要导入Unity的库文件。Unity库文件和路径为: /Applica

2017-09-11 22:47:08 1027

原创 终端配置本地代理

可以在终端中执行以下命令,只对当前终端有效。 也可以将其写入shell配置文件.bashrc或者.zshrc中,则每个终端都有效。export http_proxy="http://127.0.0.1:1080"export https_proxy="http://127.0.0.1:1080"

2017-09-11 22:23:25 562

原创 Git设置本地理

git config --global http.proxy 'socks5://127.0.0.1:1080' git config --global https.proxy 'socks5://127.0.0.1:1080'

2017-09-11 22:10:04 231

原创 不同平台插件目录名

https://docs.unity3d.com/560/Documentation/Manual/PluginInspector.html

2017-09-11 17:02:33 255

原创 Resources加载资源

注意:资源必须放在Resources目录下资源路径相对于Resources目录,且不加后缀名即使是后缀不同的资源,也不要重名,否则加载的时候要指定类型。路径使用正斜杠”/”Resources中的所有资源,都会被打到客户端中void Start() { GameObject go = GameObject.CreatePrimitive(PrimitiveType.

2017-09-11 16:50:16 13354 1

原创 ADB调试命令

在对Android设备上运行的项目进行Profiler调试时,需要手动打开ADB隧道,使得Profiler可以链接到设备。adb forward tcp:54999 localabstract:Unity-{insert bundle identifier here}// 例如:adb forward tcp:54999 localabstract:Unity-com.wxl.test其实最方便的

2017-09-09 22:41:55 281

原创 对指定代码段进行性能分析

有时我们需要对指定的代码断进行追踪,观察其性能,我们可以对这断代码打一个Tag,然后在Profiler中就可以找到标记为此Tag的代码断的性能情况。void Update(){ Profiler.BegainSample("MyTag1"); Test1(); Profiler.EndSample(); Test2();}其实使用DeepProfiler是可以看到具

2017-09-09 22:19:58 311

原创 Quaternion 四元数

Unity内部使用Quaternion来表示旋转,因为它比Matrix更精简,同时也没有Euler的gimbal lock问题。Quaternion间的运算transform.rotation *= target.rotation;Quaternion与Vector3的运算void Update(){ Vector3 worldForward = transform.rotaion * V

2017-09-07 21:00:50 304

原创 叉积

叉积公式为:dotProduct = |dirA| * |dirB| * cos<dirA, dirB>再结合余弦曲线可以知道: 当夹角在[0,90], [270, 360]区间内,cos > 0 当夹角在[90, 270]区间内,cos < 0所以你跟目标点方向的叉积 > 0时,说明你正面向它;而当你跟目标点的方向的叉积 < 0 时,说明你背对它。

2017-09-07 18:06:27 447

转载 Unity内存优化方案集合

https://github.com/mc-gulu/dev-awesomenesses/blob/master/unity-gc-cheatsheet-references.mdUnity GC Cheatsheet ReferencesUnity GC CheatsheetDetailsReferences官方及第三方参考 (En)U

2017-09-07 10:42:52 567

转载 堆和栈的区别

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是两

2017-09-07 10:26:58 231

原创 MacOS Shell

Finder显示当前路径// 显示defaults write com.apple.finder _FXShowPosixPathInTitle -bool TRUE;killall Finder// 关闭defaults delete com.apple.finder _FXShowPosixPathInTitle;killall Finder

2017-09-05 17:20:40 391

原创 协程

协程的核心就是迭代器,在update中每帧去访问迭代器,当条件满足的时候可以永远迭代下去,当条件不满足时迭代就中止,具体的细节系统已经帮我们实现。我们只需要定义返回迭代器对象的方法即可。利用协程每帧都会调用的特性,可以当Update方法一样来使用,分帧去处理逻辑,但比Update使用更简便。协程提供了更多特性,比如会保存现场,暂停后从上次位置继续执行;还可以随时中止;除了Update方法之外多了一个

2017-09-04 14:21:37 426

原创 宏定义

#if UNITY_EDITOR Debug.Log("Unity Editor");#elif UNITY_IOS Debug.Log("Unity iPhone");#elif UNITY_ANDROID Debug.Log("Unity Android");#else Debug.Log("Any other platform");#endif

2017-09-01 18:49:17 225

原创 Git命令

远程仓库// 先生成传输密钥,生成在~/.ssh/中ssh-keygen -t rsa -C "wxlcat@gmail.com"// 将密钥添加到github中// 添加远程仓库git remote add origin xxx.git// 更新远程仓库分支到本地git pull origin master// 如果是第一次链接到远程仓库,则会报错,需要添加以下参数git pull ori

2017-09-01 00:51:53 196

原创 协程管理器

有时我们需要分帧去执行一个任务,或者执行一个Update方法。常用的方法就是继承MonoBehaviour,或者在父类中调用当前对象的Update方法。 更简单的方法是通过协程来实现,这样对象内部只需要实现一个返回类型为IEnumerator的方法,然后通过调用MonoBehaviour单例对象的StartCoroutine来执行即可。当然我们可以包装一下,提供类如暂停,停止任务的方法。

2017-08-31 00:17:02 299

原创 正交相机视野控制

有时需要让指定的物体正好在正交相机视野内,就需要实时计算合适的size,然后更新相机。要使物体在正交相机视野内,则需要使物体在相机坐标系中的x,y坐标都在size范围内,于是求出x,y的最大值即为size的值。没有考虑z坐标是因为对于正交相机,z不会影响物体的渲染位置。float cameraSize = 0;// 将物体世界坐标转换为相机坐标系中的坐标Vector3 targetPosInCam

2017-08-29 16:59:14 1032 1

原创 序列化SerializedField

通常情况下,GameObject上挂的MonoBehaviour脚本中的私有变量不会显示在Inspector面板上,即不会被序列化。但如果指定了SerializedFiled特性,就可以被序列化了。public class Test : MonoBehaviour { public string Name; [SerializeField] private int Hp; }

2017-08-26 17:20:32 1848

原创 @操作符

将关键字作为变量名int @int = 10;不转义字符string path = @"c:\documents";

2017-08-23 12:03:23 180

原创 ??运算符

Person p;Person tmp = new Person();p = p ?? tmp; // 如果p为空,则取tmp,否则不变

2017-08-23 11:29:14 249

原创 文本读写

使用FileStream读取using(FileStream fs = File.OpenRead(@"/Users/wxl/Workplace/test.txt")) { byte[] arr = new byte[100]; UTF8Encoding encoding = new UTF8Encoding(true);

2017-08-21 22:34:11 210

原创 使用VSCode调试.NetCore

在VSCode中打开一个空目录作为工程目录在TERMINAL窗口中进行工程初始化工作 // 创建console项目 dotnet new console// 加载生成依赖项dotnet restore// 运行dotnet run到这里,工程所需文件已初始化好,下一步需要配置launch.json以便VSCode调试// 重新指定program项,就是生成的目标dll文件,bin/De

2017-08-21 13:08:43 1285

原创 C#异常

使用原则:正常业务逻辑,不要使用异常来处理不要总是尝试去捕获或引发异常,而应该允许异常向调用堆栈往上传播只有在出现资源问题,严重错误时才引发异常如果向用户抛出异常,最好包装一下,引发一个含有友好信息的新异常抛出新异常,需要将原有异常附加进来,便于查错在try finally中返回数据若在try中返回值类型数据,则在finally中对数据的操作无效若在try中返回引用类型数据,则在fi

2017-07-21 15:48:01 349

原创 Unity插件菜单

Unity MenuItem APIpublic MenuItem(string itemName);public MenuItem(string itemName, bool isValidateFunction);public MenuItem(string itemName, bool isValidateFunction, int priority);// 若前后两个菜单的priorit

2017-07-21 10:45:28 456

原创 Unity中加载资源的方法

Resources资源路径为Resources文件夹下的相对路径文件不能加后缀名Resources下的所有资源在发布的时候会被压缩

2017-07-21 00:39:51 831

原创 Unity中的序列化Scriptable

游戏中保存数据的途径有三种:PlayerPrefscsv, xml, json等配置文件Scriptable序列化Scriptable优点:PlayerPrefs只能在运行时保存读取一些临时数据。csv等配置文件,需要加载进来后解析为具体的数据对象,然后在代码中获取对应的数据对象。而Scriptable可以直接将对象序列化到本地,以asset的方式存储。因为是asset所以可以挺拖拽的

2017-07-21 00:25:35 526

原创 C#序列化

using System;using System.IO;using System.Runtime.Serialization.Formatters.Binary;public class BinarySerializer{#region Serialize public static void SerializeToFile<T>(T obj, string fileDir, st

2017-07-20 18:17:27 253

原创 资源管理

要及时释放资源,否则资源一直被占用,浪费内存不说,在下次垃圾回收前,此资源也不能被再次访问// using讲法糖会自动帮我们捕获异常,同时调用Dispose方法using(FileStream fs = new FileStream("@c:\test.txt", FileMode.Open)){ ...}

2017-07-20 17:22:48 163

原创 闭包

List<Action> lst = new List<Action>();for(int i=0; i<5; i++){ // wrong, output:55555 Action act = ()=>Console.WriteLine(i); // correct, output:01234 /* int temp = i; Action act

2017-07-20 14:34:31 173

原创 泛型

基本class MyData <T>{ private List<T> lst = new List<T>(); public void Push(T item) { lst.Add(item); } public void Print() { foreach(T item in lst) {

2017-07-20 12:47:01 155

原创 委托

委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。它可以定义在类体外。public delegate string GetNameDelegate;public class Test{ public Test() { PrintName(GetNameID, 11); } private void PrintName(G

2017-07-19 14:55:13 195

原创 Linq

基本结构static void ListFiles(string rootDir, string searchParttern){ var ret = from fileName in Directory.GetFiles(rootDir, searchParttern) let fi = new FileInfo(fileName) orderby fi.

2017-07-19 10:07:09 193

原创 测试垃圾回收次数

static int collectionCount = 0;static Stopwatch watch = null;static int testCount = 100000;static void TestBegin(){ GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); collect

2017-07-18 11:04:07 424

原创 for与foreach的使用场景

foreach特点:基于迭代器实现 使用方便 自动将代码置入try finally块 自动调用IDispose接口for特点:基于索引实现 支持遍历时进行增删操作 内存垃圾比foreach少

2017-07-18 10:46:55 1273

计算机图形学习题与解答

计算机图形学习题与解答 计算机图形学习题与解答

2011-06-19

Meego开发环境搭建教程

meego 开发 环境 搭建 教程meego 开发 环境 搭建 教程

2011-03-12

自动寻迹小车的传感器模块设计

自动寻迹 小车 传感器 模块 设计自动寻迹 小车 传感器 模块 设计

2011-03-12

ST188单光束反射式红外光电传感器

ST188 单光束反射式 红外光电传感器

2011-03-12

st型光电传感器典型应用

st型光电传感器典型应用st型光电传感器典型应用

2011-03-12

ADO封装类文件 数据库访问

vc6.0下已经写好的ADO封装类文件ADOConn.h ADOConn.cpp

2010-10-17

eclipse帮助文档中文版

eclipse帮助文档中文版 eclipse帮助文档中文版 eclipse帮助文档中文版

2010-08-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除