UNITY - 技术教程文章

Unity3d中CharacterController的移动和碰撞分析【代码】

在Unity3d中系统提供的第一人称视角模型First Person Controller的移动可分为两种:一.移动transform 这种移动方式为直接对该人物模型的transform属性做位移操作,移动方式为在Update函数中的写法:void Update () {if(Input.GetKey(KeyCode.W)){transform.Translate(Vector3.forward * Time.deltaTime * speed);}elseif(Input.GetKey(KeyCode.S)){transform.Translate(Vector3.forward * Time.deltaTime * -speed);}elseif(Input....

依赖反转Ioc和unity,autofac,castle框架教程及比较

1、依赖倒置的相关概念http://www.cnblogs.com/fuchongjundream/p/3873073.htmlIoC模式(依赖、依赖倒置、依赖注入、控制反转)2、依赖倒置的方式http://www.cnblogs.com/muzinian/p/3357741.html于依赖反转原则、控制反转和依赖注入的抽象的初学者指南3、主流ioc框架http://www.cnblogs.com/bchp/articles/1527693.htmlhttp://www.cnblogs.com/liping13599168/archive/2011/07/17/2108734.html(1)从测试中,可以看出Autofac和St...

这里先发布一个,自己写得unityUI的适配的方案(插播)

这个适配是依据坐标系的象限的思想来进项适配的。參考了部分的NGUI的适配方案。在程序的事实上,来測量UI距离相机边界的像素然后依据比例来进行适配,个人认为还不错。 放码!。有个前提哦就是你要先定一个尺寸。假如我优先适配1024*768。那在放置这个脚本之前,要把自己的界面还成1024*768的哦。我是依据第一次来进行适配的哦。using UnityEngine; using System.Collections; #if UNITY_EDITOR using UnityEditor; #endifpublic e...

UnityShader之Glitch Art效果【代码】【图】

【博物纳新】是UWA旨在为开发者推荐新颖、易用、有趣的开源项目,帮助大家在项目研发之余发现世界上的热门项目、前沿技术或者令人惊叹的视觉效果,并探索将其应用到自己项目的可行性。很多时候,我们并不知道自己想要什么,直到某一天我们遇到了它。更多精彩内容请关注:lab.uwa4d.com 导读电视信号受到干扰,产生画面抖动、色彩漂移等现象,这种电子设备成像故障产生的效果,被应用在赛博朋克等科幻类型的影视游戏作品中。逐渐成为...

Unity该插件NGUI得知(9)—— Tween并转换成世界坐标系的大小NGUI尺寸【图】

在游戏中,还有一种比较常见的动画,这是进球后产生,分数将被显示在游戏,而快速移动,使其失去位置加入。就打算使用NGUI的Tween来制作这样的分数动画效果。依据 Unity插件之NGUI学习(2),创建一个UI Root。然后使用NGUI创建一个Label和一个Button。在Project窗体中,在Resources/Prefabs目录中创建一个Prefab。该Prefab就是一个NGUI的Label,然后在菜单中选择NGUI->Tween->Rotation和NGUI->Tween->PositionPlay Style表示动画播...

Unity学习疑问记录之正交与透视【图】

Unity中相机的投影是2种方式,正交和透视这是透视方式 正交方式: //计算屏幕宽度 float height = 2.0f * Camera.main.orthographicSize;//正交的size screenWidthInPoints = height * Camera.main.aspect; //长宽比 orthographicSize指的是屏幕中心到顶部的距离,所以*2,印射到真实宽度就是*实际手机比例就行了。 原文:http://www.cnblogs.com/bearhb/p/4514807.html

在Unity场景中控制日夜的轮转【代码】

一、介绍目的:通过在Unity场景中添加C#脚本完成日夜轮转的效果。软件环境:Unity 2017.3.0f3,VS2013 二、操作过程通过拖拽场景中的Directional Light我们知道,只要控制好平行光的旋转就可以模拟出轮转的更替,所以我们要在Directional Light中添加相应的脚本文件。(如何添加脚本文件,可参考 Unity入门教程(上))C#代码如下:using System.Collections; using System.Collections.Generic; using UnityEngine;publicclass Da...

unity 发布WebGL版本找不到unity自带的类

加载asset bundle的时候出现Could not produce class with ID XXX的错误在asset 文件夹下建一个Link的XML,内容如下:<?xml version="1.0" encoding="utf-8"?><linker> <assembly fullname="UnityEngine"> <type fullname="UnityEngine.SphereCollider" preserve="all"/> <type fullname="UnityEngine.AudioSources" preserve="all"/> <type fullname="UnityEngine.ReflectionProbe" preserve="all"/> <type fullname...

王立平--怎么查看Unity的版本号【图】

1.打开Unity,Help->About Unity2.版本原文:http://www.cnblogs.com/mengfanrong/p/5110004.html

Unity3D实践系列01,创建项目【图】

下载并安装Unity5软件客户端。 打开软件,注册Unity帐号,并用注册帐号登录。 点击"创建Project"按钮。 把项目命名为"My First Unity Project"。 点击左下方的"Assert packages"按钮,点击"select all"文字,点击"Done"按钮,点击"Create project"按钮。 创建完毕,多了一个与项目名称同名的文件夹,里面包含了Assert、Library、ProjectSettings、Temp文件夹。 Temp文件夹是为项目创建的临时文件夹,当项目关闭,Temp文件夹也自动消...

自己从0开始学习Unity的笔记 I (C#字符串转换)【代码】【图】

我基本上从0开始学习编程,运算符基本上跳过,因为知道了 “=”这个符号相当于赋值,然后“==”才是等于,其他和普通运算符号差不都,也就跳过了。最基础的赋值那种,我看了下代码,似乎没什么难度,估计新手和我一样,有一本书,大概看看就懂了,我从我遇到的问题开始。我学习时候,发现C#接收用户输入的都是字符串,那么就在网上收集了一下关于字符串的转换问题例子,用户输入一个数字,输出该数字2倍的数字。在函数中,我试着写...

unity提取打包资源

untiy打包资源是不可见的,在代码中需要www加载去提取,当然也有别的方法去提取打包资源,这对于很久远的数据打包资源来说是个很好的方法,因为太久远了就找不到了,只能拿打包资源去提取,之前我写过一篇3.5.6打包资源的提取,但是只能提取出.obj文件,http://blog.csdn.net/itolfn/article/details/22056163,下面还有一种方法,不知哪位大神写的挺好用的,就是用disunity去提取,https://github.com/ata4/disunity/releases,具...

Unity3d NGUI的使用(十四)(NGUI制作Tab形式UI)【图】

使用NGUI制作Tab表格,使用到的NGUI组件有,UIToggle,UIToggled ObjectsUIToggle,负责按键的分组UIToggled Objects:负责当前按键激活哪个显示的内容a.创建一个2D UI,在UI Root下分别创建两个UIButtonb.在UIButton上加入UIToggle与UIToggled ObjectsUIToggled Objects:Activate:当前开头激活状态时,需要激活哪些组件Deactivate:当开头处于非激活状态时,需要取消哪些组件的激活状态c.将UIToggled Objects的激活状态指向需要...

【Unity3D技术文档翻译】第1.1篇 AssetBundle 工作流【图】

译者前言:本章是关于从创建到加载,再到使用 AssetBundle 的整个流程的概述。阅读本章将对 AssetBundle 的工作流程有个简单而全面的了解。本章原文所在章节:【Unity Manual】→【Working in Unity】→【Advanced Development】→【AssetBundles】→【AssetBundle Workflow】AssetBundle 工作流可以按照下面的这些步骤来学习 AssetBundle。关于每个步骤的详细内容,可以在本文档的其他章节中找到。将资产(Assets)配置到 AssetBu...

Unity中的一键打包实现【代码】

unity开发中 在发包之前经常会做一些额外操作。比如打包assetbundle。使用lua的还会创建对应的wrap代码等。以及编译完成后上传assetbundle包到web服务器。app到测试服务器等这些额外的动作会导致打包的碎片化。于是写了这么一个一键打包的脚本。实现不怎么漂亮,好在完成了功能,好在这代码几乎不会改动也没什么人会用。思路就是把所有要做的事情依次执行,唯一的问题是某些步骤执行完毕后会有一个编译过程,要等编译结束才能执行下...

Unity3D游戏开发之如何隐藏物体

隐藏物体只需调用 GameObject 的 setActive 方法即可,GameObject.setActive(false); // 隐藏GameObject.setActive(true); // 显示但是偶尔会遇到隐藏后无法再次显示出来的情况,是因为开发者将 GameObject 弄成了局部变量,开发者让每一次对控件的操作都去现用现 Find ,但是 Find 方法只能 Find 到 setActive 为 true 的物体,Find这个函数只返回活动的游戏物体,所以隐藏后 就无法 Find 到该控件,也就无法再次对其进行...

Unity优化总览

CPUGC序列化与反序列化,如protobuff,json解析String的频繁构造,拼接,如ToString()会生成字符串,Object.name会返回拷贝闭包和匿名函数,在闭包中调用外部变量时会创建临时class对象,匿名函数当做参数传入时,也会有内存开销有开销的函数,如Camera.main等,缓存一下Transform只存局部坐标,旋转,没次获取和设置都有计算开销IO操作,debug系列日志函数,打包并不会自动屏蔽UICanvas重建,材质的重新创建,排序,Mesh重建等,建议全部动静分离图集...

Unity3D热更新全书-脚本(五) NGUI【图】

让我们实际的研究一下如何将NGUI和C#LightEvil结合起来。这里使用NGUI2.7,因为他是一个开源的版本,NGUI最新的版本未经作者的许可,是不可以带入我们的开源项目使用的。 这个例子完成的功能是从NGUI例子里找出了三个界面,按最下方的按钮依次进行切换这是在之前的框架演示Mode1的基础上做的由一个状态机去进行驱动,这也是我推荐各位使用脚本的方式。《=这是脚本,也是程序Mode1的模式是定义一个接口类,然后由脚本继承此类型实现...

事件/委托机制(event/delegate)(Unity3D开发之十七)【代码】

猴子原创,欢迎转载。转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/46539433Delegate作用我就不多说了,Unity中可以直接使用EventHandler实现事件委托,咱们直接事例吧。一、场景物体移动结束后事件监听假如PlayerControl,移动结束后触发MoveComplete事件。using UnityEngine; using System.Collections; using System;publicclass PlayerControl : MonoBehaviour {pu...

Unity中实现通过鼠标对物体进行旋转平移缩放【代码】

废话不多说,直接上代码 —— 将下面的代码赋给所需要控制的物体上即可。using System.Collections; using System.Collections.Generic; using UnityEngine;public class MouseControlModel : MonoBehaviour {//旋转最大角度public int yMinLimit = -20;public int yMaxLimit = 80;//旋转速度public float xSpeed = 250.0f;public float ySpeed = 120.0f;//旋转角度private float x = 0.0f;private float y = 0.0f;void Update(){if...

学习经验谈 Unity3d开发中最佳语言还是C

作为学unity3d的新人,开始学它之前就知道unity3d支持C#和JS等等,但在选择用什么语言上我查阅了很多文件,当这个月我用上了unity3d 3.0版时,我发现unity3d 对MONO framework的支持与选择,说明了unity3d 的战略意图:1:首先unity3d 选择C#,是因为微软这棵大树下有巨量的程序员,并且C#在网络开发方面成绩很优秀2:为什么在选择Mono这个基于C#的开源框架,Mono是一个由Novell公司(先前是Ximian)主持的项目,众所周知,C#是Micr...

Unity3D游戏开发之鼠标滚轮实现放大缩小【图】

今天为大家分享的是在Rpg游戏中十分常见的鼠标滚轮调整摄像机视野效果,首先我们先创建一个游戏场景: 接下来我们编写一段脚本代码:using UnityEngine; using System.Collections;public class CameraZoom : MonoBehaviour {void Start () {}void Update () {//Zoom outif (Input.GetAxis("Mouse ScrollWheel") <0){if(Camera.main.fieldOfView<=100)Camera.main.fieldOfView +=2;if(Camera.main.orthographicSize<=20)Cam...

win10系统,mysql-installer-community-5.7.19.0.msi安装【代码】【图】

1.进入官网找到自己所需的安装包:https://dev.mysql.com/ ,路径:DOWNLOAD-->MYSQL Community Edition(GRL)-->MYSQL on Windows (Installer & Tool) 2.找到所需的安装包,:3.点击download。这里选择的是安装版(mysql -install-community)4.选择不登陆下载。5.双击运行下载好的mysql-installer-community-5.7.19.0.msi,程序运行需要一些时间,请等待一下。6.运行成功之后,进入欢迎的界面.选择我同意协议,不然无法进行下一步。...

Unity发布的WebGL页面应用实现全屏/非全屏切换【代码】【图】

很简单,在场景中添加一个UGUI按钮,实现点击就切换全屏/非全屏状态 其实发布出webgl之后,页面上场景窗口右下会有一个按钮,就是切换全屏的,但是想用代码在程序里实现首先看页面上那个按钮的js脚本是怎么写的<div onclick="gameInstance.SetFullscreen(1)"></div>注意里面的代码就一行:gameInstance.SetFullscreen(1);也就是在Unity中调用外面的js方法所以先在js中写个切换全屏的方法function FullScrSwitch(para){gameInstanc...

unity学习 5.x依赖打包和解包

unity5已经封装好了接口,所以依赖打包并没有那么神秘和复杂了。打包:1.定义好资源的assetBundleName2.BuildPipeline.BuildAssetBundles,指定资源目录和压缩类型 生成:1.Assetbundle文件,加载时的首要文件,包含所有资源的依赖信息2.每个文件对应一个.manifest,不用管他,但是可以打开查看他引用了哪些资源。 加载:1.获取AssetBundle文件2.LoadAsset("AssetBundleManifest")转换为AssetBundleManifest3.通过manifest.GetAllD...

Unity之2D Sprite Outline外轮廓效果【代码】【图】

操作系统:Windows8.1显卡:Nivida GTX965M开发工具:Unity5.3.8f1Unity提供了2D Object Sprite对象,但是没有提供外轮廓Outline效果的支持,本次将会使用扩展版本的默认sprite着色器以及一个简单的组件来添加sprite的轮廓。这可以用于突出鼠标上的精灵,突出显示环境中的元素,或仅仅使精灵从周围环境中脱颖而出。首先,在您的项目中创建一个名为Sprite-Outline的新着色器。 这个着色器提供了默认sprite着色器的所有功能,并添加了s...

unity实现二次退出提示

//实际项目中可以直接用GUI插件做个退出提示框。美观又和谐。public float uTime = 2; void OnGUI() { if (uTime < 2)   {    GUI.Label(new Rect(Screen.width/2-50,Screen.height/2-50,100,40),"再按一次退出");    uTime -= Time.deltaTime;    if (uTime < 0)     {      uTime = 2;     }  ...

《转》Unity3D研究院之UGUI一个优化效率小技巧【代码】【图】

无意间发现了一个小技巧。如下图所示,可以发现UGUI的Image组件的RaycastTarget勾选以后会消耗一些效率,为了节省效率就不要勾选它了,不仅Image组件Text组件也有这样的问题。 一般UI里也就是按钮才需要接收响应事件,那么大部分image和text是是不需要开RaycastTarget的。 但是问题就来了,Unity默认在hierarchy窗口Create->UI->Image 、Text的时候就会自动帮我们勾选上RaycastTarget, 一个复杂点的界面至少也300+个Image和Text,...

【Unity优化】GC优化策略

Garbage:内存被不会被使用的数据占据。Garbage collection:使上述内存能够被使用。两种类型代码:核心引擎代码、用户代码(托管代码)1)核心引擎代码:使用手动内存管理,不使用垃圾回收。2)用户代码:使用自动内存管理,不需要知道内存管理细节自动内存管理中的垃圾回收1)两种内存池:栈(stack)、堆(heap 托管堆)2)变量在使用范围内时,存储它的内存被分配(allocated)3)变量超出使用范围时,存储它的内存被重新分配(...

Unity3D在iOS下为啥不能更新的资料收集

几个基本概念 Mono 是什么鬼?Mono是一个.Net工具,包括c#编译器和共通语言执行平台,可运行在winodws linux mac unix各种平台,其虚拟机包含一个实时编译引擎, Unity3d就是用mono这个东西实现跨平台的估计CIL(Common Intermediate Language通用中间语言)CIL可以在任何支持CLI(Common Language Infrastructure,通用语言基础结构)的环境中运行,就像.NET是微软对这一标准的实现,Mono则是对CLI的又一实现。由于CIL能运行在所有支...