[Unity菜鸟] 材质】的更多相关文章

1. 材质定义: 2. 把材质都改成支持透明通道 因为物体太多了,比如树跟房子材质必须用不一样的.所以办法还是你得改每个材质的Shader,都改成支持透明通道的. 在Project的搜索窗口输入t: material 然后材质就都出来了. 然后全部选定,把shader 改成Particle/Alpha blended,全选改不了是因为你全选的材质里面存在着用不同shader的材质…
NO Batch  ? 游戏场景中存在大量例子的时候,DrallCall的压力很大,但是遍历一遍之后发现,为啥一样的粒子特效竟然没有合并,why?经过很多测试后发现,如果把透明材质的修改为非半透明的,就可以合并,这就让我很奇怪了?Unity提供了材质动态合并的功能,虽然限制很多,但是对于透明材质的合并,Unity似乎给了一个很玄乎的答案: Semitransparent shaders most often require objects to be rendered in back-to-fr…
原地址:http://www.cocoachina.com/gamedev/gameengine/2011/0406/2756.html 这个脚本由 CocoaChina 版主 “四角钱” 分享,可以将复杂的材质(比如有法线贴图的材质)进行"烘焙",转变为单一的贴图.可用来将 Unity 的游戏移植到移动平台时候使用.请将脚本放 Editor 文件夹里,使用时选择一个 Material 材质,然后在菜单种"Custom/Bake Material"打开并调整照明和其…
1.协程,即协作式程序,其思想是,一系列互相依赖的协程间依次使用CPU,每次只有一个协程工作,而其他协程处于休眠状态. unity中StartCoroutine()就是协程,协程实际上是在一个线程中,只不过每个协程对CUP进行分时,StartCoroutine()可以访问和使用unity的所有方法和component 2.Thread,多线程是阻塞式的,每个IO都必须开启一个新的线程,但是对于多CPU的系统应该使用thread,尤其是有大量数据运算的时刻,但是IO密集型就不适合:而且thread…
1. 发布网页版Unity自适应网页大小 发布网页版,Unity3D自适应网页大小.这个问题困扰了我很长时间,今天终于把他解决了,给大家分享一下. 这里用Uinty4.0发布网页版,我去掉了里面的标题和下载连接地址的Div,目的是让代码看起来易懂. 自适应网页大小与发布网页时PlayerSettings设置的width和height大小无关,只要讲网页里面的标注的代码设置好,就可以实现u3d自适应网页大小. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML…
1. 在Unity中调试可行,发布成exe可行,发布成web不行 Application.dataPath 在Unity中调试是在“..Assets”文件夹下, 发布成exe文件是在“..yourName_Data”文件夹下 using UnityEngine; using System.Collections; using System.Xml; public class CallXml { //XML文件路径 在Unity中调试 public static string localUrl =…
记录在学习<Unity 3.x 游戏开发 经典教材>时遇到的各种问题与笔记 1. 初始不能降低Terrain的高度,需要到Terrain设置的第二个按钮中将Height从0调高 (注意:最右边齿轮按钮里的Terrain Height是整个地形的最大高度,左图是当前笔刷绘制的最大高度)     2. SendMessage() 可以直接调用物体中的一个函数,而不在乎函数属于哪个脚本 // ① 书中P151 currentDoor.SendMessage("DoorCheck"…
SendMessage() 调用其他物体中的指令,先在脚本中编写一个自定义的函数,然后使用SendMessage()命令来调用那个物体上的命令 //①将以下函数附给target对象 void Renamer(string newName) { gameObject.name=newName; } //②在其他脚本上调用这个函数 GameObject.Find("target").SendMessage("Renamer","target_down"…
材质球inspector面板在debug模式下可以看到Custom Render Queue一项: 其默认值为-1,表示使用相应shader的render queue设置. 也可以人为将其改为其它值,例如2000(opaque)或3000(transparent)等. 但严重不建议这样做,因为这使得材质的渲染顺序与shader不一致,容易让人困惑.…
物理材料 切换到脚本   在物理学材料是用来调整摩擦和碰撞对象的反弹效应. 要创建物理材质,请从菜单栏中选择“ 资源”>“创建”>“物理材质 ”.然后将“物理材质”从“项目视图”拖动到场景中的“ 碰撞”中. 属性 属性: 功能: 动态摩擦 已经移动时使用的摩擦力.通常是从0到1的值.零值感觉像冰一样,值1会使它非常快地停下来,除非大量的力或重力推动物体. 静摩擦力 当物体静止在表面上时使用的摩擦力.通常是0到1之间的值.零值感觉像冰,值1会使对象移动变得非常困难. 反弹力 表面有多么有弹性?值…
模型包含 材质(Material),包括 [核心]着色器(Shader) 贴图和其他参数,贴图也算是一种参数 其他,如网格渲染器(Mesh Renderer).动画.坐标 一个材质可以看做为一个Shader的包装,一个预制体 着色器(Shader)属性: Albedo:贴图/颜色 Metallic:物体表面对光线反射的能量,通常金属设置>50%,大部分在90%,非金属<20% Smoonthness:该值越大,物体越光滑 normal map:法线贴图 Emission:自发光 If you…
1. 连接外置摄像头 2. Unity3D中调用外接摄像头,并保存为图片文件…
由于本人英文较烂,边翻译用户手册边学习. 用户手册  IK Components Final IK 包含许多强大高速的IK组件 Aim  AimIK solver是一个对CCD算法(cyclic coordinate decent循环坐标下降算法)的修正,通过旋转骨骼的层次结构,确定瞄准目标后子骨骼的Transform. 它不同于内置Animator的 SetLookAtPosition 和 LookAtIK 功能,因为它能对不一致的层级主轴进行精确的目标转换.(because it is ab…
1. 射线用 Physics.Raycast 都可以判断,用 collider.Raycast 只在某些(不明)情况下可以 void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; // if (collider.Raycast(ray, out hit, 100f)) if (Physics.Raycast(ray,out hit ,100f)) { Debug.Dr…
1. 给角色加角色控制器组件,然后用以下代码可以控制角色移动和跳跃 float speed = 6.0f; float jumpSpeed = 8.0f; float gravity = 20.0f; private Vector3 moveDirection = Vector3.zero; void Start() { // gameObject.rigidbody = false; } void Update() { CharacterController controller = GetC…
角色已经人形化(Humanoid)了,那它的动画可以用在其它的模型上了也就是可以共用一套模型动画了,但是你有没有发现那动画是和fbx模型绑在一起的,没关系你可以选中这几个动画文件按Contrl+D就可以提取出来了,然后你可以把整个fbx模型都删掉了,新生成的动画已经不再基于fbx了,这样可以大大减小资源大小. 如果是一个程序员的话你可能会想那这个实现代码是怎样的呢 using UnityEngine; using UnityEditor; using System.Collections; us…
1. Time.deltaTime 增量时间 以秒计算,完成最后一帧的时间(秒)(只读) 帧数所用的时间不是你能控制的.每一帧都不一样,游戏一般都是每秒60帧,也就是updata方法调用60次(假如你按60帧来算 而真实情况是不到60帧 那么物体就不会运动到你所想要的位置),但是真实情况是一般都达不到60帧 如果你还按60帧那样设定你的物体运动的话,动作会不连贯.所以用deltatime只是用上一帧所花的时间来当做这一帧用的时间,因为没人知道你这一帧会用多长时间.体会下,多打打代码 看看效果 慢…
1. 网上很多方法都说用时间种子来解决,但是在极短的时间内,这种方法没效 Random r = new Random(DateTime.Now.Millisecond); Random Counter = new Random(unchecked((int)(DateTime.Now.Ticks >> ctr))); Random Counter = new Random(System.Guid.NewGuid().GetHashCode()); 2. 用Random结合Hashtable才完…
1. 摄像机预览物体 上下左右远近 把CameraFollow脚本赋给Camera,把要观察的对象赋给target using UnityEngine; using System.Collections; public class CameraFollow : MonoBehaviour { public Transform target; public float targetHeight; public float distance; public int maxDistance; publ…
1. 遇到的问题 从xml读数据,xml的编码用中文就会乱码,改编码格式就调用不了.目前采用默认的ANSI编码. .exe    .txt  .xlsx  .xml  .test Run     √ (路径不能带空格)   √      √      √       √ (.test要有关联的默认打开方式如记事本) Exec    √                          ×      ×      ×       × Run  不能直接打开带有空格的路径,如果带有空格,我给路径加一…
1. 鼠标双击 void OnGUI() { Event Mouse = Event.current; if (Mouse.isMouse && Mouse.type == EventType.MouseDown && Mouse.clickCount == 2) { // 调用你的函数 print("Double Click"); } }…
HUD Mozilla  Mozilla基金会,简称Mozilla(缩写MF或MoFo),是为支持和领导开源的Mozilla项目而设立的一个非营利组织. 称作Mozilla公司的子公司,雇佣了一些Mozilla开发人员并协调Mozilla Firefox网页浏览器.…
1. 给角色添加一个Animator组件和New State,运行后,摆出这种奇怪的姿势 这是因为没有把动画片段赋给New State,可以看到此时的New State为空,把Idle片段拖进去就好了 2. 添加一个WalkBack状态后运行,角色会自动往后走.这是因为Make Transition的Contidions设置反了. Idle → Walk 时Speed (Vertical的值) 应该 Less than -0.1,反之Greater than -0.1 3. 添加了同时拥有Wal…
1. 原始效果  (tip:在4.x的书中有介绍) 2. 打开.html文件原始代码如下 <script type='text/javascript' src='jquery.min.js'></script> <script type="text/javascript"> <!-- var unityObjectUrl = "UnityObject2.js"; if (document.location.protocol…
今天做demo时遇到一个问题:当使用角色控制器操作物体,用 controller.SimpleMove(transform .forward); 语句时物体不能移动,搜索请教了很久,最后终于google到了问题的根本原因.参见unity3d问答.       I suspect you may have some object with a collider childed to your character - the charactercontroller behaves weirdly w…
Unity 游戏开发技巧集锦之材质的应用的创建反射材质 Unity中材质的应用 游戏中,大多数材质的应用都离不开纹理,而纹理本身是图片.所以,在学习本章时,最好在电脑上安装一个可以编辑图片的功能强大的软件,如Photoshop和GIMP.本章使用的是前者.另外,有些纹理需要包含Transparents通道,所以图片最好保存成可以存储相应信息的格式,例如,PSD和TGA. unity中创建反射材质 生活中,反射材质(reflective material)的实例有很多.例如,水面.光滑的金属.镜子…
材质(Materials)用来把网格(Mesh)或粒子渲染器(Particle Renderers)贴到游戏对象上.他们在定义对象怎么被显示发挥重要组成部分.材质包括用于呈现网状或颗粒着色器的参考,所以这些组件不能在没有材质的情况下显示.Material这个需要结合Shader来讲,计算机图形学里本身就没有Material这个东西,引擎加入这个其实是在shader和主程序之间搭建了一座桥梁,可以说Material是一个着色器管理器,所以很多接口都是对shader的控制.这里我们先讲Materia…
Unity原生渲染方案 作者:3dimensions three_dimensions@live.cn 本文为原创内容,转载请注明出处. 做这个的动机是想在原生代码中使用Unity的材质系统绘制,同时由原生代码提供绘制数据,省掉Unity内部的分配内存及数据转换,以及动态模型数据“非托管内存→ 托管内存→ 非托管内存”的传输过程.适用于有大量动态模型数据生成的情况,测试结果在PC和移动平台上均有数倍的性能提升.注意,如果不使用Unity的材质系统,并不需要按这个方案做.方案是我在Miloyip的…
在 Unity 的材质面板(material inspector)上可以定义一系列的参数,对应于 Shader 中的的属性(Properties) 语法如下: Properties { Property [Property ...] } 例如: 大括号中如需定义多个属性,只需定义多个即可,常见的属性类型定义和默认值如下: 数字和滚动条类型 name ("display name", Range (min, max)) = number name ("display name&…