c#
曲径通幽wd
Talk is cheap,show me the code
展开
-
【转】关于c#中委托的解释
引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事转载 2015-10-10 10:48:59 · 458 阅读 · 0 评论 -
对Unity资源和对象的深入理解
本文将从Unity编辑器和运行时两个角度出发,主要探讨以下两方面内容:Unity序列化系统内部细节以及Unity如何维护不同对象之间的强引用。另外还会讨论对象与资源的技术实现差别。译注:除非特别说明,下文中所有的“资源”均指代“Asset”。本文内容是理解在Unity中如何高效加载和卸载资源的基础。正确的资源管理对缩短加载时间并减少内存占用来说至关重要。之前已经介绍了 上半部分,今转载 2016-10-13 17:15:41 · 1634 阅读 · 0 评论 -
Unity 3GlassesSDK解析
本文只作为参考,个人水平有限,望见谅! 由于3GlassesSDK的实现过程比较简单,所以就不注释代码了,直接上图咯。原创 2016-10-24 14:50:11 · 1677 阅读 · 0 评论 -
Unity GearVR SDK解析
本文只作为参考,个人水平有限,望见谅! 在网上找遍了关于Unity开发GearVR的应用的资料,但都是一些比较笼统的介绍诸如导入SDK、文档中文翻译的文章,没有关于SDK内部工作原理的资料,于是就决定自己入手看看里面究竟是啥。研究了半天发现SDK中C#脚本做的只是一些次要的工作,比如将Unity渲染出来的RenderTexture的地址传入DLL,对,主要的工作都在那个所谓的UnityPlugin原创 2016-10-18 12:00:51 · 1815 阅读 · 0 评论 -
Unity中将c#导出DLL动态库
本文只作为参考,个人水平有限,望见谅! C#导出DLL,一开始就想到了将c++代码做成DLL的方法,各种复制粘贴宏定义,于是就找了一下C#导出DLL的一般方法,和后者如出一折,只是更简单一些,这里我就不详述了。于是乎就想到能不能写一个脚本,在Unity中可以直接导出动态库呢?再然后就知道了原来导出动态库全靠的是.net文件目录之下的csc.exe,这个程序的作用还不止导出.cs文件的dll,还可以原创 2016-10-14 10:44:01 · 2674 阅读 · 0 评论 -
Unity定时器Timer类
本文只作为参考,个人水平有限,望见谅! 在写代码的时候经常碰到过一定时间之后执行某个方法的情况,刚开始时会定义一个bool值和一些时间count进行时间上的判断,于是乎就出现了许多的变量,时间一长,自己都不知道哪个变量对应着哪些代码。熟悉Unity一段时间之后发现了StartCoroutine()也就是所谓的协程函数,就开始大肆使用协程,关于协程和线程的区别在这就不说啦。但是用了一段时间发现协程原创 2016-10-14 16:00:50 · 7386 阅读 · 1 评论 -
Unity用代码实现Remove Missing Script
[MenuItem("Edit/Cleanup Missing Scripts")] static void CleanupMissingScripts () { for(int i = 0; i < Selection.gameObjects.Length; i++) { var gameObject = Selection.gameObjects[i];转载 2016-10-17 18:27:04 · 3131 阅读 · 0 评论 -
VR图像为何都要畸变
原文链接:http://blog.csdn.net/huangcanjun187/article/details/52443550VR镜头的反畸变过程,就是为了让图像呈现更大的视场角。VR内容在不经过反畸变的时候,内容的呈现是这样的: 在经过VR镜头的反畸变之后,白色的方格线条会恢复成直线。 那么VR镜头的工作原理大概是怎样的呢? 红框中的x代表畸变的像素转载 2016-10-18 18:14:57 · 2921 阅读 · 0 评论 -
Unity自定义ButtonGroup类
本文只作为参考,个人水平有限,望见谅! 最近接触HTC Vive的项目中,使用的UI交互要不就是World下的UGUI,要不就是使用立体的Sprite来实现。而最经常出现的就是多个选择按钮,高亮选择,点击执行操作。所以在这里总结出两种情况下的ButtonGroup类,提供给有需要的人。PC是可以使用的,在Vive中需要导入Vive Input Utility这个插件,由于时间关系我还没试过。Bu原创 2016-11-09 11:40:40 · 2188 阅读 · 0 评论 -
Unity 基于状态的简单敌人AI
本文给出的是一个基于状态枚举的AI代码,代码由两部分组成。第一部分EnemyAIController负责控制敌人的逻辑,第二部分RotationMap负责敌人空闲状态的路径算法。先给出Inspector面板中各个值的说明,最后上代码。 EnemyAIController.csusing UnityEngine;using UnityEngine.UI;using System.Collecti原创 2016-11-30 15:51:20 · 10834 阅读 · 2 评论 -
Steam VR SDK学习笔记(二)
今天导入了一个叫 VRTK - SteamVR Unity Toolkit 的插件,基本上考虑了所有将会用到的情况。 下面要总结的就是在这个插件下手柄的用途: 一、镭射光线 我觉得这种一般会用在UI的交互上,可以在 VRTK_SimplePointer类的Update()方法中的pointerCollidedWith得到射线检测到的物体,之后就可以写相应的逻辑了。 二、抓取物体 原理应该是原创 2016-11-04 16:47:02 · 4962 阅读 · 0 评论 -
UnityNetwork简单demo
这两周开始了解Unity联网方面的知识,虽然之前在学校做过一些联网的测试,不过都是基于Socket实现,因为那时候也不知道有Network View之类的组件。个人觉得Unity的Network可以实现一些比较简单的网络传输,对于学习来说是绰绰有余。不过网上的教程都是前篇一律,大多数都是讲解那个胶囊体小人的官方例子,这边也链一个我学习UNet时看的文章:http://blog.csdn.net/co原创 2016-11-17 17:59:22 · 12613 阅读 · 2 评论 -
Unity行为树插件Behavior Designer学习笔记(一)
Composites Sequence:&&,可以理解为同步单线程,从左到右顺序执行,一旦某个节点执行时返回失败则Sequence返回失败。 Parallel:&&,可以理解为异步多线程,所有的子节点都会相对无顺序的同时执行,一旦某个节点执行时返回失败则会终止其他节点的执行而返回失败。 Selector:||,顺序执行,一旦某个节点返回成功则Selector也返回成功。 Paraller S原创 2016-12-02 16:24:52 · 3328 阅读 · 1 评论 -
Unity行为树插件Behavior Designer学习笔记(二)
刚开始接触这个插件时觉得这个插件好复杂,但是越学越发现其实这个插件没有想象中的难,并且基本上涵盖了你所想要实现的AI功能。由于网上教程少之又少,所以在这里推荐一个学习此插件的视频教程地址:http://www.woxueyuan.com/course/47 ,熟悉教程的朋友应该对这个讲师非常熟悉了。不过我看完视频的前半部分就没往下看了,毕竟自己琢磨才能有所提高。下面就给出我自己做的一个行为树图,仅做原创 2016-12-06 15:09:46 · 4757 阅读 · 4 评论 -
C#中virtual和abstract的区别
原文:http://www.cnblogs.com/wang7/archive/2012/04/17/2453624.htmlvirtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义。它们有一个共同点:如果用来修饰方法,前面必须添加public,要不然就会出现编译错误:虚拟方法或抽象方法是不能私有的。毕竟加上virtual或abstract就是让子转载 2016-12-15 09:52:36 · 623 阅读 · 0 评论 -
Unity中SpotLight光照事件的判断
本文提供了一个基于射线检测的SpotLight光照事件判断的代码,先上一个Debug图大家就明白了。接着是Inspector中参数的解释: 下面是代码实现:FlashLight.csusing UnityEngine;using System;using System.Collections;using System.Collections.Generic;public enum Ligh原创 2016-12-15 11:14:10 · 3499 阅读 · 4 评论 -
C#接口的意义
转自:http://www.cnblogs.com/zhijianliutang/archive/2011/11/16/2250741.html1、C#接口的作用 :C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体实现的代码,然后在继承该接口的类里面要实现接口的所有方法的代码,但没有真正认识到接口的作用的时候就觉得用接口是多此一举,当然转载 2016-12-23 14:52:02 · 1698 阅读 · 0 评论 -
pureMVC框架基础
原文地址:http://blog.csdn.net/lyh916/article/details/50058207PureMVC框架下载:http://puremvc.github.io/而github上的有很多都是不需要的,所以也可以直接下载简化版的(c#):http://pan.baidu.com/s/1bcYgfc官方文档:ht转载 2017-07-11 14:42:35 · 664 阅读 · 0 评论 -
Unity脚本生命周期流程图
转载自【无幻】:http://blog.csdn.net/akof1314/article/details/39323081渲染OnPreCull: 在相机剔除场景之前调用此函数。相机可见的对象取决于剔除。OnPreCull 函数调用发生在剔除之前。OnBecameVisible/OnBecameInvisible: 在对象对于相机可见/不可见时调用此函数。转载 2016-10-24 10:10:49 · 590 阅读 · 0 评论 -
Steam VR SDK学习笔记(一)
先分析各个脚本的功能,以便后面学习时使用。SteamVR/Scripts/SteamVR.cs 单例管理类,管理SteamVR程序的运行和终止。SteamVR_Camera.cs 给场景添加一个最基本可运行的SteamVR组。SteamVR_CameraFlip.cs 使用Shader将屏幕图像反转得到最终图像。SteamVR_CameraMask.cs 将头盔中看原创 2016-11-03 15:48:40 · 8099 阅读 · 1 评论 -
Unity CardboardSDK解析
本文只作为参考,个人水平有限,望见谅! 用了3天时间去了解CardboardSDK里面的内容,于是决定和OVR的一样画一个分析图。除了畸变算法的代码和那些VRDevice的具体实现类其他的代码都注释过以供大家学习。那个畸变的Shader还有几个算法函数实在是看不太懂,自己的道行还不太够,希望各路大神指点! 下面是注释代码的下载链接,如果哪里有错请指出! 最后是SDK的分析图:原创 2016-10-21 16:13:05 · 1153 阅读 · 0 评论 -
【转】将图集切割成单个单个的图片
假设有一张png/tga图集,导入到unity,放置目录"Assets/Resources/UI"(UI文件夹可替换成其他的,重要的是要在"Assets/Resources/"路径下),默认为如下设置:为了可以使用Unity自带的精灵切割,要将纹理类型改成"Sprite","Sprite Mode"改成"Multiple","Format"改成"Truecolor",点击"Ap转载 2015-12-02 09:42:09 · 1555 阅读 · 0 评论 -
【转】c#中变量的区别
C#中变量分为:全局变量、静态全局变量、局部变量和静态局部变量。 1、按存储区域分 (1)全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域; (2)局部变量存放在内存的栈区。 2、按作用域分 (1)全局变量在整个工程文件内都有效; (2)静态全局变量只在定义它的文件内有效;转载 2015-12-08 11:25:15 · 549 阅读 · 0 评论 -
【转】c#中关于文件的操作
原文:http://www.cnblogs.com/wangshenhe/archive/2012/05/09/2490438.html文件与文件夹操作主要用到以下几个类: 1.File类: 提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。 msdn:http://msdn.microsoft.转载 2015-12-08 09:55:39 · 333 阅读 · 0 评论 -
开发随笔
1.ngui的层与层之间的关系与uiroot所在的层有密切的关系。 2.如果要旋转一个向量,可以用如下方法: Quaternion currentYawRotation = Quaternion.Euler(0, currentYawRotationAngle, 0); // Set the position of the camera on the x-z plane to原创 2015-12-07 16:02:51 · 322 阅读 · 0 评论 -
ngui中scrollview的使用
UIScrollView制作滑动列表,可横向,竖直展示一些列表在固定可视范围内UIScrollVIew只是一个可滑动的UI组件如果需要制作复杂的可视区域UI需要配合使用UIPanel与UIGrid这样更方便UI的展示a.创建一个2D UI Root,在NGUI菜单上创建一个Scroll Viewb.在ScrollView上转载 2016-04-16 15:37:36 · 3133 阅读 · 0 评论 -
c#中Thread的基本使用
下面再对此进行详细描述.Thread类的构造函数有2类: 一种是不带参数(ThreadStart 委托) -- public Thread(ThreadStart start);另一种是带参数(ParameterizedThreadStart 委托) --public Thread(ParameterizedThreadStart start);转载 2016-05-24 20:35:18 · 24052 阅读 · 0 评论 -
unity多线程
==================转载地址=============================中文翻译地址,由Xiaoke翻译,转载来自1vr.cn:http://blog.1vr.cn/?p=624英文原始地址,老外的博客,打不开请翻墙:http://unitygems.com/threads/==================转载地址===================转载 2016-05-24 21:26:29 · 2132 阅读 · 0 评论 -
Unity的StartCoroutines
写在前面:这是别人的博客评论,感觉一语中的,希望看到这篇博客的人能够记住!其实协程并没有那么复杂,网上很多地方都说是多线程什么的,真是误人子弟。。在传统实时游戏中,在update中要延迟执行一些代码,或者满足一定条件后执行一些代码。需要在update添加一个计时器,用当前时间来减去前面记录的时间来判断执行。当这种情况越来越多的时候,会添加很多变量和代码,代码就越来越乱。。转载 2016-05-24 21:54:58 · 1165 阅读 · 0 评论 -
对yield return的理解
在学习unity3d的时候很容易看到下面这个例子:1 void Start () {2 StartCoroutine(Destroy());3 }4 5 IEnumerator Destroy(){6 yield return WaitForSeconds(3.0f);7 Destroy(gameObject);8 } 这个函数干转载 2016-05-24 22:21:14 · 9230 阅读 · 1 评论 -
对Unity协程的深入理解
Unity协程(Coroutine)原理深入剖析再续 By D.S.Qiu尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 前面已经介绍过对协程(Coroutine)的认识和理解,主要讲到了Unity引擎在执行协程(Coroutine)的原理(Unity协程(Coroutine)原理深入剖析)转载 2016-05-24 22:22:36 · 5640 阅读 · 0 评论 -
update,fixedupdate,lateupdate的区别,解决跟随相机抖动
MonoBehaviour.Update 更新 当MonoBehaviour启用时,其Update在每一帧被调用。 MonoBehaviour.FixedUpdate 固定更新 当MonoBehaviour启用时,其 FixedUpdate在每一帧被调用。 处理Rigidbody时,需要用FixedUpdate转载 2016-05-26 09:57:43 · 4231 阅读 · 1 评论 -
Unity中Awake与Start函数
Unity中Awake与Start函数的调用情况总结 在Unity中编写脚本时,有一系列的可重写(override)函数供我们使用,其中的Awake与Start两个函数作为初始化与设置之用,几乎在每个脚本中都要用到。因此,正确的把握这两个函数的调用时机,就能让我们在程序开发过程中避免一些错误,提高开发效率。比较懒,所以就没有上图,欢迎大家的批评指正: )转载 2016-05-09 09:49:27 · 696 阅读 · 0 评论 -
(来自知乎)Unity反射机制的理解
Unity3d是如何调用MonoBehaviour子类中的Start等方法的?Unity3d开发,需要继承MonoBehaviour,实现Start方法:using UnityEngine;using System.Collections;public class ExampleClass : MonoBehaviour { private GameObjec转载 2016-07-20 09:19:01 · 11798 阅读 · 1 评论 -
关于Canvas Scaler的使用
很多人都知道,Unity在移动设备上的自适应依靠的是组件本身的Anchors和Canvas上的CanvasScaler但是很多人却不知道应该怎么正确的去设置CanvasScaler的各项属性,这里我简单的说一下,希望大家谨记!默认的设置:然后在移动设备上应该选择Scale With Screen Size:重点说一下Reference Resolut转载 2016-08-27 10:42:23 · 1612 阅读 · 0 评论 -
Unity读取文件地址分析
前言:一直有个想法,就是把工作中遇到的坑通过自己的深挖总结成一套相同问题的解决方案供各位同行拍砖探讨。眼瞅着2015年第一个工作日就要来到了,小匹夫也休息的差不多了,寻思着也该写点东西活动活动大脑和手指了。那么今天开始,小匹夫会记录一些平时工作中遇到的坑,以及小匹夫的应对方法,欢迎各位拍砖讨论。那么今天主要讨论一下unity3D在移动端如何动态的读取外部文件,比如csv(txt),xml一类的转载 2016-08-28 10:04:56 · 5638 阅读 · 0 评论 -
c#常用的数据存储分析
前言:可能去过小匹夫博客的盆油们读过这篇对于数据结构的总结,但是小匹夫当时写那篇文章的时候略有匆忙,所以今天进行了一些增改,重新发表在蛮牛。作为程序猿,对于常见的数据结构的掌握是非常必要的,也许这篇文章略显朴实,没有那么花哨的东西,但是小匹夫也希望各位程序向的U3D从业者能喜欢。前段时间小匹夫读过一份代码,对其中各种数据结构灵活的使用赞不绝口,同时也大大激发了小匹夫对各种数据结构进行梳理和转载 2016-08-28 10:12:27 · 4996 阅读 · 10 评论 -
Unity的Anchor使用
RectTransform 中的 Anchors 用来指定每个UI元素相对于父节点内某个矩形对齐.在 Inspector 中可看到,AnchorMin 和 AnchorMax 定义了一个矩形(矩形的边可以重合),这个矩形可以在 Scene 里看到(由四个白色三角标识)。AnchorMin 和 AnchorMax 的值是归一化的,对应表示 AnchorRect 位置在父节点 Rect 中转载 2016-08-27 10:15:27 · 3226 阅读 · 0 评论 -
解读PureMVC框架
http://blog.csdn.NET/kenkao/article/details/50291991作者:吴秦出处:http://www.cnblogs.com/skynet/本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名吴秦(包含链接).参考资料[1] PureM转载 2017-07-13 11:31:06 · 3170 阅读 · 0 评论