【Unity3D引擎】
文章平均质量分 56
杜晓萌
这个作者很懒,什么都没留下…
展开
-
新的开始
30岁之前,工作就是男人的家。这将会是自己全新的开始,以Unity3D引擎的学习为起点,为了自己的家,自己的家人,全心投入。原创 2013-04-10 08:44:17 · 928 阅读 · 0 评论 -
Unity中鼠标左键按下,拖拽物体移动
把这段脚本拖给想要拖拽的物体,然后加上碰撞盒就可以了。 private Vector3 _vec3TargetScreenSpace;// 目标物体的屏幕空间坐标 private Vector3 _vec3TargetWorldSpace;// 目标物体的世界空间坐标 private Transform _trans;// 目标物体的空间变换组件 pri原创 2014-01-20 14:23:10 · 47771 阅读 · 11 评论 -
Unity中基于高度图的地形系统总结
Unity中基于高度图的地形系统总结一、高度图 什么是高度图?从狭义上来理解,高度图是一张带有灰阶的图片,图片中的每个像素具有不同的灰度值,这些灰度值代表了不同的高度:像素的灰度值越大,表示对应的高度越高;像素的灰度值越小,表示对应的高度越低。从编程的角度来理解,高度图是一个二维数组。因为从高度图映射到一个地形,需要创建一个与高度图大小相同的顶点网格,所谓大小相同指的是原创 2014-03-16 08:29:36 · 19133 阅读 · 2 评论 -
序列化(serialization)
序列化(serialization) 序列化指的是将对象的状态信息转换为可以存储或传输的形式的过程。与序列化相对的过程是反序列化,它是通过从存储区读取对象的状态信息,重新创建该对象的过程。 这两个过程的结合,可以实现数据的有效存储与传输。简言之,序列化就是一个保存对象的过程(将对象存储为二进制序列)。 序列化的目的 1原创 2014-02-06 18:39:36 · 1874 阅读 · 0 评论 -
一个摄像机控制类的总结
一个摄像机控制类的总结实现功能: 通过鼠标的操纵,控制摄像机环绕模型对象旋转,从而进行对模型对象的观察。 设计思路: 首先根据摄像机的当前方位,计算它应该到达的目标方位; 然后通过插值运算,将摄像机逐帧移动到该目标方位。 过程描述:1、 计算摄像机的目标方位。 先计算摄像机本地坐标系轴向与原创 2014-07-31 21:43:46 · 2148 阅读 · 0 评论 -
Unity客户端通信测试问题处理(二)
Unity客户端通信测试问题处理(二)在客户端的通信测试过程中,场景加载的问题给自己带来了不小的麻烦。因为消息的解析方法在单独的监听线程中调用,这也就意味着无法在消息的解析方法中调用Unity自身的API了。本来是打算在接收到场景切换的消息后,直接在解析方法中调用协同程序StartCoroutine,来实现场景的异步加载,可是现在一旦调用就会提示以下错误:原创 2014-11-13 20:54:00 · 4461 阅读 · 0 评论 -
Unity客户端通信测试问题处理(一)
Unity客户端通信测试问题处理(一) 最近在测试程序的通信模块时,遇到了一个问题:Unity的API函数只能在主线程中调用,而作为客户端程序,我单独启用了一个监听线程来接收服务端发送的消息,消息接收后的解析函数也由该线程一并调用。那么问题来了,在解析函数之中,我将不能调用Unity的任何API函数。 之前因为没有意识到这个问题,许多处理都是直接放在原创 2014-11-09 13:51:15 · 2595 阅读 · 0 评论 -
最近一个项目中关于NGUI部分的总结
最近一个项目中关于NGUI部分的总结 在自己最近的一个项目中,软件的界面部分使用了NGUI来进行制作。在制作过程中,遇到了一些问题,也获取了一些经验,总结下来,作为日后的积累。 1、NGUI图集的使用。空调项目是第一个自己正儿八经的制作完整图集的项目,感受颇深。在使用NGUI制作界面时,图集的选用是一个关键,因为它直接关系到了drawcall的数量。原创 2014-07-30 22:22:41 · 3985 阅读 · 0 评论 -
基于平均法线实现顶点网格变形控制的总结
基于平均法线实现顶点网格变形控制的总结 顶点网格的变形功能,这在Unity官方商店的技术展示Demo中有一个案例。自己就是在这个案例的基础上进行的学习。案例中的功能全部都是用JS实现的,自己依样画葫芦,改成了C#,并对其中一些核心代码的工作原理进行了分析与学习,最终形成了这篇总结。其中的不正之处欢迎大家批评指出。 看到文章的标题,我们可能会想,要完成网格模型的变原创 2014-03-31 07:09:37 · 8191 阅读 · 14 评论 -
基于射线检测的物体坐标调整之思路总结
基于射线检测的物体坐标调整之思路总结PS : 自己想来想去,起了这么个标题,读起来总有些别扭: )起因: 在使用鼠标拖动物体移动时,如果在物体的移动方向(X、Y、Z)上不加任何限制,那么拖动物体的效果是较为不可控的,比方说,设想一个场景,我们需要通过拖动工具来处理物体的表面(擦拭、打磨等),若不加任何移动方向的限制,就有可能会出现工具穿透物体的现象,无法与它操作的表原创 2014-03-27 23:06:47 · 2779 阅读 · 0 评论 -
单例模式在Unity中的应用
起因:每个游戏场景中都会有许多的游戏对象,而各个游戏场景之间也是同等的关系。如何去管理它们,是我们要解决的问题。 场景中各脚本间的直接访问,会在各脚本间形成一个巨大而又混乱的网络,这给以后代码的维护带来了极大的困难。为了避免这种因交互访问而带来的过度耦合情况,我们取消掉场景中各脚本间的直接交互,取而代之的是,让所有脚本都只与场景中的一个特定脚本交互。 在刚开原创 2014-02-01 22:03:08 · 6599 阅读 · 0 评论 -
图形绘制管线的学习笔记
什么是管线?管线,它用于描述一种过程,该过程可能涉及两个或者多个独特的阶段。这是摘自《OpenGL超级宝典》中的说法。 在《实时计算机图形学》一书中,将图形绘制管线分为三个主要阶段:应用程序阶段,几何阶段,光栅阶段。 应用程序阶段:使用高级编程语言(如C、C++、Java)等进行程序开发,主要和CPU、内存打交道。在该阶段的末端,几何体数据(顶点坐标、法向量、纹原创 2014-02-01 00:34:05 · 3074 阅读 · 0 评论 -
关于稳定物理关节的一次尝试
之前自己使用Unity3D引擎的关节结构制作了一套联动系统,来模拟装载机的前车架的活动。在只进行演示的前提条件下,关节联动结构工作的很好。但是,当涉及到碰撞发生时,整个物理关节结构的稳定性便出现了问题,会发生关节错位,甚至因碰撞而完全失灵的情况。 为了解决这个问题,自己想到了把物理系统与碰撞进行分离的方式。即负责处理碰撞的部分不具有刚体的属性,是纯图形的。而负责动作的部分,也就是物原创 2013-04-12 11:24:09 · 921 阅读 · 0 评论 -
稳定物理结构总结
如何把物理结构做的稳定,是自己以来遇到的一个问题。使用物理系统,可以很好地实现一些现实中存在的效果,如一系列机械结构的组合运动,碰撞后的反应等。但是,在使用物理系统的同时,也会带来一些麻烦的问题,简言之就是物理系统的稳定性问题。 物理系统的稳定性问题,主要表现在有外力强制作用于物理系统时,如具备物理结构的对象发生了恶意的碰撞,物理系统就会出现不稳定的现象,如关节错位,失灵,物理原创 2013-04-17 10:54:18 · 1406 阅读 · 0 评论 -
Unity在一个场景中使用其他场景烘焙的物体
因为自己的需要,要在不同的场景中分别进行物体的烘焙,然后把在各场景中烘焙好的物体拿到一个综合的场景中来使用。自己刚这么干的时候,发现烘焙好的物体拿到了其他的场景中就失去了烘焙的效果。经过一番检查,发现问题原来是出在了光照贴图索引的设置上(Lightmap Index)。 假设我们有A、B、C三个烘焙场景和D一个应用场景,那么我们在A、B、C中分别进行完烘焙工作后,都会在各自的场原创 2013-10-29 21:07:47 · 9368 阅读 · 2 评论 -
一点心得:在默认启动场景进行场景异步加载的操作
一点心得:在默认启动场景进行场景异步加载的操作场景异步加载,目的是为了增强用户的体验,让用户在不知不觉中度过场景加载的等待时间。在主场景异步加载的过程中,需要一个播放过场动画的过度场景的配合。 场景间的切换,会导致游戏对象的销毁。而有些对象,我们并不想让它随着场景的切换而销毁。这时我们便需要将对象处理为切换场景时不销毁(DontDestroyOnLoad)。 我们将二者相结合,原创 2013-12-30 15:41:42 · 1702 阅读 · 0 评论 -
修改对象的颜色
public Color newColor = Color.grey;private MeshFilter _meshFilter;private Mesh _mesh;private Color[] _colors; void Awake(){ _meshFilter = gameObject.GetComponentMeshFilter>();原创 2013-12-31 21:31:18 · 1429 阅读 · 0 评论 -
Unity中鼠标拾取的检测代码
/// /// 当前视角的摄像机 /// public Camera _camPlayer; /// /// 鼠标射线 /// private Ray _ray; /// /// 射线碰撞的结构 /// private RaycastHit _rayhit; ///原创 2014-01-05 21:40:36 · 6854 阅读 · 0 评论 -
Unity 异步加载场景的代码
> } > } } //异步加载场景的方法 IEnumerator LoadSceneAsync(> yield return _async; }原创 2013-12-25 23:46:52 · 4479 阅读 · 0 评论 -
Unity中鼠标点击地面控制人物移动
代码实现了鼠标点击控制人物移动的功能,人物会朝向鼠标点击的目标点走去,双击鼠标为跑动。以后还会再添加鼠标点击时的提示效果。 /// /// 摄像机对象 /// public Camera _camPlayer; /// /// 玩家的变换组件 /// public Transform _transPlayer;原创 2014-01-08 21:15:00 · 14229 阅读 · 0 评论 -
C#中的lock关键字
在实现Unity中的单例模式时看到的,讲解Lock的用法,作者写的明白,转过来自己收藏一下。原文连接 : http://kb.cnblogs.com/page/88513/ 摘要:lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。 前几天与同事激烈讨论了一下,有一点收获,记录起来转载 2014-01-22 11:59:49 · 8148 阅读 · 0 评论 -
Unity中Awake与Start函数的调用情况总结
Unity中Awake与Start函数的调用情况总结 在Unity中编写脚本时,有一系列的可重写(override)函数供我们使用,其中的Awake与Start两个函数作为初始化与设置之用,几乎在每个脚本中都要用到。因此,正确的把握这两个函数的调用时机,就能让我们在程序开发过程中避免一些错误,提高开发效率。比较懒,所以就没有上图,欢迎大家的批评指正: )1、 Awake函原创 2014-03-23 08:00:03 · 19312 阅读 · 6 评论