
Unity 3D
李发展
《iOS移动开发从入门到精通》、《神奇的Photoshop脚本自动化与插件开发》、《幻灯之美-PPT设计艺术》图书作者,苹果商店热门应用《互动教程》作者,互动教程网创始人。拥有20多年的IT行业工作和教学经验,曾就职于知名外企,主要负责iOS高级开发、Java开发,服务过中国电信,宾利,古琦,香格里拉,杜蕾斯等行业标杆品牌。拥有丰富的实战和教学经验,授课形式不拘一格。熟悉iOS、Swift、Java、UI设计、Javascript开发等技术。
展开
-
Unity3D的进度条
//关于Unity3D的进度条//在大场景加载时,都希望有一个进度条能显示当前加载的百分比,而不是卡在当前场景或者是直接黑屏。 //Unity3D提供了一些函数供我们使用。Application.LoadLevelAsyncusing UnityEngine;using System.Collections;public class example : MonoBehaviou转载 2013-03-04 14:56:42 · 2805 阅读 · 0 评论 -
unity3d 遍历检测某个子物体
//把这个函数放到你的代码中 check代表你要查询的物体 name为名称 如return GetTransform(transform,"bone12"); Transform GetTransform(Transform check,string name) { foreach (Transform t in check.GetComponentsInChildren())转载 2013-03-04 17:21:02 · 1097 阅读 · 0 评论 -
使用 MonoDevelop 调试 Unity3D 的正确步骤
Unity3D 是一个基于 Mono 的跨平台游戏引擎,支持 PC 、MAC 、 Android 、IOS 等多种平台,其 3.0 以后的版本支持用 MonoDevelop 调试,很多人安装了之后发现 MonoDevelop 的调试按钮是灰色的,无法进行调试,通过看官方文档和测试,发现正确的调试步骤如下:MonoDevelop 的安装与设置: 下载并安装 Unity3D 以及转载 2013-03-04 17:49:39 · 2908 阅读 · 0 评论 -
unity3d 生命周期
一个游戏组件的脚本有一个生命周期——一开始实例化,直到结束实例被销毁。在这期间,他们有时候处于激活状态,有时候处于非激活状态;对于活动,对用户有时候可见,有时候不可见本文主要讨论常见脚本的的生命周期: 如下图 常见的 script 执行方法和流程 上图为 常见见的脚本 方法 下面我们看看每个方法的转载 2013-03-04 17:37:32 · 1450 阅读 · 0 评论 -
unity3d iphone游戏开发优化
- 试试把gameobject 一个一个禁用,确定下什么最影响性能- stats 里面有多少个 Draw calls & 三角形- 合并网格物体- 合并材质张数- 不要用网格碰撞.- Unity对带动作的模型渲染消耗比较大,如果是静态的不带动作文件的模型渲染不会出现效率问题,但是要确保只绘制屏幕内的转载 2013-03-04 17:47:31 · 832 阅读 · 0 评论 -
unity 连php
function Login() { var form = new WWWForm(); //创建一个WWWForm对象。 form.AddField( "myform_hash", hash ); //add your hash code to the field myform_hash, check that this variable name is the same as转载 2013-03-04 17:18:18 · 1593 阅读 · 0 评论 -
Transform - Functions
Functions Translate (translation : Vector3, relativeTo : Space=Space.Self) : void 平移物体,space可以是Self和World,这个不用说了吧 Rotate (eulerAngles : Vector3, relativeTo : Space = Space.Self) : void 绕欧拉角转载 2013-02-21 14:45:21 · 1042 阅读 · 0 评论 -
unity3d Object.Destroy 销毁
static function Destroy (obj : Object, t : float = 0.0F) : voidDescription描述删除一个游戏物体,组件或者资源。物体obj现在被销毁或在指定了t时间过后销毁。如果obj是组件,它将从GameObject销毁组件component。如果obj是GameObject它将销毁GameObject全部它的组件和Game转载 2013-02-21 14:49:56 · 35885 阅读 · 0 评论 -
unity3d 后台资源加载 yield用法
项目需求是一个应用在启动时需要读取几个配置文件,原始文档自然是excel格式,为了方便,我把它们转存为csv格式,即用逗号分割的文本格式,然后在js脚本中自己解析,倒也轻松,但是问题就是解析得比较慢。 一个100行80多列的文档解析需要几秒钟,这个有点难受了。更可怕的是unity发布到ios上的程序启动有个限制,超过一定的时间没有加载完成会被系统强制终止。控制台错误输入如下:A转载 2013-02-21 15:04:09 · 1504 阅读 · 0 评论 -
Unity3d 血条/进度条制作
/*用Unity做血条或进度条真的很方便,GUI里scrollbar就可以轻松实现,再加上lerp一个血条或进度条就完成了。*/using UnityEngine;using System.Collections; public class BloodBarTest : MonoBehaviour { public GUISkin theSkin; publi转载 2013-02-21 15:22:26 · 3801 阅读 · 0 评论 -
unity3d中连接数据库 MySQL
1.C#代码:*/using UnityEngine;using System;using System.Collections;using System.Data;using MySql.Data.MySqlClient;public class CMySql : MonoBehaviour { // Global variables public转载 2013-02-21 15:25:08 · 1024 阅读 · 0 评论 -
unity3d 倒计时中最后几秒颜色改变的方法
InvokeRepeating("TimeColorChange",0,0.5F);//利用重复调用的方法void TimeColorChange(){ if(labTime.Color==Color.red) { labTime.Color=Color.white; }else if(labTime.Color==Color.wh转载 2013-02-21 15:28:18 · 1859 阅读 · 0 评论 -
Unity3d Glow + Outline 轮廓描边
轮廓描边是游戏中的细节 但是一个有特色的效果还是会让人眼前一亮,Glow + Outline 的效果就像求生之路2和暗黑3的轮廓描边界一样 对轮廓描边后再进行模糊处理在unity3d中的实现1、场景图像渲染之前 void OnPreRender{ ...... 另外添加一个摄像机A 这里必须将GlowOutlineCamera转载 2013-02-21 15:33:11 · 10154 阅读 · 1 评论 -
unity3d EZGUI的几种隐藏GameObject的方法比较
1.UIButton.Hide(true);2.UIButton.gameObject.active=true;3.UIButton.gameObject.setActiveRecursively(true);第一种方法仅仅看不到此GameObject,此GameObject所附带的脚本还是能被使用的,也就是说此GameObject还能被转载 2013-02-21 15:34:34 · 1831 阅读 · 0 评论 -
Unity的Start和Awake的执行顺序
1. 对于给定的一个GameObject,其包含的组件中的Awake函数肯定在Start函数之前执行;2. 对于GameObject1和GameObject2,如果GameObject2的Start函数依赖于GameObject1的存在,那么将可能导致崩溃,因为此时GameObject1可能还没有构造3. 总之在Unity3D中,不同物件的构造是无序的,这个需要注意。转载 2013-02-21 15:35:27 · 1403 阅读 · 0 评论 -
Unity3d 三维空间,向量,矩阵
Vector3: Unity3D中Vector3类定义(只写有用的): 属性: x,y,z 表示一个空间向量。 this 用于访问x,y,z三个数据使用数组的方式访问,比如[0][1][2] normalized 返回单位化向量后的值(只读)。单位化向量是个很重要转载 2013-02-21 14:47:31 · 6174 阅读 · 0 评论 -
unity3d StopCoroutine 停止协同程序
function StopCoroutine (methodName : string) : voidDescription描述停止这个动作中名为methodName的所有协同程序。请注意只有StartCoroutine使用一个字符串方法名时才能用StopCoroutine停用之.// 这个例子演示如何调用一个使用字符串名称的协同程序并停掉它 functio转载 2013-02-21 14:55:47 · 9534 阅读 · 0 评论 -
Unity3D 协同程序和让步
在编写游戏代码时,通常需要在脚本中结束一系列的事件。例如: private var state = 0; function Update() { if(state==0) { //do step 0 state = 1; return; } if(state==1) {转载 2013-02-21 15:07:11 · 954 阅读 · 0 评论 -
unity3d中调用别的exe应用程序方法
using UnityEngine;using System.Collections;using System.Diagnostics; public class LoadExe : MonoBehaviour {// Use this for initializationvoid Start () {}// Update is called once per fram转载 2013-02-21 15:16:01 · 2340 阅读 · 0 评论 -
Unity3d 中行为类之间的简单交互
下面我们来建立一个书的行为类文件using UnityEngine;using System.Collections;using System.IO;using System.Xml;public class Book : MonoBehaviour {// Use this for initializationstring _FileLocation;string转载 2013-02-21 15:27:05 · 1809 阅读 · 0 评论 -
Transform类
这个就是U3D所封装的矩阵运算了,用于缩放,平移,还有定位(这个囧,他把矩阵给放这用了,所有物体都可以用transform类型来存放)。Transform所实现的功能不过就是物体矩阵的运算罢了,具体如下: Variables position Vector3类型,物体位置,相对于世界坐标系的值。就是矩阵的最后一行的值。 lo转载 2013-02-21 14:31:57 · 3568 阅读 · 0 评论 -
unity3d 定时循环
function Start () {StartCoroutine("DoSomething");}function DoSomething () {while (true) { //需要重复执行的代码就放于在此处 print("DoSomething Loop"); //设置间转载 2013-02-21 15:05:01 · 1054 阅读 · 0 评论 -
Unity脚本周期关系
转载 2013-02-21 15:08:07 · 760 阅读 · 0 评论 -
Unity3d 程序定时器
Unity3d 固定一段时间进入某个方法using UnityEngine; using System.Collections; public class NewBehaviourScript : MonoBehaviour { // Use this for initialization void Start () { InvokeRepeating(转载 2013-02-21 15:14:59 · 645 阅读 · 0 评论 -
unity3d 加载进度条<带图,带当前加载百分之多少>
using UnityEngine;using System.Collections;public class HHHHHHHH : MonoBehaviour {public GUIStyle progressbar_bj; //背景图public GUIStyle progressbar_qj; //前景图public GameObject obj;WWW ww转载 2013-02-21 15:19:12 · 2809 阅读 · 0 评论 -
Unity3D Glow Effect 自发光 颜色溢出效果
unity自带的image effect中的一个摄像机特效。但它是针对全屏幕渲染的。而且我们要明确一点,只需你知道我们场景中的GameObject的材质shader通过alpha通道进行控制这个光晕的。也就是说将alpha变成0那么将是原来的颜色。1、控制每个gameobject发光颜色等,推荐使用Self-Illuminated Shader这个系列的Shader转载 2013-02-21 15:31:49 · 22426 阅读 · 0 评论 -
Rigidbody.AddForce 添加力
添加一个力到刚体。作为结果刚体将开始移动。// Adds a force upwards in the global coordinate system//在全局坐标系统添加一个向上的力function FixedUpdate () { rigidbody.AddForce (Vector3.up * 10); //rigidbody.AddForce (0, 10, 0);转载 2013-02-22 11:49:45 · 6452 阅读 · 0 评论 -
根据不同的旋转速度,改变这个材质
// Change the material depending on the speed of rotation//根据不同的旋转速度,改变这个材质var fastWheelMaterial : Material;var slowWheelMaterial : Material;function Update () { if (rigidbody.angularVelocity.ma转载 2013-02-22 13:01:30 · 977 阅读 · 0 评论 -
如何改变实例(instantiate)的方向
用raycast 得到碰撞点的法向量,就是hit.normal,如何将在这个位置(hit.point)生成的实例的方向设置成hit.normal???比如在平地生成竖起得标识,在墙上就生成横着的标识,根据碰撞点的法线方向而定?if (hit.normal.z != 0) {marks[markCount].transform.rotation *= Quaternion.F转载 2013-03-06 22:00:52 · 2136 阅读 · 0 评论 -
unity3D web 网页跳转的问题
unity发不成web格式之后,原来的跳转都是覆盖原地址的,而这都不是我们想要的。看一下解决方法,利用网页的js来实现。 首先,在发布的网页里面加入一个函数。 function linkApp(url){window.open(url,"blank");}然后,在unity3d里通Application.ExternalCall来调用这个函数。if(Application.isWe转载 2013-02-22 10:05:29 · 5615 阅读 · 2 评论 -
检测你的数据文件是否被移动到其他的服务器
// This detects if your data files were moved to another server// 检测你的数据文件是否被移动到其他的服务器// or are being linked to from somewhere else.// 或是被链接到其他地方function Start () { var isPirated : boolean = fal转载 2013-02-22 10:20:18 · 733 阅读 · 0 评论 -
Application.ExternalCall 外部调用
调用一个包含在网页中的函数(只用于Web Player)。调用包含在网页中名为functionNameJavaScript函数,并传递给定的参数。支持原始的数据类型(string, int, float, char)和这些类型的数字。如何其他的对象被转化为字符串(使用ToString方法)并作为字符串传递。这个函数调用时不会被阻塞,即ExternalCall立即返回的功能而不必等待转载 2013-02-22 10:28:01 · 6234 阅读 · 0 评论 -
Application其它一些小应用
Application.runInBackground 后台运行应用程序在后台时是否应该被运行?默认为假(当程序在后台时暂停)// 让游戏在后台时也运行Application.runInBackground = true;Application.streamedBytes 字节流.我们从主Unity网页流中下载了多少字节(只读)。在web播放器中这将返回到目前为原创 2013-02-22 11:28:49 · 954 阅读 · 0 评论 -
Unity3d 动态读取外部文件
分两种情况:1,加载封装好的内部文件。var aaa : Material;//空材质 var bbb : GameObject;//要绑定材质的模型 function Start() { aaa.mainTexture = Resources.Load("你的资源名,例如“pic1”不需要文件扩展名");转载 2013-02-22 11:38:01 · 1087 阅读 · 0 评论 -
Unity3d 截取窗体图片并保存
// The folder we place all screenshots inside.// If the folder exists we will append numbers to create an empty folder.var folder = "ScreenshotFolder";var frameRate = 25; //每秒25帧。转载 2013-02-22 11:38:45 · 944 阅读 · 0 评论 -
unity3d 屏幕截图多种写法
http://game.ceeger.com/Script/Application/Application.CaptureScreenshot.htmlfunction OnGUI(){ if(GUI.Button(Rect(Screen.width*0.5-50,Screen.height*0.5-50,100,100),"screen")){ Appli转载 2013-02-22 10:14:07 · 774 阅读 · 0 评论 -
Application.GetStreamProgressForLevel 获取关卡的流进度
下载的进度是多少?在web播放器中这将返回这个关卡的进度。 [0...1]// Print on a guiText how much has been streamed level at index 1//在文本框打印在场景1里下载了多少?// When finished streaming, print "Level 1 has been fully streame转载 2013-02-22 10:30:37 · 1450 阅读 · 0 评论 -
Application.platform 平台
返回游戏运行的平台(只读)。function Start () { if (Application.platform == RuntimePlatform.WindowsPlayer) print ("Do something special here!");}注意:使用RuntimePlatform和Platform两者是不同的,取决于编译是使用Runtime原创 2013-02-22 11:19:28 · 2700 阅读 · 0 评论 -
Unity3d 屏蔽右键 以及 更换加载图标
var params = {backgroundcolor: "A0A0A0",bordercolor: "000000",textcolor: "FFFFFF",logoimage: "MyLogo.png",progressbarimage: "MyProgressBar.png",progressframeimage: "MyProgr转载 2013-02-22 11:40:26 · 1611 阅读 · 1 评论 -
Unity3D 提高视频movie视频播放的质量
使用Miro Video Converter 转换器,转换成ogg theora,然后再导入到unity3d里面,效果会好些!可以用材质球播放,也可以在OnGUI里面播PS:视频播放的Component是MovieTexture例如在OnGUI()播放: GUI.DrawTexture(new Rect(0, 0, Screen.width, Sc转载 2013-02-22 10:10:31 · 1619 阅读 · 0 评论