- 博客(68)
- 收藏
- 关注
原创 Unity中贴图的导入
Preferences中的Compress Assets on Import是决定资源导入时是否压缩资源,对于贴图资源来说,就是决定导入时是否压缩贴图。而TextureImporter中的贴图格式决定的是贴图的压缩格式。一个是导入(重新导入)时是否压缩一个是如果导入(重新导入)时压缩,应该用什么样的格式压缩。在贴图的Inspector中点击Apply,也是会对贴图重新导入。每次
2015-10-29 20:28:01
3477
原创 Resources.load及AssetBundle.Load加载过程研究
/// <summary>/// 对Resources.Load进行试验./// 试验准备:/// 1.一个Cube预制体,包含一个贴图,放在Resources文件夹下;/// 2.一个只有相机的场景,上面挂着TestScript脚本(也就是本脚本)/// </summary>using UnityEngine;using System.Collec...
2015-06-11 20:47:26
3417
原创 GPU,图形学相关知识
眼睛所看到的颜色、形状、位置等图形信息必须经过GPU的“渲染”,如果没有“渲染”,眼前只是一行行的代码。GPU的“渲染”包括三角形输出率和像素填充率。三角形输出率主要负责描绘图形,也就是建立图形的模形;像素填充率主要负责把绘出的图形填充颜色。众所周知,GPU的性能强弱可通过游戏和软件运行表现出来。因各家GPU支持的格式不同,所以数据包的类型也不同。如果没有对应版本的数据包, 3D游
2015-05-29 14:48:43
1312
原创 C# readonly和const的区别
最重要的区别:readonly字段的值是在运行时才确定的(声明时的值或者在构造函数中确定,可以在声明中和构造函数中都对readonly字段赋值),以后就不能重新赋值。const字段的值是在编译时就确定的(字段声明中的值),以后就不能重新赋值。const还可以修饰局部变量。常数表达式是在编译时可被完全计算的表达式。 因此,对于引用类型的常数,可能的值只能是 string 和 null 引
2015-05-18 15:55:45
767
原创 数字图像基本概念
1.Alpha通道在原有的图片编码方法基础上,增加像素的透明度信息。图形处理中,通常把RGB三种颜色信息称为红通道、绿通道和蓝通道,相应的把透明度称为Alpha通道。多数使用颜色表的位图格式都支持Alpha通道。例如:一个使用每个像素16比特存储的位图,对于图形中的每一个像素而言,可能以5个比特表示红色,5个比特表示绿色,5个比特表示蓝色,最后一个比特是阿尔法。在这种情况下,它要么表示
2015-02-06 11:51:14
1607
原创 Unity3D 动画 关键帧 FrameRate
There isn't really a framerate as such for character animations. Two consecutive keyframes are separated by a certain amount of time, and you can interpolate the key values at any point between the ke
2014-08-01 20:59:28
3461
转载 匿名方法 与 Lambda 表达式
http://www.cnblogs.com/nokiaguy/archive/2008/06/09/1216166.html
2014-05-27 09:58:23
584
原创 C# 特殊的引用类型string
字符串是 Unicode 字符的有序集合,用于表示文本。String 对象是System.Char 对象的有序集合,用于表示字符串。String 对象的值是该有序集合的内容,并且该值是不可变的。String 对象称为不可变的(只读),因为一旦创建了该对象,就不能修改该对象的值。看来似乎修改了String 对象的方法实际上是返回一个包含修改内容的新 String 对象。如果需要修
2014-04-28 22:33:12
957
原创 Unity 自动内存管理
了解自动内存管理When an object, string or array is created, the memory required to store it is allocated from a central pool called theheap. When the item is no longer in use, the memory it once occup
2014-04-27 19:43:15
1307
原创 Resources文件夹
The Resources class allows you to find and access Objects including assets.In the editor, Resources.FindObjectsOfTypeAll can be used to locate assets and scene objects.Assets文件夹下面可以存在多个"Resource
2014-04-25 14:43:12
5585
原创 substring indexof split replace
项目中经常用到这几个函数,就总结下:substringindexofsplitreplacesubstring 方法 str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str;str=str.substring(int beginIndex,int endIndex);
2014-04-24 15:43:19
890
原创 在运行时脚本中使用UnityEditor命名空间
在运行时脚本中使用UnityEditor命名空间,假如该脚本被挂在场景中的物体上,那么:可以这样做,在Unity编辑器中运行时也会正常运行,不会报错。但是当我们打包时会出现以下错误(如果该脚本没有被挂在任何一个脚本上,那么打包时不会包含该脚本,就不会出错):The typeor namespacename `UnityEditor'could not be found. A
2014-04-09 08:56:58
6785
原创 Unity 关于摄像机的想法
首先,我们要理解摄像机是如何渲染物体的:摄像机对游戏世界的渲染范围的边界是一个矩形。根据Camera属性Projection的不同,可以对摄像机分为两类来讨论:1.Perspective屏幕矩形随离摄像机的距离改变而改变摄像机对游戏世界的渲染范围是一个平截头体,渲染边界是一个矩形,用与near clippingplane或者far clippingplane平行的平面截
2014-03-27 10:57:49
2045
原创 Event
Event:UnityGUI 事件.事件对应于用户输入(按键和鼠标操作),或者是UnityGUI layout or rendering events。For each event OnGUI is called in the scripts; so OnGUI is potentially called multiple
2014-03-21 15:10:41
683
原创 NavMesh Layers (Pro only)
最优路径:两点之间的最优路径,是指代价(cost)最小的路径。每一个NavMesh都分配一个层级,每一个层级对应一定的代价值。所以总代价值,就是两点之间所经过的NavMesh的层级代价值的和。当代价值相同时,最优路径便是所有路径中的最短路径了。不推荐设置层的代价值小于1,这种情况下不能保证获取最佳路径 有三个内置的层级:Default:默认的层级Not walk
2014-03-19 14:18:52
1114
原创 NavMeshAgent
1.Radiusagent的躲避半径。在这个半径范围内,别的agent和obstacle将无法通过。其中obstacle是指添加了Nav Mesh Obstacle组件的物体。2.Speedagent的最大速率,float类型的标量,而非矢量。一般情况下,刚开始时,velocity为Vector3.zero,在acceleration的作用下逐渐趋向于desiredveloci
2014-03-18 21:27:40
7588
原创 Camera.ScreenToWorldPoint
Camera.ScreenToWorldPointVector3 ScreenToWorldPoint(Vector3 position);将屏幕坐标转换为世界坐标。如何转换?假如给定一个所谓的屏幕坐标(x,y,z),如何将其转换为世界坐标?首先,我们要理解摄像机是如何渲染物体的:摄像机对游戏世界的渲染范围是一个平截头体,渲染边界是一个矩形,用与near clippingpla
2014-03-13 16:54:57
7516
原创 Mecanim 动画曲线
在Mecanim中,我们可以设置一个参数值A,这个参数值随某个动画剪辑的播放时间变化而变化。也就是说,我们建立一个函数:这个函数的自变量类型为float,范围为0.0到1.0,其中0.0表示动画开始播放,1.0表示动画播放结束,这个函数的因变量A也就是函数值 ,由我们通过在函数曲线,也就是动画曲线中进行编辑。 如何获得某个时刻的函数值?我们可以在Animator中添加一个同名的
2014-03-11 20:19:17
932
原创 Debug.Log的妙用
Debug.Logstatic functionLog(message: object): void;static void Log(object message);static defLog(message as object) as voidstatic functionLog(message: object,context:Object): void;stat
2014-03-11 09:47:12
8827
原创 Rich Text
Rich Text可以用于GUI elements和text meshes,GUIStyle, GUIText 和TextMesh 类都有 Rich Text 设置属性。也可以用在Debug.Log函数中,使测试游戏,打印输出信息时更显眼。Rich Text使用与HTML类似的标记格式,如:We are not amusedWe are largely unaffected还
2014-03-11 09:29:19
1003
原创 OnApplicationPause
MonoBehaviour.OnApplicationPause(bool)有一个bool类型的参数当程序暂停时,执行一次,传入参数true当程序继续时,再执行一次,传入参数false。 用于当按Home键,或者其他意外情况:接到短信,电话,手机休眠等,检测到游戏暂停,调用OnApplicationause,弹出暂停界面
2014-03-08 16:26:08
2496
原创 MenuItem的用法
1.MenuItem是编辑器属性(Editor Attributes)类,所以在使用它之前要添加一句:using UnityEditor;2.常规用法:MenuItem属性写在一个静态方法之前;MenuItem必须定义子菜单,像这样写:[MenuItem("Delete")] 是不行的。using UnityEngine;using System.Collections;
2014-03-08 14:53:46
12626
原创 Blend Tree
Blend Tree是融合了的动画状态,一个Blend Tree就是一个AnimationController中的一个动画状态(Animation State),与普通的动画状态是一样的,只不过它的动画是融合的动画。阈值(threshold):一个Blend Tree中融合了多个动画剪辑,每一个动画剪辑在其中占一定的权重,权重的和为1.我们可以使用动画参数来调节不同的动画剪辑在blend tr
2014-03-01 11:08:17
2331
原创 物理引擎:Rigidbody
1.Constraints限制Rigidbody在某个方向轴上的移动和旋转。脚本控制方法: void Start () { rigidbody.constraints =RigidbodyConstraints.FreezePositionY|RigidbodyConstraints.FreezePositionZ|rigidbody.constraints; } 通
2014-02-24 14:13:59
3696
原创 physics
添加Rigidbody,添加力来移动物体,而不是在脚本中改变Transform的position and rotation来移动物体.可以通过脚本来改变Is Kinematic的值,以控制物体引擎是否作用于物体,但这会带来性能开销,应谨慎使用。通常情况下,你不应该通过改变Transform position的值来改变静态碰撞器(无Rigidbody的碰撞器)的位置,因为这会对物理引擎的
2014-02-21 17:27:22
1325
原创 Unity 碰撞检测
unity碰撞检测(1)检测Trigger:双方都有Collider。双方至少有一个Rigidbody(任意一方都可以),有一个Trigger(任意一方都可以).若只有一个Rigidbody,则碰撞时,该Rigidbody一定要是运动的。碰撞后发出的OnTriggerEnter,OnTriggerStay,OnTriggerExit都可以在双方所附加的脚本上接收。其中的参数
2014-02-21 16:40:17
2235
原创 Unity 脚本编译的四个阶段
脚本编译有四个独立的阶段,正在被编译的脚本可以引用同一阶段或前一阶段的脚本内容,不能引用在后面阶段编译的脚本内容。但是如果正在编译的A语言脚本要引用另外一种语言B的脚本内容,则B的脚本必须在A前一阶段编译,同一阶段不行。这种情况下,我们通常把A语言的脚本放在普通的文件夹下面,而把B语言的脚本放在Plugins文件夹下面四个阶段:1.Standard Assets, Pro Standa
2014-02-21 13:59:25
1783
原创 Unity 重力感应
重力感应的三个轴相对于手机屏幕的方向,借用一下别人的图,本人的Android手机在Unity4.3中发现重力感应轴方向正是如此,但是在较低版本中的Unity中却不是这样。不管手机怎样运动或旋转,这三个轴相对于手机的方向总是不变的。所以我们在旋转的过程中可以使某个轴与垂直向下的方向夹角逐渐减小,夹角越小,在该轴上的重力分量值就越大。
2014-02-20 20:10:23
1392
原创 Unity 摇一摇震动并随机播放音乐
//摇一摇手机震动并随机切换音乐//测量重力感应在各个轴上的最大,最小值using UnityEngine;using System.Collections;public class Shake : MonoBehaviour { public AudioClip []clips; public float newAcceX; public float oldAcceX;
2014-02-20 19:37:18
1789
原创 让Unity游戏后台运行
在PlayerSettings中的Settings for Web Player和Settings for PC,Mac & Linux Standalone下面,都有这么一句 Run in backgroundCheck this if you dont want to stop executing your game if the player looses focus
2014-02-20 10:26:20
21543
4
原创 Unity Input Touch
iPhone和iPod设备支持5点触控,而Androd设备对触控点数量则无限制,随设备的不同的不同,少的可能只支持两点触控,而我的手机可以支持十点触控。通过设置Input.multiTouchEnabled=false和true,可以禁用或启用多点触控,默认为true.
2014-02-19 17:52:15
1594
原创 Unity Input 鼠标模拟
Unity官方用户手册里有这么一段话:Mouse SimulationOn top of native touch support Unity iOS/Android provides a mouse simulation. You can use mouse functionality from the standardInput class.翻译为:鼠标模拟除了原有
2014-02-19 14:27:25
3882
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人