运行联结在3ds3ds max2010教程中叫什么名字

3dsMax2010材质贴图灯光表现技法 _百度百科
收藏 查看&3dsMax2010材质贴图灯光表现技法本词条缺少概述,补充相关内容使词条更完整,还能快速升级,赶紧来吧!作&&&&者数码创意编著ISBN978-7-121-11734-3定&&&&价76.00元(含DVD光盘1张)出版时间2010年10月开&&&&本16开
书名3ds Max 2010材质贴图灯光表现技法
内 容 简 介
本书是全面突破系列丛书中与材质贴图灯光相关的图书本书以基础知识和实例使用相结合的方法向读者详细介绍3ds Max 2010材质贴图灯光的原理和运用本书内容包括材质基础知识贴图基础知识mental ray材质VRay材质和VRay渲染设置灯光与摄影机制作真实的质感效果以及室内日光效果表现客厅室内灯光效果表现卧室和室外日光效果表现别墅随书附带光盘中包含全书各个实例的工程文件材质贴图和最终效果图
本书适合于3ds Max初中级读者主要包括各大院校艺术设计类学生和从事三维设计的设计师随着视觉艺术逐渐普及人们的欣赏能力不断提高这就给室内设计师提出了更高的要求众所周知任何一个好的设计方案要得到认可都需要借助一些视觉效果表现形式其中设计效果图是非常重要的一个环节为了满足广大室内设计爱好者和室内设计工作者学习新技术掌握新理念的需要笔者专门策划了全面突破系列丛书
本书为3ds Max 2010材质贴图灯光表现技法主要讲解3ds Max 2010材质贴图灯光的制作和应用技法
本书特色鲜明结构清晰文字通俗易懂实例讲解详细希望读者通过本书的学习能够成为室内设计高手
全面突破系列图书是由新知互动策划并参与编写的我们希望 全面突破系列图书能够成为您学习过程中的良师益友由于作者水平有限书中疏漏之处在所难免期待您的批评和指正提出宝贵的建议您可以通过和我们联系
者Chapter 01 材质基础知识
1.1 材质概述 2
1.1.1 材质的构成 2
1.1.2 材质和灯光的关系 2
1.2 材质编辑器 4
1.2.1 材质编辑器界面 4
1.2.2 材质编辑器菜单 4
1.2.3 材质编辑器工具 5
1.2.4 示例窗 7
1.2.5 材质/贴图浏览器 8
1.2.6 明暗器基本参数卷展栏 10
1.2.7 基本参数卷展栏 10
1.2.8 扩展参数卷展栏 11
1.2.9 贴图卷展栏 12
1.2.10 超级采样卷展栏 14
1.2.11 动力学属性卷展栏 15
1.2.12 DirectX?管理器卷展栏 15
1.2.13 mental ray?连接卷展栏 15
1.3 材质的类型 16
1.3.1 高级照明覆盖材质 16
1.3.2 建筑材质 17
1.3.3 混合材质 20
1.3.4 合成材质 20
1.3.5 双面材质 21
1.3.6 Ink?'n Paint?材质 21
1.3.7 无光/投影材质 27
1.3.8 变形器材质 27
1.3.9 多维/子对象材质 28
1.3.10 光线跟踪材质 30
1.3.11 壳材质 33
1.3.12 虫漆材质 34
1.3.13 顶/底材质 34
Chapter 02 贴图基础知识
2.1 贴图概述 36
2.1.1 贴图的原理与贴图坐标 36
2.1.2 真实世界贴图 36
2.2 2D贴图 37
2.2.1 2D贴图坐标参数设置 37
2.2.2 噪波贴图 38
2.2.3 渐变贴图 39
2.2.4 渐变坡度贴图 40
2.2.5 平铺贴图 42
2.2.6 棋盘格贴图 44
2.2.7 位图贴图 44
2.2.8 漩涡贴图 47
2.3.1 3D贴图坐标参数设置 48
Perlin 大理石贴图 48
凹痕贴图 48
斑点贴图 49
波浪贴图 50
大理石贴图 51
灰泥贴图 51
木材贴图 52
泼溅贴图 52
衰减贴图 53
细胞贴图 55
烟雾贴图 56
噪波贴图 56
2.4 合成器贴图 57
RGB 相乘贴图 57
合成贴图 58
2.5 颜色修改贴图 59
RGB染色贴图 59
顶点颜色贴图 60
输出贴图 60
颜色修正贴图 62
2.6 其他贴图 64
反射/折射贴图 64
光线跟踪贴图 65
平面镜贴图 68
薄壁折射贴图 69
法线凹凸贴图 70
Chapter 03 mental ray 材质
3.1 ProMaterial材质 72
3.1.1 陶瓷 ProMaterial 材质 72
3.1.2 混凝土 ProMaterial?材质 73
3.1.3 普通 ProMaterial 材质 74
3.1.4 玻璃 ProMaterial?材质 75
3.1.5 硬木 ProMaterial?材质 76
3.1.6 砖石/混凝土空心砖 ProMaterial 材质 77
3.1.7 金属 ProMaterial?材质 78
3.1.8 金属漆 ProMaterial 材质 80
3.1.9 镜面 ProMaterial?材质 81
3.1.10 塑料/乙烯基 ProMaterial?材质 81
3.1.11 实心玻璃 ProMaterial?材质 83
3.1.12 石头 ProMaterial?材质 84
3.1.13 墙漆 ProMaterial?材质 85
3.1.14 水 ProMaterial?材质 86
3.2 mental ray建筑与设计材质 86
3.2.1 主要材质参数卷展栏 86
3.2.2 BRDF卷展栏 90
3.2.3 自发光发光卷展栏 90
3.2.4 特殊效果卷展栏 91
3.2.5 高级渲染选项卷展栏 92
3.2.6 快速光滑插值卷展栏 93
3.2.7 特殊用途贴图卷展栏 94
3.2.8 通用贴图卷展栏 94
Chapter 04 VRay 材质与VRay渲染设置
4.1 VRayMtl 96
4.1.1 VRayMtl的基本界面 96
4.1.2 VRay发光材质 98
4.1.3 VRay材质包裹器 99
4.1.4 VRay材质的简单运用 99
4.2 VRay 渲染设置 105
4.2.1 帧缓存卷展栏 105
4.2.2 帧缓冲器 106
4.2.3 全局开关卷展栏 106
4.2.4 图像采样器抗锯齿卷展栏 107
4.2.5 自适应DMC采样器卷展栏 108
4.2.6 自适应图像细分采样器卷展栏 108
4.2.7 间接照明全局照明卷展栏 109
4.2.8 发光贴图卷展栏 109
4.2.9 灯光缓存卷展栏 111
4.2.10 全局光子贴图卷展栏 111
4.2.11 焦散卷展栏 112
4.2.12 颜色映射卷展栏 112
4.2.13 环境卷展栏 113
4.2.14 DMC采样器卷展栏 113
4.2.15 相机卷展栏 113
4.3 VRay优化渲染 114
4.3.1 设置光子图渲染参数 114
4.3.2 设置成品图渲染参数 115
Chapter 05 灯光与摄影机
5.1 标准灯光 118
5.1.1 目标聚光灯 118
5.1.2 自由聚光灯 120
5.1.3 目标平行光 121
5.1.4 自由平行光 121
5.1.5 泛光灯 122
5.1.6 天光 122
5.1.7 mr区域泛光灯 123
5.1.8 mr区域聚光灯 123
5.2 光度学灯光 124
5.2.1 目标灯光 124
5.2.2 自由灯光 124
5.3 光域网的运用 125
5.3.1 制作指定材质 125
5.3.2 布置灯光 128
5.4 VRay灯光 130
5.4.1 VR-光源 130
5.4.2 VR-太阳 131
5.4.3 VRay灯光的简单运用 131
5.5 摄影机 134
5.5.1 目标摄影机 134
5.5.2 VR-物理摄影机 135
Chapter 06 制作真实的质感效果
6.1 制作金属质感 138
6.1.1 为对象制作材质 138
6.1.2 为场景布置摄影机和灯光 141
6.1.3 添加HDRI贴图并设置渲染参数 142
制作车漆质感 144
6.2.1 为汽车部件制作材质 144
6.2.2 为场景布置摄影机和灯光 148
6.2.3 设置图像渲染参数 150
6.3?制作陶瓷质感 152
6.3.1 制作材质 152
6.3.2 为场景布置灯光 159
6.3.3 设置图像渲染参数 161
6.4制作玻璃质感 162
6.4.1 制作材质 162
6.4.2 为场景布置灯光 169
6.4.3 设置图像渲染参数 170
6.5?制作石材质感 173
6.5.1 制作材质 173
6.5.2 为场景布置灯光 178
6.5.3 设置光子图渲染参数 179
6.5.4 成品渲染输出 181
Chapter 07 室内日光效果表现 客厅
7.1 理论指导 184
7.1.1 设计风格 184
7.1.2 技术分析 184
7.2 实践体验 184
7.2.1 制作场景 184
7.2.2 合并外部模型 197
7.2.3 制作主体材质 199
7.2.4 制作家具材质 205
7.2.5 制作其他材质 208
7.2.6 为场景布置灯光 213
7.2.7 设置光子图渲染参数 217
7.2.8 成品渲染输出 219
7.2.9 Photoshop后期处理 221
Chapter 08 室内灯光效果表现卧室
8.1 理论指导 224
8.1.1 设计风格 224
8.1.2 技术分析 224
8.2 实践体验 224
8.2.1 制作场景 224
8.2.2 制作主体材质 232
8.2.3 制作家具材质 235
8.2.4 制作灯具材质 239
8.2.5 制作其他材质 243
8.2.6 为场景布置灯光 246
8.2.7 设置光子图渲染参数 248
8.2.8 成品渲染输出 250
8.2.9 Photoshop后期处理 252
Chapter 09 室外日光效果表现别墅
9.1 理论指导 260
9.1.1 设计风格 260
9.1.2 技术分析 260
9.2 实践体验 260
9.2.1 制作场景 260
9.2.2 合并外部对象 270
9.2.3 制作材质 271
9.2.4 为场景布置摄影机和灯光 283
9.2.5 设置光子图渲染参数 285
9.2.6 成品渲染输出 287
9.2.7 Photoshop后期处理 288
新手上路我有疑问投诉建议参考资料 查看完美风暴:3dsMax2010高级建模实例精讲 _百度百科
收藏 查看&完美风暴:3dsMax2010高级建模实例精讲本词条缺少概述、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!作&&&&者达达视觉ISBN3出版时间&日开&&&&本&16开
定价: 79.80元
完美风暴:3ds Max 2010高级建模实例精讲针对3ds Max 2010中的各种建模方法和技巧进行了深入而详尽的剖析内容几乎涵盖了3ds Max 2010中的所有建模技术既包括了最简单的几何体组合三维技术建模修改复合物体的创建等基础技术又包括了多边形建模细分建模及空间扭曲等高级技术笔者首先从制作简单的三维模型入手然后针对各种功能命令展开详细的讲解并精选了如商务手机模型战斗机器人模型终结者头部模型及概念赛车模型等十余个经典实例带领读者进行深入学习使读者在动手的过程中能够亲身体会到3ds Max的神奇之处
完美风暴:3ds Max 2010高级建模实例精讲的讲解角度新颖理论丰富扎实实例精美实用讲解细致流畅不仅适用于三维技术的爱好者也适用于三维动画影视广告建筑装饰游戏虚拟现实等行业的从业人员还可以作为电脑培训班及电脑学校的3ds Max教学用书
完美风暴:3ds Max 2010高级建模实例精讲附赠三张DVD光盘其内容主要包含书中实例的部分素材文件模型文件最终渲染效果文件及视频教学文件以帮助读者在设计过程中更好更快地完成任务第1章 建模基础知识
1.1 简单建模概述
1.2 创建二维图形
1.3 将二维图形转换为三维模型
1.3.1 车削命令
1.3.2 挤出命令
1.3.3 倒角命令
1.4 创建三维模型
1.4.1 标准基本体
1.4.2 扩展基本体
1.4.3 编辑修改三维模型
1.4.4 常用三维模型修改命令
1.5 网格编辑命害响应用
1.6 认识可编辑多边彤命令
1.7 复合理模
1.7.1 布尔运算
1.7.2 放样
1.7.3 图形合并
第2章 制作简单模型
2.1 制作台灯操里
2.1.1 台灯模型简介
2.1.2 制作陶瓷底座
2.1.3 制作金属座灯头和灯泡
2.1.4 制作灯罩及金属架
2.2 制作文件架螟型
2.2.1 制作文件架外框
2.2.2 制作文件架
2.3 制作mp3旗型
2.3.1 mp3模型简介
2.3.2 mp3模型的制作
2.4 制作女士凉鞋模型
第3章 制作耳机模型
3.1 耳机模型简介
3.2 耳机模型的制作
第4章 制作放映机模型
4.1 放映机模型简介
4.2 放映机模型的制作
4.2.1 通过编辑多边形创建放映机外壳
4.2.2 通过删除面片创建凹洞
4.2.3 通过FFD变形创建出镜头
4.2.4 通过编辑样条线创建扬声器
4.2.5 组合标准几何体以创建后部按钮
第5章 制作欧式梳妆台模型
5.1 欧式梳妆台模型简介
5.2 欧式梳妆台模型的制作
第6章 制作小机器人模型
6.1 小机器人模型简介
6.2 小机器人模型的制作
6.2.1 制作小机器人头部
6.2.2 制作小机器人躯干
6.2.3 制作小机器人手脚
第7章 制作商务手机模型
7.1 商务手机模型简介
7.2 商务手机模型的制作
7.2.1 制作手机翻盖部分
7.2.2 制作手机键盘部分
7.2.3 制作手机小零件部分
第8章 制作小相机模型
8.1 小相机模型简介
8.2 小相机模型的制作
第9章 制作摩托车模型
9.1 摩托车模型简介
9.2 摩托车模型的制作
9.2.1 制作摩托车车身部分
9.2.2 制作摩托车车轮部分
9.2.3 制作摩托车发动机部分
第10章 制作战斗机器人模型
10.1 战斗机器人模型简介
10.2 战斗机器人模型的制作
第11章 制作机器兔子模型
11.1 机器兔子模型简介
11.2 机器兔子模型的制作
11.2.1 制作机器兔子头部
11.2.2 制作机器兔子身体
11.2.3 制作机器兔子腿部
第12章 制作战车模型
12.1 战车模型简介
12.2 制作战车模型
12.2.1 制作战车车身部分
12.2.2 制作战车前部零件
12.2.3 制作车身零件
12.2.4 制作战车车顶武器
12.2.5 制作战车车轮部分
第13章 制作终结者头部模型
13.1 终结者头部模型简介
13.2 制作终结者头部模型
第14章 制作概念赛车模型
14.1 概念赛车模型简介
14.2 制作概念赛车模型
新手上路我有疑问投诉建议参考资料 查看文章分类 - Unity3D
摘要: 1新建一个Cube 设置大小(10,0.5,10),重命名plane;在plane上新建3个cube改名 obstacle;新建一个sphere,和一个cube 分别重命名为player,target。Hierarchy面板如下图所示 2 Window&Navigation打开Naviagtion面板,选中3个obstacle设置如下图:选中plane设置如下图:3 新建一个C#脚本,如下:public class NavTest : MonoBehaviour { public T private NavMeshAgent n...
渡蓝 阅读(1058) |
摘要: 保护资源管理文件的相关内容Unity允许用户使用AssetBundle.CreateFromMemory从一个 byte[]数组中建立一个AssetBundle的对象。在运行传输解密时,可以用这种加密方法来提高安全性和保护用户建立的资源管理中的内容。string url = “/mygame/assetbundles/assetbundle1.unity3d”;IEnumerator Start () {// Start a download of the given URLWWW www = new WWW (url);// Wait for
渡蓝 阅读(716) |
摘要: var Mid:Texture2D;var Mouse:Texture2D;//鼠标图片var mousePos = Vector2.//鼠标的位置private var angle:function Update(){ mousePos = Input.mouseP//获取鼠标位置 angle = 180 – Mathf.Atan2(mousePs.x – 250, Screen.height -mousePs.y – 250) * Mathf.Rad2D//计算选择角度}function OnGUI () { Screen.showCur...
渡蓝 阅读(326) |
摘要: c# codeusing UnityEusing System.Cpublic class example : MonoBehaviour{ public float updateInterval = 0.5F; private double lastI private int frames = 0; void Start() { lastInterval = Time.realtimeSinceS frames = 0; ...
渡蓝 阅读(565) |
摘要: /thread--15.html只是简单地实现了一下几个动作的调用,目前还在实验阶段,也不知道这样的调用方法可以一直延续下去不,当控制状态变得越来越多的时候,怎么样做到不互相影响,并且维护起来也是个问题,希望大家能一起考虑一下。也许可以借鉴一下已有项目的经验。对D3D的空间几何知识是必要的,而这里要注意的是U3D提供了一个方法来判断是否与地面相碰撞,_grounded = (_flags & CollisionFlags.CollidedBelow) != 0; 其中CollisionFlags.CollidedBelow要想获得一
渡蓝 阅读(261) |
摘要: /thread--15.html此代码是最终调试后可行的代码,前面已经试过了很多次别的策略,遇到很多很多棘手的问题,通过下面的制作过程和代码来逐步解释。 脚本:Script_Cube_Trigger_Terrain1.csScript_Cube_Trigger_Terrain3.cs Objects:1、人物资源,需要有CharactorController,不然无法做object的Trigger碰撞响应。2、两个Cube,在其Inspector面板中,将BoxCollider下的IsTrigger属性勾选上,调整该Cube的形状,作为加载
渡蓝 阅读(416) |
摘要: 他们的区别:1、update()函数每帧调用一次。于是在一个性能很好的机器上可能每秒钟调用60次,而在一个性能差一点的机器上可能每秒只调用30次,同一个游戏在不同机器上行为可能不一致。Update受当前渲染的物体,更确切的说是三角形的数量影响,有时快有时慢,帧率会变化2、FixedUpdate()函数在固定的时间间隔内调用,有点像机器 Tick,当处理 Rigidbody 相关物理操作时最好使用 FixedUpdate().FixedUpdate则不受帧率的变化,它是以固定的时间间隔来被调用,那么这个时间间隔怎么设置呢?Edit-&Project Setting-&time下面的F
渡蓝 阅读(200) |
摘要: 需要添加如下引用:System.ConfigurationSystem.DataSystem.EnterpriseServicesSystem.SecuritySystem.XMLusing UnityEusing System.Cusing S using System.D using System.Data.O public class EXCELREADER : MonoBehaviour { DataTable dtYourData = new DataTable(&YourData&); string
渡蓝 阅读(1300) |
摘要: 此代码为vertex shader 和 fragment shader的一个简单示例。Shader &test/dexter1& { Properties { _number(&Section Number&, Range(2,30)) = 10 } SubShader { pass { CGPROGRAM #pragma vertex vert #pragma fragment frag uniform float _ struct appdata { float4 vertex : POSITION; float3...
渡蓝 阅读(111) |
摘要: 动态表面效果着色器,做一做特效倒是比较合适,截图如下:[javascript] view plaincopyprint?Shader&Effects/Plasma&{Properties{_MainTex(&Base(RGB)&,RECT)=&white&{}_ColorBand(&Base(RGB)&,2D)=&white&{}}SubShader{ZTestAlwaysCullOffZWriteOffFog{Modeoff}Pass{CGPROGRAM #pragmavertexvert_i
渡蓝 阅读(364) |
摘要: unity3d Renderer.OnBecameVisible Renderer.OnBecameVisibleRenderer.OnBecameInvisible容易遗忘的两事件例子:[javascript] view plaincopy//EnablesthebehaviourwhenitisvisiblefunctionOnBecameVisible(){enabled=}当在摄影机视线内/视线外 时候触发此事件
渡蓝 阅读(128) |
摘要: 用处:当想销毁物体,但需保留子物体时可以这样Transform.的成员函数:分离当前物体上所有子物体[javascript] view plaincopytransform.DetachChildren();Destroy(gameObject);
渡蓝 阅读(95) |
摘要: 接触Unity 3D 时间不长,看到网上有人问怎么通过Unity来调用Dll,而且发现这个问题似乎是用unity的朋友并不熟悉DLL的使用造成的,正好我使用过C++,对DLL还比较熟悉,因此写了一个小小的教程来谈谈unity的Dll调用方法。1.创建DLL困扰Unity人员的主要问题大概出于Dll不会生成。这个确实比较麻烦,我这里给出一个vs 2008中创建DLL的方法。 1)首先打开vs2008,当然2005或者2003也都差不多。我这里用的是2008. 在C++项目中选择 Win32程序,然后在控制台程序或者win32程序任选一个。 写上项目名字点创建。 2) 任选一个的原因是这里并不重要
渡蓝 阅读(1692) |
摘要: 谈C#中的Delegate引言Delegate是Dotnet1.0的时候已经存在的特性了,但由于在实际工作中一直没有机会使用Delegate这个特性,所以一直没有对它作整理。 这两天,我再度翻阅了一些关于Delegate的资料,并开始正式整理这个C#中著名的特性。本文将由浅入深的谈一下Delegate这个特性。一.Delegate是什么?Delegate中文翻译为“委托”。Msdn中对Delegate的解释如下:C#中的委托类似于C或C++中的函数指针。使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与C或C+
渡蓝 阅读(160) |
摘要: usingUnityEusingSystem.CpublicclassNewBehaviourScript:MonoBehaviour{//UsethisforinitializationvoidStart(){InvokeRepeating(&LaunchProjectile&,1,5);//1秒后调用LaunchProjectile()函数,之后每5秒调用一次}//UpdateiscalledonceperframevoidUpdate(){if(Input.GetButton(&Fire&)){CancelInvo
渡蓝 阅读(158) |
摘要: /wiki/index.php?title=LoadAssetBundleC# - LoadBundle.csusing UnityEusing UnityEusing System.IO;using System.Collections.Gusing System.Security.Cpublic class LoadBundle : EditorWindow{ /// &summary& /// Relative path to AssetBundle fil
渡蓝 阅读(125) |
摘要: 序言 网络游戏,作为游戏与网络有机结合的产物,把玩家带入了新的娱乐领域。网络游戏在中国开始发展至今也仅有3,4年的历史,跟已经拥有几十年开发历史的单机游戏相比,网络游戏还是非常年轻的。当然,它的形成也是根据历史变化而产生的可以说没有互联网的兴起,也就没有网络游戏的诞生。作为新兴产物,网络游戏的开发对广大开发者来说更加神秘,对于一个未知领域,开发者可能更需要了解的是网络游戏与普通单机游戏有何区别,网络游戏如何将玩家们连接起来,以及如何为玩家提供一个互动的娱乐环境。本文就将围绕这三个主题来给大家讲述一下网络游戏的网络互连实现方法。 网络游戏与单机游戏 说到网络游戏,不得不让人联想到单机游戏,实..
渡蓝 阅读(230) |
摘要: Unity 是一个以 Mono 为基础的游戏开发环境,能同时支持三种脚本语言,包括 C#、Javascript 和Boo (类似 Python)。由于Unity 的开发工具暂时只有 Mac 的版本,所以暂时未能测试。但是它有很详细的文档,看上来很易用,所以就从文字上学习它的Script 使用方式。根据一些Tutorial 及参考手册,我用 Graphviz 画了一个 (我认为) 最核心的 UML 类别图:从这个类别图我们可以理解它的结构,及如何把一些常用功能映射至这系统里,以下分节讨论。GameObject 和 ComponentUnity 的执行环境里,会有一个场境 (Scene)。这个场境
渡蓝 阅读(265) |
摘要: /forum/read.php?tid=39鹰大的这个教程的确很棒,仿佛没有中文版? 我随便翻一下,自己加深理解,也给大家分享一下,翻译就贴在这个帖子里,源文件请移步上面的连接下载,谢谢About this tutorial我一直认为unity需要一个好一点的多人网络的教程。当我开始用unity网络功能的时候,我感觉unity自带的例子太混乱了;一个好的网络功能的例子应该包括源文件,这样你可以迅速找到你需要的资料。由于这个想法,我决定参加UniKnowledge比赛并且终于完成了一个网络功能的教程,我希望这个教程包括了你所需要的所有的内容。这个教程介
渡蓝 阅读(341) |
摘要: 同时使用Unity 3D和iOS的UIScrollView会发现UIScrollView经常莫名其妙的不能滚动了在Unity 3D的论坛里找到解决方法:/threads/100066-UIScrollView-bugs-out-when-drawn-over-Unity.The solution is actually simple, as described here: /support/documenta...-MainLoop.html in appcontroller.mm disable CADDi.
渡蓝 阅读(51) |
摘要: 概要Unity的默认项目设定是”只在窗口被聚焦时进行游戏处理“。失去焦点时处理停止。 这个设置对于单机游戏没什么影响,但在调试多窗口的在线游戏时相当不方便。可以通过如下设定让所有的窗口失去焦点后继续游戏处理。 方法
渡蓝 阅读(102) |
摘要: 1 状态接口 每个状态的基类 这里要注意C#的abstract和C++中的virtual的区别 网上讲解的很多public abstract class Status : MonoBehaviour { public abstract void OnCreate(); public abstract void OnExecute(); public abstract void OnExit();}2 各个状态类 由于继承了Status 因此需要实现Status中的方法 形如 public class MenuStatus : Status { ///////////...
渡蓝 阅读(160) |
摘要: 用Unity开发移动平台的游戏 不可避免的会遇到屏幕分辨率的问题 不同的分辨率上会使得原本正常的UI变得乱七八糟 我们知道 在Unity中可以拿一个plane作为背景 UI则是绘制在离摄像机最近的位置 可以认为是绘制在摄像机上的因此分辨率的不同会导致UI的位置和大小出现错误我们完全可以用一个plane去模拟button 并将它放在世界空间中 这样虽然可以解决位置和大小的问题 但是所带来的问题也一大堆并难于维护因此我们需要根据屏幕的大小去按比例缩放UI假如原本有个按钮是这样,并且当前的480x854分辨率下没问题,如果改成600x1024或者其他的分辨率,便会发现位置和大小都不正确了functi
渡蓝 阅读(358) |
摘要: 1、角色模型制作 unity3d支持Skin动画 但是不支持Physique动画 会发现Physique动画在unity里严重变形 因此在模型的骨骼动画的制作上面 要用Skin 当然也可以做成Physique 然后用插件转换一下 3dsmax的插件PhyToSkin 3dsmax中转换之前 为了避免出错 先隐藏骨骼 然后对绑定了骨骼的模型进行单独转换 因为批量也会出错 转换以后在修改面板中加入可编辑网格 同时为了避免出错 检查一下uv是否贴反了2、角色模型导出 确保导出的模型是已经绑定了骨骼的 在导出设置中根据需要选择是否导出Animation 以及3dsmax和unit...
渡蓝 阅读(2013) |
摘要: 3d游戏中 一个场景往往比较大 如果游戏的进行需要下载一个10M甚至更大的场景时 加载所用的时间会导致很大部分玩家的流失我们知道unity3d中的内置地形是使用一张高度图 加载场景时 首先加载地形并显示 再去加载场景中的部件(比如树、房子等) 将会很有必要在加载场景中的部件时 可以根据玩家当前所在的位置 由近到远的去加载 场景中的每个部件实际上并不都是独一无二的 比如一棵一模一样的树 可能同一个场景中出现在很多地方 不同的只是树的位置信息 那么在加载场景的时候则只需要加载一个树的模型 并记录下N个树的transform信息 将会大大的减少场景所占的空间 如果模型的重用率较高 那么这个问题的解决
渡蓝 阅读(809) |
摘要: Unity3D的脚本属性用法:// JavaScript@script AddComponentMenu (&Transform/Follow Transform&)// CSharp[AddComponentMenu(&Transform/Follow Transform&)]以下是具体说明(部分无关紧要的不翻译):AddComponentMenu(函数)允许你从其他的&Components&菜单途径添加脚本(如果不使用AddComponentMenu那么你只能从Components-&Scripts下添加)。注意需resta
渡蓝 阅读(350) |
摘要: 在Windows环境下开发Unity3d游戏或应用,可以利用dll文件将一个大工程分为几个小的工程。这里较为推荐 3dsMax+Unity3d+Windows7+Virsual Studio 2010+ReSharper这样的组合进行整个WinPC/Web项目的开发和维护。 在VS2010中可以导入一个ClassLib Project,编译生成dll文件。然后在Unity3d项目中添加对该dll文件的引用,并且将该dll文件复制到Unity3d项目的Assets 目录下的任意位置。Unity3d将自动解析该dll文件。注意,尽量不要有命名空间,否则Unity3d可能报错。 VS布置如下: Un
渡蓝 阅读(269) |
摘要: public var isRendering:boolean=private var lastTime:float=0;private var curtTime:float=0;function Update(){isRendering=curtTime!=lastTime?true:lastTime=curtT}//如果物体可见,每个相机都会调用OnWillRenderObject。///Script/Camera/Camera.OnWillRenderObject.htmlfunction OnWillRender
渡蓝 阅读(200) |
摘要: class GUIWindowDemo extends EditorWindow{var windowRect = Rect (100,100,200,200);function OnGUI () {BeginWindows ();windowRect = GUILayout.Window (1, windowRect, DoWindow, &Hi There&); EndWindows (); }function DoWindow () {GUILayout.Button (&Hi&);GUI.DragWindow (); }@MenuItem (&q
渡蓝 阅读(100) |
摘要: 这篇文章很好,值得收藏。原文地址:http://blog.csdn.net/libeifs/article/details/7310962正文:Unity 数据管理 开发环境Window7Unity3D 3.5.0MB525defyAndroid 2.2.1本次学习:1. 简介物件组成2. AssetBundle3. 打包和读取1.简介物件组成 这是羽化做的一个粗略图,其中各个组成部分除了工程以外都能通过AssetBundle打成一个后缀名为.unity3d的外部资源包,通过Unity自身的高压技术,最多能节约60%~70%的资源容量。2.AssetBundle 官方有自带的AssetBu..
渡蓝 阅读(771) |
摘要: 在unity3d中连接数据库 收藏1.C#代码:*/using UnityEusing Susing System.Cusing System.Dusing MySql.Data.MySqlCpublic class CMySql : MonoBehaviour { // Global variables public static MySqlConnection dbC//Just like MyConn.conn in StoryTools before static string host = &quo
渡蓝 阅读(746) |
摘要: //用指定图片替换鼠标指针 var mouse:T function Update(){Screen.showCursor=//隐藏鼠标指针} function OnGUI{ var msPos=Input.mouseP//鼠标的位置 GUI.DrawTexture(Rect(msPos.x,Screen.height-msPos.y,20,20),mouse); }
渡蓝 阅读(59) |
摘要: 1If I make a class Inventory that &does& not inherit from monobehavior.and this class is where i keep track of my players items.Can I instantiate this class In my player class like so?Inventory bag = new Inventory(); // ?Also every script in unity requires to be on a gameobject ? so I can&
渡蓝 阅读(48) |
摘要: var pTemp:Tvar posTexture:Rfunction Awake(){posTexture.width=pTemp.posTexture.height=pTemp.}function OnGUI(){posTexture=GUI.Window(0,posTexture,popWin,&&);}function popWin(winId:int){GUI.DrawTexture(Rect(0,0,posTexture.width,posTexture.height),pTemp);GUI.DragWindow(
渡蓝 阅读(159) |
摘要: * 开发工具: Unity3D* 语言:C#* 用途:网络同步* 项目:网络赛车竞技游戏* 难点:竞技游戏的同步算法需要达到非常高的准确度,对于一定范围的网络延迟需要保持游戏的准确性。对于非竞技性游戏而言,也需要有一定的准确度,但并不一定需要本算法,但可以以此算法进行借鉴性研究,因为网络同步的原理是相同的本算法运用了,持续模拟行进轨迹,预拉扯算法(也就是导航推测算法)以及加上的三次参数法,所写得。* 出处:本人项目原封不动的代码。* * 本人保证绝无半点保留。只希望能让一些不知道怎么写网络的技术人员能有所借鉴,只为能提高中国技术人员水平。* * 本人崇尚算法第一,一切以数学 和 算法能力 来判
渡蓝 阅读(224) |
摘要: using UnityEusing System.Cpublic class SplashScreen : MonoBehaviour{ public string levelToLoad = &&; // this has to correspond to a level (file&build settings) public Texture2D splashL // public float fadeSpeed = 0.3f; public float waitTime = 0.5
渡蓝 阅读(158) |
摘要: Description Alright, this is my last trail renderer I will post (wink). This trail renderer is designed specifically with melee trails in mind. It will track the path of its parent object and create a fluid arc between its saved points. You can set the distance between saved points, which gives you
渡蓝 阅读(1022) |
摘要: 概述在游戏中经常需要动态地载入一些数 据。例如让玩家定制角色外貌时,需要从数据文件读取各种身体部位的信息;或者玩家访问NPC购买装备时,需要从数据文件读取装备信息等等。为了减少游戏程 序的大小,我们往往采用最简单的文本文件来保存这些信息。所以本文总结一下Unity常用的读取文本数据的方法。 因为我是边开发项目便记录心得,时间很仓促,只能先把关键点记录下来,留待以后有时间再补全吧。对于没有详细说的内容,一般google一下都能查到更详细的说明。让Text支持中文读取TextAsset数据在开发阶段,将Txt文件放置到Unity项目Asset文件目录下,Unity就会识别该文件成为TextAsse
渡蓝 阅读(635) |
摘要: Date:这篇说明是用来简单叙述Substance的用途,如何从substance material asset中制作新的substance 材质,并把它运用在mesh上以及编辑其参数。什么是Substance材质?Substance材质是Allegorithmic公司技术制作的程序化贴图材质。Substance基本上是一组map,用所有编辑器中所产生的参数(Diffuse, Normal, Specular, Bump等)来定义整个材质的最终效果。3ds Max跟Maya在2012版本即具有支援substance的功能,目前可直接在Unity3.4版中即时应用。Alleg
渡蓝 阅读(198) |
摘要: 用Unity3D制作基于web的网络游戏,不可避免的会用到一个技术-资源动态加载。比如想加载一个大场景的资源,不应该在游戏的开始让用户长时间等待 全部资源的加载完毕。应该优先加载用户附近的场景资源,在游戏的过程中,不影响操作的情况下,后台加载剩余的资源,直到所有加载完毕。本文包含一些代码片段讲述实现这个技术的一种方法。本方法不一定是最好的,希望能抛砖引玉。代码是C#写的,用到了Json,还有C#的事件机制。在 讲述代码之前,先想象这样一个网络游戏的开发流程。首先美工制作场景资源的3D建模,游戏设计人员把3D建模导进Unity3D,托托拽拽编辑场景,完成 后把每个gameobject导出成XXX
渡蓝 阅读(244) |
摘要: 1.使用静态类型当使用JavaScript很重要的优化是使用静态类型替代动态类型。Unity使用一种技术叫做类型推理的技术来自动转换JavaScript为静态类型脚本。var foo = 5;上面例子中的foo将自动被推断为一个整数值。因此,Unity可能使用大量的编辑时间进行优化,而不使用耗时的动态名称变量查找等。这就是为什么Unity的JavaScript执行平均速度是其他JavaScript的20倍的原因之一。唯一的问题是有时不是所有的东西都能做类型推断,Unity将会为这些变量重新使用动态类型。通过这样,编写JavaScript代码很简单,但也会使代码运行速度变慢。看个例子:funct
渡蓝 阅读(134) |
摘要: using UnityE using System.C using S public class DownScript : MonoBehaviour { public GUIStyle progressbar_ //背景图 public GUIStyle progressbar_ //前景图 public GameO WWW bool loading= public T void Start () { StartCoroutine(ABC(&http://imag
渡蓝 阅读(161) |
摘要: Unity本身有PlayerPrefs来做一些数据的保存和读取,也可以通过循环来做批量的读取或者保存,下面这个脚本可以方便的调用用来做上面批量的工作,比如读取一组文本数组数据和保存一组文本 Unity本身有PlayerPrefs来做一些数据的保存和读取,也可以通过循环来做批量的读取或者保存,下面这个脚本可以方便的调用用来做上面批量的工作,比如读取一组文本数组数据和保存一组文本数组数据. 建议把这个脚本放在Standard Assets目录下,这样可以按照下面的方法方便的调用它.现在包含了下面这些命令: PlayerPrefsX.SetVector3 P...
渡蓝 阅读(203) |
摘要: 这个Unity3D 批量修改贴图导入设置工具脚本十分小巧,但是威力大.特别针对大批量贴图要调整尺寸等等的时候作用尤为明显。在菜单中添加CustomTexture的方式来批量改变所选的贴图导入设 这个Unity3D 批量修改贴图导入设置工具脚本十分小巧,但是威力大.特别针对大批量贴图要调整尺寸等等的时候作用尤为明显。在菜单中添 加&Custom→Texture&的方式来批量改变所选的贴图导入设置.Unity本身只能一次打开一张图片进行导入设置,目前这个脚本可以批量更改贴 图格式,是否开启MipMap,调整纹理最大尺寸,...
渡蓝 阅读(151) |
摘要: 以FooBar这个单词为例,我们简单概括:变量小写字母起头: bool fooBar =函数大写字母起头: void FooBar ();函数参数加以 “_” + 小写字母起头: void MyFunction ( int _fooBar );public, private, protected, internal 写最前面static, const, virtual, override 放中间, 多个混合顺序随意Serialize 和 NonSerialize 的属性分段定义内嵌Class,Enum的定义放最上方,接着是static变量,接着是Serialize变量,接着是No
渡蓝 阅读(340) |
摘要: Execution Order of Event FunctionsIn Unity scripting, there are a number of event functions that get executed in a predetermined order as a script executes. This execution order is described below:First Scene LoadThese functions get called when a scene starts (once for each object in the scene).Awak
渡蓝 阅读(127) |
摘要: ScriptableObject 是Unity3D整个引擎的设计中,最为出彩的地方。通过他我们将数据保存,数据和编辑器的交互以及数据在runtime的使用三部分很方便的联系在一起。这是一个容易被Unity3D的初学者们容易忽略的领域。简单的说,你可以把ScriptableObject当作Unity3D下的xml。但是其存储格式为二进制。让我们从一个实际例子出发,来理解ScriptableObject在实际项目中的整个运用。假设我们有AbilityInfo需要设置和保存,我们可以将AbilityInfo制作成ScriptableObject,如下:public class AbilityInfo
渡蓝 阅读(1565) |
摘要: Instantiate 是一个非常消耗性能的函数,所以尽量避免在运行时调用。这样我们就有了Reset()函数和 Object Pool 的运用。Object Pool是一个GameObject的reference列表,他会在游戏开始时调用Instantiate函数创建出若干个Prefab Instance。然后将它们设置为无效,在游戏需要时从中找到有效的GameObject提供给游戏使用,当该GameObject需要destroy 时,他并不实际删除,只是简单的将它设置为无效回收到Object Pool中。Reset 函数MonoBehaviour提供Reset函数。该函数会在用户点击Insp
渡蓝 阅读(182) |
摘要: 我们已经在Unity的官方文档 Execution Order 以及 Awake和Start的区别中了解了单个MonoBehavior中的脚本执行顺序的细节。然而Unity3D在单个GameObject中多个Component以及多个GameObject中的脚本执行顺序上定义不清。简单的说,他们的执行顺序是不固定的,这使得我们在设计游戏的时候产生了不少麻烦。这节主要介绍一些问题和可行的解决方法。初始化顺序有些时候我们需要对初始化顺序做一些明确的要求,如我们希望一些Manager比其他的脚本的Awake更早被执行。在这种情况下,如果我们将初始化操作 写在这些Manager的Awake中,就有可能
渡蓝 阅读(635) |
摘要: Unity3D 中提供了非常方便的功能可以帮助用户将Member Data在Inspector中显示,并且定义Serialize关系。简单的说,在没有自定义Inspector的情况下所有显示在Inspector 中的属性都同时具有Serialize功能。换句话说,就是你在Inspector看到什么,保存游戏的时候,这些值就会被保存成二进制文件。可被Serialize的变量的定义方法1. public 变量在没有加入任何Attribute的前提下,public变量是默认被视为可以被Serialize的。2. [SerializeField] Attribute有时候我们需要Serialize一份
渡蓝 阅读(704) |
摘要: 操作transform.localPosition的时候请小心移动GameObject是非常平常的一件事情,一下代码看起来很简单:transform.localPosition += new Vector3 ( 10.0f * Time.deltaTime, 0.0f, 0.0f );但是小心了,假设上面这个GameObject有一个parent, 并且这个parent GameObject的localScale是(2.0f,2.0f,2.0f)。你的GameObject将会移动20.0个单位/秒。因为该 GameObject的world position等于: Vector3 offset
渡蓝 阅读(9807) |
摘要: Unity3D初学者经常把Awake和Start混淆。这件事情需要分两个部分来讨论,但简单总结就是,Awake在MonoBehavior创建后就 立刻调用,Start将在MonoBehavior创建后在该帧Update之前,在该Monobehavior.enabled == true的情况下执行。当MonoBehavior没有定义[ExecuteInEditMode]时我们通常书写的脚本,并不会定义[ExecuteInEditMode]这个Attribute,所以Awake和Start都只有在Runtime中才会执行。例1:public class Test : MonoBehaviour {
渡蓝 阅读(931) |
摘要: unity3d相机切换效果var camera0 : C var camera1 : C function Update () { if (Input.GetKey (&1&)) { camera1.enabled = camera0.enabled = } if (Input.GetKey (&2&)) { camera1.enabled = camera0.enabled = }}function OnGUI () {GUI.Box (Rect (10,10,100,90),
渡蓝 阅读(763) |
摘要: 模型和贴图必需存在“Resources”文件夹下面[javascript] view plaincopyvarmesh1:GameOfunctionStart(){mesh1=Instantiate(Resources.Load(&model&)); //加载模型mesh1.transform.position=Vector3(); //模型出现的位置}functionUpdate(){renderer.material.mainTexture=Resources.Load(&a&); //加载材质}
渡蓝 阅读(115) |
摘要: Unity3D编辑器插件编写教程在阅读本教程之前,你需要对Unity的操作流程有一些基础的认识,并且最好了解内置的GUI系统如何使用。如何让编辑器运行你的代码Unity3D可以通过事件触发来执行你的编辑器代码,但是我们需要一些编译器参数来告知编译器何时需要触发该段代码。[MenuItem(XXX)]声明在一个函数上方,告知编译器给Unity3D编辑器添加一个菜单项,并且当点击该菜单项的时候调用该函数。触发函数里可以编写任何合法的代码,可以是一个资源批处理程序,也可以弹出一个编辑器窗口。代码里可以访问到当前选中的内容(通过Selection类),并据此来确定显示视图。与此类似,[ContextM
渡蓝 阅读(1763) |
摘要: playMaker插件学习笔记之控制cube练习前准备:去/forum/read.php?tid=133下载插件。第一步:新建一个unity3d的项目。把playMaker插件导入引擎中。在项目面板就会多出来Gizmos、iTween、PlayMaker这个三个文件夹。第二步:我们创建一个cube。然后给他添加一个角色控制的组件。如下:Note:在这个时候,我们要找到cube的组件。进行修改如图所示:默认的情况下,Character Motor脚本组件中的,Gravity的值为10.因为我们要通过playMaker插件控制他。如果不设置成0,cube
渡蓝 阅读(987) |
渡蓝 阅读(127) |
摘要: 公告板技术是3D游戏中用的非常多的一种技术,主要是用于控制场景中的Texture的方向,让他始终以一定的角度对着我们的镜头(一般是垂直于镜头)。如我们在3D游戏中看到的怪物的蓝、红和怪物名字、一些花草树木等,无论我们在哪个方向看它总是对着我们。如下图所示: ?GraphicsD...
渡蓝 阅读(49) |
摘要: 纹理扩散适合与做游戏的背景(卷轴效果),原理就是让材质贴图动起来(循环运动),代码很简单希望对大家有用?11213// Scroll main texture based on timevar scrollSpeed = -0.5;// This must be set to override a bug where Render Order// of the tunnel objects is lost when SetTextureOffset is usedvar queue = 0;private var offset = 0.0;function Update
渡蓝 阅读(79) |
摘要: function Update () { if (Input.GetMouseButton (0)) { var ray = Camera.main.ScreenPointToRay (Input.mousePosition); var hit : RaycastH if (Physics.Raycast (ray, hit)) { Debug.DrawLine (ray.origin, hit.point); print(hit.collider.gameObject.name); } } }
渡蓝 阅读(175) |
摘要: 用Unity开发移动平台的游戏 不可避免的会遇到屏幕分辨率的问题 不同的分辨率上会使得原本正常的UI变得乱七八糟 我们知道 在Unity中可以拿一个plane作为背景 UI则是绘制在离摄像机最近的位置 可以认为是绘制在摄像机上的因此分辨率的不同会导致UI的位置和大小出现错误我们完全可以用一个plane去模拟button 并将它放在世界空间中 这样虽然可以解决位置和大小的问题 但是所带来的问题也一大堆并难于维护因此我们需要根据屏幕的大小去按比例缩放UI假如原本有个按钮是这样,并且当前的480x854分辨率下没问题,如果改成600x1024或者其他的分辨率,便会发现位置和大小都不正确了functi
渡蓝 阅读(62) |
摘要: 1Materialmat=2mat=newMaterial(Shader.Find(&Sprite/VertexColored,Fast&));3mat.SetTexture(&_MainTex&,Resources.Load(szResourceName)asTexture2D);复制代码其中Shader.Find(&Sprite/Vertex Colored, Fast&)参数是编辑器中选择Material的Shader的那个字符串
渡蓝 阅读(788) |
摘要: 转自 /article.asp?id=607在Unity3.5中内建了精简字体字符的功能.更加方便,也非常利于修改等等.在此之前一直用FontSbusetPack进行精简.为什么要精简字库集?最简单的一个原因就是为了让Unity发布的移动设备能文本能使用字体来定义样式.Unity 内建的用法很简单,只需选择放入的字体,修改Character项为&Custom set&,接着出现Custom Chars中输入你想使用的字符串,字符重复无所谓,因为最终会自动过滤掉重复字符.如输入&你好世界&,那么整个字体最终只包含&你好世
渡蓝 阅读(285) |
摘要: 模型的优化。 现在的图形显卡可以很好的支持很多的多边形,但是他们他们还是有一些瓶颈的。所以如果你有一个有100个三角形的MESH,它渲染起来所需要花费的运算跟1500个面数的物体是没有多大差别的。因此最佳的渲染设置时每个模型大约个三角面。 所以再次重复,最好的是导入模型时合并Objects直到他们每个模型在1500个三角面面甚至更高一些,并且只使用一个材质。如果只是把两个模型合并 在一起但是用多个材质这样不会给你的图形带来一点优化。如果你想有效的合并物体,你需要保证你合并后的模型只使用一个材质。 Unity对于向显卡导出各种多边形是很擅长的,它可以很详尽的把所有的图形...
渡蓝 阅读(1236) |
摘要: UnityEngine.Debug:Class containing methods to ease debugging while developing a game.该类中包含了一些便于游戏开发时的调试方法。Class VariablesisDebugBuildstatic var isDebugBuild : boolean In the Build Settings dialog there is a check box called &Development Build&.在&Build Settings&对话框中有一个&Develo
渡蓝 阅读(129) |
摘要: Render SettingsThe Render Settings contain default values for a range of visual elements in your scene, like Lights and Skyboxes.&Render Settings&中包含了场景中一些可见元素的设置选项,比如&Lights&和&Skyboxes&。To see the Render Settings choose Edit-&Render Settings from the menu bar.从菜单栏中选
渡蓝 阅读(66) |
摘要: 【来源】:http://blog.csdn.net/cloud_zero/article/details/6078019Unity中的Render Path影响光源和阴影的处理。光源如何应用以及Shader中的哪个Passes被使用依赖于哪个Rendering Path被使用。Shader中的每一个Pass通过Pass的Tags标签和他的光源类型相互通信。 Unity支持3中渲染方式:(1)Vertex Lit Rendering path (定义了Vertex,VertexLMRGBM以及VertexLM 3种Pass)(2)Forward Rendering path(定义了Forword
渡蓝 阅读(88) |
摘要: 一。Unity3D属性监视面板(Inspector) Unity3D属性监视面板中的属性允许用户在代码外部改变脚本及组件的初始值。另外,属性监视面板中的值允许用户在游戏运行模式下随时更改,并且在游戏中立即生效,停止运行后各属性又能恢复到最初的状态,这是Unity3D提供的一种运行时调试方式。 哪些对象可以作为属性出现在Inspector中呢?答案是Unity3D引擎能够识别的所有对象以及Unity3D所支持的编程语言的基础数据类型对象,另外再加上以这些可识别的对象构建的自定义数据类型(实质同前两项)。注意:属性是指所有能够出现在Inpector面板中的项;组件是属性中的一种,它必须是Unity
渡蓝 阅读(642) |
摘要: 一。什么是协同程序 协同程序,即在主程序运行时同时开启另一段逻辑处理,来协同当前程序的执行。换句话说,开启协同程序就是开启一个线程。二。协同程序的开启与终止 在Unity3D中,使用MonoBehaviour.StartCoroutine方法即可开启一个协同程序,也就是说该方法必须在MonoBehaviour或继承于MonoBehaviour的类中调用。 在Unity3D中,使用StartCoroutine(string methodName)和StartCoroutine(IEnumerator routine)都可以开启一个线程。区别在于使用字符串作为参数可以开启线程并在线程结束前终止线程
渡蓝 阅读(5854) |
摘要: 来源:/thread-143-1-7.html官方文档在这里Optimizing Graphics Performance,里面提到的中心要点就是联结(combine),联结,再联结。而对于具体怎么联结他却略过不提,于是只好自己研究。先解释下联结的原理和意思:文档里说,显卡对于一个含100个面片的物体的和含1500个面片的物体的渲染消耗几乎是等价的。所以如果你有N个同一材质的东西,那么把他们联成同一个物体再统一用一个material那么对于显卡的渲染消耗就要降低N倍。再讲具体做法,方法有2:1是直接在max等工具里联结好,贴上同一材质再导进来
渡蓝 阅读(157) |
摘要: 以前在制作寻路的时候,总是借助A Star插件。但Unity3D现在已经可以使用自己自带的寻路Component了,而且使用来气非常的简单明了! 和U3D以前大多数的优化组件类似,Nav也需要在设置好寻路网格和寻路对象之后Bake一下。关于U3D内置的寻路组件主要分为两大个 类,NavMesh和NavMeshAgent;前者用于设置寻路的网络,后者设置寻路的Object。在NavMesh对外公开的方法有: Raycast跟踪上NavMesh的两个点之间的射线。 CalculatePath计算两点之间的路径和存储路径。 DistanceToEdge找到最近从一个点的NavMesh NavMes.
渡蓝 阅读(356) |
摘要: Unity3D 是一个基于 Mono 的跨平台游戏引擎,支持 PC 、MAC 、 Android 、IOS 等多种平台,其 3.0 以后的版本支持用 MonoDevelop 调试,很多人安装了之后发现 MonoDevelop 的调试按钮是灰色的,无法进行调试,通过看官方文档和测试,发现正确的调试步骤如下:MonoDevelop 的安装与设置:下载并安装 Unity3D 以及其内置的 MonoDevelop ,一定要安装 Unity3D 安装包内置的 MonoDevelop ,MonoDevelop 官方下载的版本是没有 Unity3D 的调试插件的;运 行 MonoDevelop (如果 Mo
渡蓝 阅读(132) |
摘要: Games created using the Unity3D game engine can be easily localized, thanks to the great flexibility provided by their components system, but several choices must be made achieve it. Indeed, a decision must be made on how exactly to create and use localizable data within the game.One approach, which
渡蓝 阅读(200) |
摘要: //创建一个js脚本,然后写好后加入到GUItext即可var updateInterval = 0.5;private var accum = 0.0; // FPS accumulated over the interval private var frames = 0; // Frames drawn over the interval private var timeleft : // Left time for current intervalfunction Start() { if( !guiText ) { print (&FramesPerSecond
渡蓝 阅读(1254) |
摘要: using UnityE using S using System.Collections.Gpublic class SingletonBehaviour&S& : MonoBehaviour where S : MonoBehaviour { private static S mS public virtual void Awake() { mSingleton = (S)(MonoBehaviour) // Debug.LogError(&SingletonBehaviour&S& Awa
渡蓝 阅读(134) |
摘要: 将脚本挂到gameobject上,可以指定在多少秒后自我销毁using UnityE using System.Cpublic class AutoDestroySelf : MonoBehaviour { public float TimeOut = 30.0f; private bool m_bD private float m_StartT // Use this for initialization void Start () { m_bDestroy = m_StartTime = Time. ...
渡蓝 阅读(75) |
摘要: 和U3D以前大多数的优化组件类似,Nav也需要在设置好寻路网格和寻路对象之后Bake一下。关于U3D内置的寻路组件主要分为两大个 类,NavMesh和NavMeshAgent;前者用于设置寻路的网络,后者设置寻路的Object。在NavMesh对外公开的方法有:Raycast跟踪上NavMesh的两个点之间的射线。CalculatePath 计算两点之间的路径和存储路径。DistanceToEdge 找到最近从一个点的NavMesh NavMesh边缘。SamplePosition 样品到指定点最接近的NavMesh。SetLayerCost 设置成本超过一层上的所有代理类型的几何遍历。Get
渡蓝 阅读(92) |
摘要: Shaders drive the programmable graphics pipeline, and define the final surface properties of an object. 这句话是对shader最精炼和到位的描述,shader的用途、目的与工作方式都包含了在内。我们知道针对3D硬件的两大API,OpenGL和Direct3D都有它们固定的渲染管线,即pipeline,我们把顶点位置、法线、纹理坐标 等数据参数提供出来,然后再定义光源,我们就可以得到一幅渲染出来的图像。在这个具体的渲染过程中游戏和程序的设计者是没办法具体实施控制的。从DX8和OpenGL扩展开
渡蓝 阅读(80) |
摘要: Coroutines&Yield 是 Unity3D 编程中重要的概念,它可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行,但是在 Javascript 与 C#中实现 Coroutines &Yield,在语法上却有一些区别:yield 不可单独使用需要与 return 配合使用,例如:yieldreturn0;//等 0 帧yieldreturn1;//等 1 帧yieldreturnWaitForSeconds(3.0);//等待 3 秒所有使用 yield 的函数必须将返回值类型设置为 IEnumerator 类型,例如:IEnumerator Do
渡蓝 阅读(1809) |
摘要: 由于动作设计经常修改动作,所以每次改完都要再添加一次animation的事件,所以就直接写了个脚本,当然以后可以做成表格,然后用脚本从表格中读取,然后生成对应的animation事件。在Assets/Editor目录中放置代码,参考代码如下:using UnityEusing System.Cusing UnityEpublic class AddEventsToAnimations : MonoBehaviour {[MenuItem(&Assets/Demo2/Add animations events&)] //添加到ed
渡蓝 阅读(75) |
摘要: 关于unity3d碰撞的一些东西
20:47:00|分类: unity3d |字号订阅具体的一些,可以看 unity3d的 manualrefrernce的东西,有几个表格在后面可以参考:几个类型碰撞器:1. 静态碰撞器: 就是只有碰撞器,但没有刚体的2.刚体碰撞器: 带Rigidbody的碰撞器,这个是最基本的碰撞器3.运动学刚体碰撞器: 带Rigidbody, 而且Rigidbody的IsKinematic打勾的,注意这个碰撞器是不能加力的,只能修改他的tr...
渡蓝 阅读(2083) |
摘要: 脚本里面一些属性的用法
14:22:30|分类: unity3d |字号订阅1。AddComponentMenu 在编辑器菜单中加入菜单,可以是多层菜单。可以是新建的菜单或者是已有菜单的自菜单,这个在Editor中比较有用// Javascript example@script AddComponentMenu (&Transform/Follow Transform&)class FollowTransform extends MonoBehaviour {}...
渡蓝 阅读(104) |
摘要: 原文:/warensoft/archive//MONO.html今天中午我收到一个Email,是关于以前写的一个MONO文章的疑问,我对此做了一些解释,希望与有相同问题的朋友一起分享一下,邮件内容如下:我在网上找到了您写的一篇关于Mono的“在windows下使用Mono”的文章,我想问一下,在windows下开发的winForm程序,和使用Visual Studio开发的程序有什么区别,仅仅只是为了不使用JIT而提高运行速度的吗?再者,为什么要在windows上使用mono开发,在windows使用mono开发的程序可以直接移植
渡蓝 阅读(110) |
摘要: 原文:/blog/871207翻译自:/blog/index.php//c-events-and-unity3d/zijan译(括号内是译者自己对文章和技术的理解)(Unity3D是现在越来越流行的3D游戏引擎,它支持JavaScript,c#和Boo语言。如果你是个Unity3D的爱好者,但只会JavaScript。这里有一篇文章关于处理事件和消息传递,也许更适合你。A Useful Messaging System)你知道C#有一个内置的事件机制吗?这个东东在Unity3D里也
渡蓝 阅读(360) |
摘要: ScriptableObject类型经常用于存储一些unity3d本身不可以打包的一些object,比如字符串,一些类对象等。用这个类型的 子类型,则可以用BuildPipeline打包成assetbundle包供后续使用,非常方便。这是除了PlayerPrefs和c# XML文件读取外,另外 的一种存取一些数据对象的方法usingUnityEpublicclassXMLContains:ScriptableObject{publicstringtheXML;} By making your class enherit from ScriptableObject, it beco.
渡蓝 阅读(1422) |
摘要: #region 世界坐标系转化为地形坐标系/// &summary&/// 获得相对于地形的标准化位置/// &/summary&/// &param name=&pos&&碰撞点的位置&/param&/// &param name=&terrain&&当前地形&/param&/// &returns&返回位置&/returns&protected Vector3 GetNormalizedPositionRelativeToTerrain(Vector3 p
渡蓝 阅读(292) |
摘要: public enum RoadWayType{rectangle,Trapezoidal,RoundArch};public RoadWayType _roadwayType = RoadWayType.效果
渡蓝 阅读(100) |
摘要: public var worldRefObj : T//场景侦测参考物体;public var worldPObj : T//场景侦测物体;public var mapBg : Texture2D;//地图背景;public var mapPe : Texture2D;//指针背景;private var mapPos : Vector2;private var angle ://指针旋转private var mapPeS//指针大小function Update() { var worldPos = Vector2(worldPOb
渡蓝 阅读(346) |
摘要: 我们一般游戏中都是这样使用状态机的复制代码enum State_Type{GameMenu,GameLoading,GameLogic,GameOver,}void Update(){ switch(currentstate) {case State_Type. GameMenu:if( 按了开始按钮 ){currentstate=State_Type. GameL}if( 按了成就 ){currentstate=State_Type……..;}if(按了高分榜){currentstate=State_Type……..;} case State_Type. GameL
渡蓝 阅读(127) |
摘要: 1. GameObject_Structure 2. Component_Design3. Behaviour_Design4. Animation_Design
渡蓝 阅读(67) |
摘要: 为了实现游戏人物外形的定制,专门研究了Unity官方换装demo 。1.基础 BuildPipeline.BuildAssetBundle 把gameobject生成包,可以用于替换和更新www.assetBundle 动态载入包SkinnedMeshRenderer 骨骼模型渲染器,美术导出的时候每个子模型都带SkinnedMeshRenderer2.基础模型生成基础模型是从characters目录下找fbx模型(名称里面不带@),如果找到(如female.fbx),则把模型下所有有SkinnedMeshRenderer的gameobject删除,然后给模型本身加了个SkinnedMeshR
渡蓝 阅读(2301) |
摘要: 1. 尽量避免每帧处理比如:function Update() { DoSomeThing(); }可改为每5帧处理一次:function Update() { if(Time.frameCount % 5 == 0) { DoSomeThing(); } }2. 定时重复处理用 InvokeRepeating 函数实现比如,启动0.5秒后每隔1秒执行一次 DoSomeThing 函数:function Start() { InvokeRepeating(&DoSomeThing&, 0.5, 1.0); }3. 优化 Update, FixedUpdate, LateUp
渡蓝 阅读(177) |
摘要: 先把你的人物的Transform放入 character var character : T 创建一个相机var mainCamera : C 然后做一个平面var playerMovementPlane : P function Awake () { 然后把mainCamera设为主相机mainCamera = Camera. 然后把NEW出这个平面并且把这个平面放到角色上playerMovementPlane = new Plane (character.up, character.position); }function Update .
渡蓝 阅读(99) |
摘要: texture & texture2DTexture2D ttt = render.material.GetTexture(&_MainTex&) as Texture2D;Use debug console and do the followingDebug.Log(renderer.material.mainTexture);Debug.Log(renderer.material.mainTexture.GetType()) ;That will tell us if the mainTexture is null or not and what type of
渡蓝 阅读(116) |
摘要: 协议规则: 包头3个字节: 包大小(2个字节),命令(1个字节) 数据包 注意:包大小=命令+ 数据包 的大小 登陆命令: 命令是:0x10; 数据包中第一个字节是版本号,然后是用户名和密码 退出命令: 命令是:0x40; 数据包是空的 session消息: 命令是:0x30; 数据包中是就是消息数据 channel消息(频道消息) 命令是:0x52; 数据包:2个字节的频道ID号的大小+频道ID号+消息数据 服务端回复协议 登陆成功回复: 命令是:0x11; 数据包是:reconnectKey(重连码) 登陆失败回复 命令是:0x12; 数据包是:失败原因 登陆重连...
渡蓝 阅读(27) |
摘要: var target : Tvar distance : float = 3.0;var height : float = 1.0;var damping : float = 5.0;var smoothRotation : boolean =var rotationDamping : float = 10.0;var targetLookAtOffset : Vector3; // allows offsetting of camera lookAt, very useful for low bumper heightsvar bumperDistanceChe
渡蓝 阅读(200) |
摘要: 使用Unity3D也有一段时间了,由于团队一直使用SVN进行版本管理,现总结一下:(1) Unity3D的二进制资源必须加锁进行版本控制,因为它没办法merge;(2) Unity3D自己产生的C#工程相关文件,包括VS产生或者Mono产生的,都不需要归入版本控制;(3)在新加入项时,Unity3D会产生一个同名的.meta文件,这个文件记录了此项一个唯一的64位的guid,这个文件必须上传,否则会出现各种缺失的异常情况(比如脚本Miss等)(4) 对于Library文件夹,有以下几个.Asset文件需要进行版本管理: TimeManager TagManager Qu...
渡蓝 阅读(405) |
摘要: 先前在绘制2D元素的时候用的是GUI的DrawTexture()。用法很简单,类似这样var tex : TDrawTexture( Rect( left, top, width, height ), tex ); 在屏幕的Rect位置绘制tex。但是官方文档在Graphics的DrawTexture()函数介绍中又这么一句话 It's probably better to use GUI.DrawTexture for GUI code. 这么说来Graphics更适合于绘制2D元素,而且,更适合于动画,一张纹理上多帧元素。这个函数不是很容易用,参数较多而且有点怪异,但
渡蓝 阅读(281) |
摘要: Unity3D 检测摄像机与人之间有无带碰撞器的遮挡物在3D游戏中,往往会遇到玩家突然从大空间进入小空间、或从小空间突然进入大空间的情况,比如从屋外进入屋内(反之)。也会遇到比如绕进围墙的时候,玩家被围墙遮挡的情况。这个时候摄像机就需要进行自动的拉近、拉远操作。当然有些时候也会做另外一种处理,就是让遮挡住的物体暂时消失或者淡化一会。原理很简单,就是由摄像机发出一条射线射到玩家身上,检测之间是否撞击到带有碰撞器的遮挡物。《核心代码》[csharp]view plaincopyRaycastHvector3start=Thecamera.//摄像机本身坐标intlay
渡蓝 阅读(178) |
摘要: 网络游戏在注册账号时,需要对新的账户名和密码进行规范。这里记录一些常用的检测方法:1,纯数字检测:public string A = “^[0-9]+$”;2,11位手机号码(1开头):public string B = &^1\d{10}$&';3,数字或英文:public string C = &^[A-Za-z0-9]+$&;4,纯汉字:public string D = &^[\u4e00-\u9fa5]+$&;&核心代码&using System.Text.RegularERegex
渡蓝 阅读(91) |
摘要: 获取离自己最近的游戏对象的坐标. function Update() { if(networkView.isMine) { print(FindClosestEnemy().transform.position); } } // Find the name of the closest enemy //查找最靠近敌人的信息 function FindClosestEnemy () : GameObject { // Find all game objects with tag Enemy //查找标签为test的全部游戏物体 var ...
渡蓝 阅读(80) |
摘要: 我们主要使用3dsmax2010进行制作,输出FBX的类型导入Unity3D中。 默认情况下,3dsmax8可以和U3D软件直接融合,自动转换为FBX物体。 注意事项如下: 1. 面数控制 在MAX软件中制作单一Game Object物体的面数不能超过65000个三角形,即32500个多边形Poly,如果超过这个数量的物体不会显示出来,这就需要我们合理分布多边形和模型数量。 打开MAX场景,选择File/Properties/Summary Info可以打开文件属性记录。 其中Faces可以看到每个物体的实际数量,个体数量不能超过65000个Faces面。 2. 建模控制 Unity3D软件支
渡蓝 阅读(115) |
摘要: 我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图,可见贴图在画面中所占的重要性。在这里我将列举一些贴图,并且初步阐述其概念,理解原理的基础上制作贴图,也就顺手多了。我在这里主要列举几种UNITY3D中常用的贴图,与大家分享,希望对大家有帮助。01首先不得不说的是漫反射贴图:漫反射贴图diffuse map 漫反射贴图在游戏中表现出物体表面的反射和表面颜色。换句话说,它可以表现出物体被光照射到而显出的颜色和强度。我们通过颜色和明暗来绘制一幅漫反射贴图,在这张贴图中,墙的砖缝中因为吸收了比较多的光线,所以比较暗,而墙砖的表面因为反射比较强,所以吸收的光线比较少。上面
渡蓝 阅读(287) |
摘要: 原文地址:Ragdoll布娃娃组件作者:RayYang因为自己瞎弄着玩的时候,弄了一个出来,好像没见过有人说过关于布娃娃组件的,分享给大家,希望大家喜欢!首先我们先要有一个3DMax做的人物模型,我就以官方的Hero做例子。打开Unity3D,导入“Hero” ,创建一个Plane做地面,光源随意,如图:在Hierarchy视窗中將Hero的Reference打开,可以看见Hero的骨骼,如图:之后选中Hero,然后创建布娃娃组件“GameObject→Create Other→Ragdoll”,如图:然后我们会看到&create Ragdoll&视窗,如图:很多朋友到了这
渡蓝 阅读(76) |
摘要: 这个类用来做自己的组件很不错,比如下面这个图的路径点,他其实是个Empty Object,可以自己加脚本让他带上标记。官方解释还可以用来做帮助提示的-.- 大游戏场景的制作时候,你可以用这个在地图上写下注释。属性:color 画得颜色matrix 设置矩阵,用于画所有Gizmos(具体用法未知)方法:DrawRay 画射线DrawLine 画直线DrawWireSphere 画线框球DrawSphere 画实心球DrawWireCube 画线框方体DrawCube 画实体方体.DrawIcon 画一个图标DrawGU...
渡蓝 阅读(82) |
摘要: 自己先激动下我的计算机对手终于有点智商了,自己会跑了。然后接下来写教程-.-首先申明,这个车的运动并不是简单的轨迹运动,他的AI是直接加在玩家控制引擎上的,我要做到的就是单一通用脚本,并且电脑没有作弊(想起星际电脑的AI就晕,电脑一开始就有给了自己很多钱,只不过在装他没钱而已)。这 是我写的汽车的通用脚本的public属性段,AI那项不钩就是玩家控制的,勾选了就是电脑控制。(顺便炫下我的汽车引擎,那可是按真实汽车引擎转速和齿 轮箱比例转换后作用到轮子上的。)嘿嘿,老外公开的代码都没有这些吧,我的齿轮箱是可以设置的,便于以后做改装车游戏用。回归原题,写AI:1.先给地图加上路径点(WayPoin
渡蓝 阅读(125) |
摘要: 先介绍一些基本函数(具体用法自己查文档):--------------------------------------------------------1.场景切换:Application.LoadLevel(&Level1&)2.读取场景时不移除物体:DontDestroyOnLoad(object)//会保留该物体的任何数据,包括坐标,可以用于任何物体,也包括GUI哦,可以灵活运用。3.设置该物体激活状态(移除物体前先执行这个,预防组件在运行状态不允许移除):SetActiveRecursively(bool)4.移除物体(移除不掉时候先设置他的激活状态为false)
渡蓝 阅读(147) |
摘要: shader lab unity自带的shading 和material语言;使用自己写的shader asset——&create shader 一系列subshader,当unity 显示网格时,会选第一个subshader使用; subshader定义一组rendering pass:regular pass; use pass(包括从另一个shader来的已命名的pass);grab pass(从屏幕抓取作为材质,在后来的pass中使用);新建shader使用方法 create new shader;编辑shader; 新建material; 将shader在下拉菜单中选中; 注
渡蓝 阅读(135) |
摘要: Unity3D中所使用的编程语言有三种:C#,JS和BOO。同时自带了免费的编辑器,然而在windows下,编辑器还是VS最强大,所以本文就探讨如何配合Unity3D使用VS2008。1、创建一个Unity3D工程,在指定的目录下会生成Asset文件夹。2、启动VS2008,新建一个Visual C#的类库项目,在“位置”处指定刚才Unity3D所创建的文件夹。3、在资源管理器中添加到UnityEngine.dll的引用,此文件位于&Unity3d安装目录& \Unity\Editor\Data\Frameworks\UnityEngine.dll4、然后修改.cs文件内容以便Un
渡蓝 阅读(473) |
摘要: 添加脚本位置First Person Controller: 添加CameraSwitch脚本下层物体 graphic MainCamera AnimationCamera:从3dmax中导入,添加CameraSwitch脚本 下层物体 camera 新建并作为子物体cameraswitch代码:var camera1 : Cvar camera2 : C//var customskin : GUISprivate var programeGoon : boolean =/*function Start(){ programeGoon =
渡蓝 阅读(124) |
摘要: 设定一个物体使得camera可以从现在为止自动飞到当前位置1. 设定一个位置,可以在其前方放置一个显示其位置的cube。这里也可以写脚本设定位置。2. 使用函数 移动函数 transform.position = vector3.slerp(positionstart, positionEnd, Time*time*0.001);旋转函数 transform.Rotation = Quaternion.slerp(StartRotation, aimRotation, Time.time*0.00001);3.在控制自动漫游于原始FPC摄像机的切换脚本中添加功能:按下run,自动记录当前pos
渡蓝 阅读(47) |
摘要: 保存工程的信息:比如游戏进程中的位置信息,对抗双方的个人信息等:方法1:使用xml文件: xml文件要以UTF-8的格式存储; 但是这样做会使得programmer 可以从脚本中控制xml文件中的所有的字符,包括xml文件中的语法命令字符,因此会带来不安全隐患; 附上两段代码: A 这一段是我自己写的,将一个xml文件按照字符串读入; 虽然unity3d中的string类型说明中讲到保存的是unicode characters,但是实际上当xml文件比较大的时候,如果保存成unicode,就读不出来,如果保存成UTF-8就不存在这个问题; using UnityEusing Sys
渡蓝 阅读(1167) |
摘要: 1、加载封装好的内部文件:var aaa : M//空材质var bbb : GameO//要绑定材质的模型function Start(){ aaa.mainTexture = Resources.Load(&你的资源名,例如“pic1”不需要文件扩展名&); bbb.renderer.material =}2、加载磁盘文件:var bbb : GameOfunction Start () { var www = new WWW (&file://D:\\pic1.jpg&这里也可以是网络图片地址);
渡蓝 阅读(82) |
摘要: var aMaterial:Mprivate var mLine:LineRfunction Start (){ mLine = this.gameObject.AddComponent(LineRenderer); mLine.SetWidth(5, 5); mLine.SetVertexCount(300); mLine.SetColors (Color.yellow,Color.yellow); mLine.material = aM//材质 mLine.material.color = Color (0, 1, 0, 0.25); mLi
渡蓝 阅读(67) |
摘要: 1. 尽量避免每帧处理比如:function Update() { DoSomeThing(); }可改为每5帧处理一次:function Update() { if(Time.frameCount % 5 == 0) { DoSomeThing(); } }2. 定时重复处理用 InvokeRepeating 函数实现比如,启动0.5秒后每隔1秒执行一次 DoSomeThing 函数:function Start() { InvokeRepeating(&DoSomeThing&, 0.5, 1.0); } 3. 优化 Update, Fixe...
渡蓝 阅读(82) |
摘要: Unity3d动画脚本AnimationScripting(深入了解游戏引擎中的动画处理原理)也许这一篇文章的内容有点枯燥,但我要说的是如果你想深入的了解游戏引擎是如何处理动画片断或者素材并让玩家操控的角色动起来栩栩如生,那么这真是一篇好文章(当然我仅仅是翻译了一下) 动画脚本 Animation ScriptingUnity's 动画系统允许你创建一个漂亮的动画蒙皮角色. 动画系统支持动画融合,混合,添加动画,步调周期时间同步.动画层.控制动画回放的所有方面(时间,速度,混合权重) 每个顶点有1.2.4个骨骼影响的mesh,基于物理系统的布娃娃系统,另外还有程序动画.为了获得最佳效果
渡蓝 阅读(2047) |
摘要: 在游戏编程中常常遇到这样的问题,以unity3d为例,譬如场景中只有一个的物体:主角,用做得分显示的UI。要随时获取这些对象不可能每次调用的时候使用类似unity中“Find”函数,这样做低效率;建一个公共类添加一个公有静态变量来保存这些对象也可以,可是如果随着这些对象的增多维护起来困难且耦合度高不利团队开发,不怎么地道。我们想要的是这样:用到它时可以立即访问到它不需要查找,这个对象与其他对象不相关不需要在其他地方建立索引来使用。单例模式就是做这个。 单利模式实用意义就是客户代码可以随时访问而无需进行实例化查找等操作。模式中重点就是怎样维持/获取这个唯一的对象;通俗点就是怎样使用“类名.方法.
渡蓝 阅读(98) |
摘要: 先把原贴纪录以下,有空了再来翻译。基本步骤很简单,就是三步:1、把要载入的代码编译成assembly(dll)2、用WWW类下载目标assembly3、用.Net反射技术载入assembly以前也有这个思路,不过一直没时间测试。回头自己测试确认了再来补充。英文原贴:/general/tipsandtricks/downloading-the-hydra/Unity3d 如何使用程序集(续)在我早先的一篇文章《 Unity动态载入可执行代码的方法》中,介绍了采用反射技术动态载入并使用C#程序集的方法。不过这种方法感觉用起来很麻烦。有的时候我们或许并不需要动态
渡蓝 阅读(483) |
摘要: 为Unity添加游戏状态管理GameStatus最近由于工作原因 一直在研究Unity引擎 唯一感觉不舒服的就是ShaderLab 可能也是磨合的时间不够吧 总觉得写起来别扭 废话不多说 为游戏添加GameStatus 方便游戏各个状态的管理 大致思路和我的毕业设计差不多 只是换作C#在Unity中实现了而已1 状态接口 每个状态的基类 这里要注意C#的abstract和C++中的virtual的区别 网上讲解的很多public abstract class Status : MonoBehaviour { public abstract void OnCreate(); publ...
渡蓝 阅读(189) |
摘要: 【Unity3d】使GUI适应屏幕分辨率用Unity开发移动平台的游戏 不可避免的会遇到屏幕分辨率的问题 不同的分辨率上会使得原本正常的UI变得乱七八糟 我们知道 在Unity中可以拿一个plane作为背景 UI则是绘制在离摄像机最近的位置 可以认为是绘制在摄像机上的因此分辨率的不同会导致UI的位置和大小出现错误我们完全可以用一个plane去模拟button 并将它放在世界空间中 这样虽然可以解决位置和大小的问题 但是所带来的问题也一大堆并难于维护因此我们需要根据屏幕的大小去按比例缩放UI假如原本有个按钮是这样,并且当前的480x854分辨率下没问题,如果改成600x1024或者其他的分辨率,
渡蓝 阅读(2248) |
摘要: MygirlUnity3D?button 和Rect上悬停显示tips/*button 和Rect上悬停显示tips */var buttonText : GUIContent =new GUIContent(&some dasdfgwbutton&);var buttonStyle : GUIStyle = GUIStyle.var leftPosition:var topPosition:var btn_w :var btn_h :public var isOfunct
渡蓝 阅读(64) |
摘要: 用Unity3D制作基于web的网络游戏,不可避免的会用到一个技术-资源动态加载。比如想加载一个大场景的资源,不应该在游戏的开始让用户长时间等待全部资源的加载完毕。应该优先加载用户附近的场景资源,在游戏的过程中,不影响操作的情况下,后台加载剩余的资源,直到所有加载完毕。本文包含一些代码片段讲述实现这个技术的一种方法。本方法不一定是最好的,希望能抛砖引玉。代码是C#写的,用到了Json,还有C#的事件机制。在 讲述代码之前,先想象这样一个网络游戏的开发流程。首先美工制作场景资源的3D建模,游戏设计人员把3D建模导进Unity3D,托托拽拽编辑场景,完成 后把每个gameobject导出成XXX.
渡蓝 阅读(62) |
摘要: unity3d旋转摄像机脚本 [c-sharp] view plaincopyvoidUpdate(){if(Input.GetMouseButton(1)){if(axes==RotationAxes.MouseXAndY){//ReadthemouseinputaxisrotationX+=Input.GetAxis(&MouseX&)*sensitivityX;rotationY+=Input.GetAxis(&MouseY&)*sensitivityY;rotationX=ClampAngle(rotationX,minimumX,maximum
渡蓝 阅读(965) |
摘要: Unity3D AI人工智能(坦克模型自动寻怪,自动追击) 功能:1,坦克自动旋转炮管,自动瞄准2,在坦克的射程之内自动开炮3,坦克自动向你追击脚本:[javascript] view plaincopyvarEnemy_tank:GameO//定义坦克varfirepoint:T//定义开火点varbullet:R//定义子弹varbullspeed:int=50;//定义子弹速度varattackRange=100.0;//定义距离vartarget:T//定义共计目标//staticvarvalue:priva
渡蓝 阅读(234) |
摘要: Save and Load from XML 保存工程的信息:比如游戏进程中的位置信息,对抗双方的个人信息等:方法1:使用xml文件:xml文件要以UTF-8的格式存储;但是这样做会使得programmer 可以从脚本中控制xml文件中的所有的字符,包括xml文件中的语法命令字符,因此会带来不安全隐患;附上两段代码:A 这一段是我自己写的,将一个xml文件按照字符串读入;虽然unity3d中的string类型说明中讲到保存的是unicode characters,但是实际上当xml文件比较大的时候,如果保存成unicode,就读不出来,如果保存成UTF-8就不存在这个问题;C#版本:[c-s.
渡蓝 阅读(76) |
摘要: Reference:/article-1043--11.html太久没运用几何知识了,u3d也确实封装掉了太多的知识,搞得就只会用函数而不懂原理了,很多公式一时还真记不起来,这几天居然拿出了纸在推导一些公式,以怀念我从小学到大学值得骄傲的数学知识。1.角度与弧度互转(别告诉我连弧度是什么你都不知道了) 弧度=角度*3.1f 角度=弧度*180.0f/3.14159f 向量旋转应用: static function RotateTowards (from : Vector3, to : Vector3, maxRad...
渡蓝 阅读(228) |
摘要: 图形显示的优化 简单来说就是「结合!结合!结合!」(combine! combine! combine!) Mesh 尽可能结合,Material 和Texture 尽可能共用。 一个Mesh 建议使用的面数在 之间。 一个 Mesh 建议只用一个 Material。 注意:两个Mesh结合成一个Mesh,但是却使用两个Material,并不会提高效能。 如果要提高效能必须把这两个Mesh的Material也合并成一个。 换句话说,一个Mesh使用多个Material 和一个Material 使用多个render,其实耗能是差不多的。 所以,尽可能的让物件共用...
渡蓝 阅读(352) |

我要回帖

更多关于 max2010 的文章

 

随机推荐