UNITY - 技术教程文章

Unity3d 模拟视锥的实现【图】

一个独立游戏 Teleglitch 使用了一种欺骗手法来模拟视锥,效果如下:博主看了看了看提示Actually, the line of sight shadows aren’t done with perspective. They are just black polygons extruded from the walls away from the player. The math is similar to black 3d walls extruding towards the camera, but if you reallylook at them, they aren’t.原理和卡通渲染挤出边是一样的,就是把物体沿着视线(玩家)向外挤出一...

Unity的AudioClip加载设置总结【图】

基本来说就是翻译并记录一下官网对AudioClip的Manual文档说明:https://docs.unity3d.com/2017.4/Documentation/Manual/class-AudioClip.html。文档版本是2017.4。 Audio ClipAudio Clips包含着被Audio Source使用的数据。Unity支持单声道、立体声/双声道,以及多声道(最高为8声道即7.1环绕声)的音频资产。Unity支持的音频格式为:.aif、.wav、.mp3和.ogg。Unity也可导入Tracker Modules文件,格式为.xm、.mod、.it和.s3m。Track...

Unity日常记录 - QualitySettings 性能设置【图】

unity打包时,可通过QualitySettings优化图像性能,这是最常设置也是最明显的图像性能体现设置图形质量的水平,一般来说,质量是以牺牲性能为代价的,所以最好不要追求移动设备或旧硬件的最高质量,因为它会对游戏产生有害的影响。在Edit->Project Settings->Quality设置默认6个等级,也可自行配置。根据项目的需求,在低端或者高端机,选择等级 RenderingPixel Light Count 表示渲染使用的像素灯最大数量 ,如果有更多的光照亮一个...

unity 获得父子节点

与常识不同,unity中获得父子节点需要通过transform。即先获得父/子节点的transform,然后再通过父/子节点的transform获得父/子节点。获得父节点gameObject:GameObject parentGameObject=transform.parent.gameObject;获得子节点gameObject:foreach (Transform child in transform) {    GameObject childGameObject=child.gameObject;    ...}参考:http://www.360doc.com/content/14/0414/14/12282510_368791938.shtml原...

Unity3D 基本元素【图】

1. Unity的基本界面主要包含4个面板:场景面板(Scene),属性面板(Inspector),层次面板(Hierarchy),项目面板(Project)。场景面板(Scene):场景中最常用的的部分,场景中所有的模型,光源,摄像机,材质,音效等都显示这个面板上。属性面板(Inspector):可以显示场景中选择游戏对象的各种属性,包括对象的名称,便签,位置坐标、旋转,缩放以及组件等等。层次面板(Hierarchy):显示场景中的所有物体,包括模型,灯光...

(转)Unity笔记之编辑器(CurveField、DoubleField、EnumMaskField、EnumPopup) ... ...【代码】

1. CurveField创建的是一个类型为AnimationCurve的曲线变量,看代码:[code]csharpcode:using UnityEngine; using System.Collections; using UnityEditor; // 编辑器命名空间的引用public class Editor2 : EditorWindow // 编辑器类 {private AnimationCurve _animationCurve = new AnimationCurve(); // 初始化一个曲线[MenuItem("EditorDemo/CreateWindow")] // 在编辑器中添加一个菜单static void CreateWindow() // 下面这个...

Unity uGui RawImage 渲染小地图【图】

制作类似 RPG 游戏时,可能会需要显示小地图。小地图的制作一种方式是用另一个摄像机来渲染到一张纹理上,实时显示到UI界面。 以Unity 5.0 的 UI 系统为例: 在地图正上方放置一个摄像机,设置其 Culling Mask,比如:Ground(地面)、MinimapSign(玩家怪物标识),创建一张 Render Texture,将 Target Texture 属性指向这张纹理图片,如下图所示: 创建 UI 面板,因为这里小地图打算制作成圆形,使用 Mask 组件和一张掩码图片可以...

我写的书:Unity Shader编程【图】

本来是准备在这里一篇篇发的,后来很多时候发现网上写各家的在线编辑都不是很统一,导致我写一遍后在其它地方还得重新编排。所以就一口气,用word写完了,在这里集成一本pdf版的书,供大家免费参考。所以,关于前面的系列文章我就不继续了,都在这本书里。有反馈的话可以通过书中的方式联系本人,我会对书中内容进行更新。书籍下载地址:http://98jy.net/course/17/info原文:http://blog.csdn.net/tinyhum3d/article/details/4521...

Unity3D 多平台_预编译相关宏定义【代码】

API地址:http://docs.unity3d.com/Documentation/Manual/PlatformDependentCompilation.html平台定义 UNITY_EDITOR 编辑器调用。 UNITY_STANDALONE_OSX 专门为Mac OS(包括Universal,PPC和Intelarchitectures)平台的定义。 UNITY_DASHBOARD_WIDGET Mac OS Dashboard widget (Mac OS仪表板小部件)。 UNITY_STANDALONE_WIN Windows 操作系统。 UNITY_STANDALONE_LINUX Linux的独立的应用程序。 UNITY_STANDALONE 独立的平台(Mac,...

Unity 入門 - 延遲解析【代码】【图】

本文大纲:小引共享的范例代码使用 Lazy<T>使用自动工厂注入自定义工厂 小引当我们说「解析某个型别/组件」时,意思通常是呼叫某类别的建构函式,以建立其实例(instance)。但有些场合,我们会希望解析时先不要生成对象,而是等到真正要呼叫对象的方法时才建立对象。这种延后建立对象的解析方式,叫做「延迟解析」(deferred resolution)。延迟解析通常用在哪里呢?一个典型的场合是欲解析的对象的创建过程需要花较多时间(例如...

Unity:通过LitJson对JSON数据创建与使用【代码】

本文章首发于Unity:通过litjson对json数据创建与使用 科普时间:LitJSON是一个使用C#编写的.NET库,我们可以通过它来处理JSON数据。JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生...

【Unity Shaders】Vertex & Fragment Shader入门【图】

写在前面三个月以前,在一篇讲卡通风格的Shader的最后,我们说到在Surface Shader中实现描边效果的弊端,也就是只对表面平缓的模型有效。这是因为我们是依赖法线和视角的点乘结果来进行描边判断的,因此,对于那些平整的表面,它们的法线通常是一个常量或者会发生突变(例如立方体的每个面),这样就会导致最后的效果并非如我们所愿。如下图所示:因此,我们有一个更好的方法来实现描边效果,也就是通过两个pass进行渲染——首先渲...

unity制作360°全景VR视频

转:https://blog.csdn.net/zjh_368/article/details/82351581 1、导入Helios插件2、在场景中加入Helios-prefabs-Helios3D预制体到Hierarchy面板,并禁用MainCamera3、设置文件保存位置WorkingFloder,勾选Camera Armed,运行可录制场景视频,其他参数按需设置4、点击Helios按钮,那么去掉以上一些选项的勾选,点击按钮合成视频(当然这要你能在Unity中直接安装FFMPEG的话,如果安装不了,那么就另外下载FFMPEG,操作如下)4、利用FF...

Unity Shaders and Effects Cookbook (4-1)(4-2)静态立方体贴图的创建与使用【图】

開始学习第4章 - 着色器的反射看完了1、2节,来记录一下。反射主要是利用了 Cubemap 立方体贴图。认识Cubemap立方体贴图。就如同名字所说。在一个立方体上有6张图。就这样觉得吧。假想一下 ,在一个艳丽的房间里。有一个表面是镜子的圆球。那这个圆球表面就反射了房间里面的全部东西。就是一个大号的凸镜。这是到网上找得一张图,非常直观的表达了我的意思……注意标题中说的,静态立方体贴图。为什么叫静态。由于这一次使用的立方...

Unity3D 调用Java,Java调用Unity3D

1。无返回值 AndroidJavaClass fee = new AndroidJavaClass("com.wiker.Test");fee.CallStatic("print", "Hello", "World"); Java源代码package com.wiker public class Test{ public static void print(String str1,String str2){ System.out.println(str1); System.out.println(str2); }} java程序将打印HelloWorld 2。有返回值AndroidJavaClass fee = new AndroidJavaClass("com.wiker.Test");stringstr = fee.CallStatic<st...

unity2017 Post processing【图】

首先,去Unity资源商店下载名为Post processing stack的资源包,并导入工程。然后,在camera上挂载Post Processing Behaviour脚本。这时,你需要在工程界面右键 Assets > Create > Post-Processing Profile.然后在Post Processing Behaviour脚本上选择你新创建的 Post-Processing Profile文件。当你在选择profile的时候,会发现已经存在一个默认的文件了,叫做Test Post-Processing Profile,我们不管这个,就选择自己创建的profil...

我的Unity3D学习日记-05(官方实例2Droguelike)

快要一个月没有更新了,这段时间也没闲着。今天就把这段时间学到的东西稍微总结一下。前段时间开始看一些实战开发的内容和教程。一些是来自于麦子学院的视频,一些来自于蛮牛教育,还有一部分官方教学视频。最终选择试着跟着官方的教程,尝试敲一次这个叫做拾荒者的官方示例。过程中遇到了许多之前不明白的知识,所以虽然代码量不是很大,但是仍然消耗了大量的时间用于查询其中一些使用的方法和技巧。最终当然是仿照着实例成功地将...

【Unity 3D】学习笔记三十六:物理引擎——刚体【图】

物理引擎就是游戏中模拟真是的物理效果。如两个物体发生碰撞,物体自由落体等。在unity中使用的是NVIDIA的physX,它渲染的游戏画面非常逼真。刚体刚体是一个非常非常中要的组件。默认情况下,新创的物体是不具备物理效果的,而刚体组件可以给物体添加一些常见的物理属性。比如说:质量,摩擦力,碰撞等。如果对象添加了刚体组件,那么它将感应物理引擎中的一切物理效果。简单的使用下首先穿件一个游戏对象,接着在hierarchy视图中选...

unity3d 导入google play services插件工程【代码】

最近在给unity工程尝试接入google play services插件,遇到了些问题,记录一下。之前在做android插件的时候,都是自己创建一个android工程,把生成的.class文件打包成jar包,然后把libs文件,AndroidManifest.xml文件一齐都放到Assets/Plungins/Android目录下。在Unity里运行build就可以得到apk文件。而最开始遇到google play services时,突然不知道该怎么做了。最开始尝试把google play services也打成jar包,按以前的方法来做,...

【Unity Shaders】学习笔记——SurfaceShader(一)认识结构【代码】

【Unity Shaders】学习笔记——SurfaceShader(一)认识结构转载请注明出处:http://www.cnblogs.com/-867259206/p/5595747.html写作本系列文章时使用的是Unity5.3。 写代码之前:当然啦,如果Unity都没安装的话肯定不会来学Unity Shaders吧?阅读本系列文章之前你需要有一些编程的概念。在VS里面,Unity Shaders是没有语法高亮显示和智能提示的,VS党可以参考一下这篇文章使代码高亮显示,也可以下载shaderlabvs或NShader之类的插...

Unity进阶技巧 - 使用MonoDevelop来断点调试【图】

前言断点调试在编程调试过程中是一项非常重要的功能,而Unity自带的脚本编辑器MonoDevelop需要进行一些设置才能使用断点调试的功能,今天我们就来看看如何使用MonoDevelop进行断点调试。【版本环境】Unity版本:5.2.2你将学到什么?如何设置Unity的默认脚本编辑器如何连接MonoDevelop和Unity进程进行调试一、设置Unity的默认脚本编辑器如果没有特别修改过Unity的脚本编辑器的朋友,可以跳过这一段图一:打开Preferences窗口图二:修...

Unity容器中AOP应用示例程序【代码】

转发请注明出处:https://www.cnblogs.com/zhiyong-ITNote/p/9127001.html实在没有找到Unity容器的AOP应用程序示例的说明,在微软官网找到了教程(https://docs.microsoft.com/zh-cn/previous-versions/msp-n-p/dn507492(v%3dpandp.30))看的眼睛疼,而且说得也不是很详细。我自己根据一些资料做了个demo。关键代码:/// unity container 的AOP可以完成IOC的功能,在我们使用AOP的时候 /// 也就完成了依赖项的实例化。/// 完成DI I...

Unity3D笔记 切水果 一【代码】【图】

最终效果: 一、选择背景图片,选择GUI Texture 二、创建一个空的GameObject,然后添加背景音乐三、创建GUISkin四、主要代码#pragma strictvar myGUI:GUISkin;private var isSound1Button:boolean=false; private var isSound2Button:boolean=true; private var sound:AudioSource;function Start () {sound=gameObject.GetComponent(AudioSource);//方法2创建的空GameObject 里面查找背景音乐}function Update () {}function On...

Unity协程使用经验

【Unity协程使用经验】1、协程的好处是,异步操作发起的地方和结束的地方可以统一在一个方法,这样就不用引入额外的成员变量来进行状态同步。2、在一个协程中,StartCoroutine()和 yield return StartCoroutine()是不一样的。  前者仅仅是开始一个新的Coroutine,这个新的Coroutine和现有Coroutine并行执行。  后者是返回一个新的Coroutine,当这个新的Coroutine执行完毕后,才继承执行现有Coroutine。3、由于协程在StartCorou...

unity Transform类

Transform 变换,是场景中最常打交道的类,用于控制物体的位移,旋转,缩放等功能。TransformClass, inherits from Component, IEnumerablePosition, rotation and scale of an object.控制物体的位置,旋转和缩放。Every object in a scene has a Transform. It‘s used to store and manipulate the position, rotation and scale of the object. Every Transform can have a parent, which allows you to apply position, rotat...

Unity学习-碰撞检测(七)【代码】【图】

Unity脚本说明Unity支持语言: C#(主流),JavaScript,Boo 创建脚本: 【Assets-Create-C# Script】学习案例布置场景:添加一个Plane,3个Cube,一个Directional light 设置启动项(Preferences)导入UnityVS,方便用vs开发unity 【Assets-Import Package-Visual Studio 2014 Tools】 写一个让方块移动的脚本(Move) 【Assets-Create-C# Script】 ...

在Unity中如何实现重复循环效果?

欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。 在Flash中,如果重复执行一个任务可以使用Update函数,不过如果需要定时重复执行某一任务的话该函数就不方便了,但是可以使用yield和waitforsecond这两个函数来实现。以下为关键部分代码。void Start () {StartCoroutine("DoSomething");}IEnumerator D...

Unity Shader 笔记 一【代码】

Properties语义块的定义Properties{Name ("display name",PropertyType) = DefaultValueName ("display name",PropertyType) = DefaultValue//更多的属性}例如Shader "Custom/MyShader1" {Properties{_MainTex ("Texture", 2D) = "white" {}//Numbers and Sliders_Int ("Int",Int) = 2_Float ("Float", Float) = 1.5_Range ("Range",Range(0.0,5.0)) = 3.0//Colors and Vectors_Color ("Color",color) = (1,1,1,1)_Vector ("Vector...

Unity3D开发一个2D横版射击游戏【代码】【图】

教程基于http://pixelnest.io/tutorials/2d-game-unity/ , 这个例子感觉还是比较经典的, 网上转载的也比较多. 刚好最近也在学习U3D, 做的过程中自己又修改了一些地方, 写篇文和大家一起分享下, 同时也加深记忆. 有什么纰漏的地方还请大家多包涵.1.创建第一个场景新建工程,在Project面板创建文件夹, 是为了更好的规划管理资源文件.接着在Hierarchy面板上创建多个空对象(这样的结构也是清晰了整个游戏的层次, 对象之间的关系一目了然...

Unity3D 旋转

Unity有两种设置物体旋转的方式,一种时用Rotate()函数来旋转,另一种时直接构造目标Quaternion来直接赋予rotation。好吧,不知到写什么,各种旋转和unity2D差不多。在国内网站基本都是写入门的结果,让人头疼。Unity中的LookAt的使用:使用LookAt可以使得物体的Z坐标指向目标方向。但是如果指向的过程中,要X轴指向一个确定的方向,也就是说,知道这个物体的最终的Z轴方向,和X轴方向,要通过这两个向量求的物体最终的Rotation,...