02 2014 档案
摘要:最终效果:一、选择背景图片,选择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创建的空GameO...
阅读全文
摘要:Unity(或者说基本所有图形引擎)生成一帧画面的处理过程大致可以这样简化描述:引擎首先经过简单的可见性测试,确定摄像机可以看到的物体,然后把这些物体的顶点(包括本地位置、法线、UV等),索引(顶点如何组成三角形),变换(就是物体的位置、旋转、缩放、以及摄像机位置等),相关光源,纹理,渲染方式(由材质/Shader决定)等数据准备好,然后通知图形API——或者就简单地看作是通知GPU——开始绘制,GPU基于这些数据,经过一系列运算,在屏幕上画出成千上万的三角形,最终构成一幅图像。 在Unity中,每次引擎准备数据并通知GPU的过程称为一次Draw Call。这一过程是逐个物体进行的,对于...
阅读全文
摘要:这篇文章主要想大家说明一下我在Unity3D游戏开发中是如何写游戏脚本的,对于Unity3D这套游戏引擎来说入门极快,可是要想做好却非常的难。这篇文章的目的是让哪些已经上手Unity3D游戏引擎的朋友学会如何更好的写游戏脚本,当然本文这紧紧是我这么多年对游戏开发的认知,你也可以有你自己的看法。首先我们看看游戏主要是由哪几部分组成的,如下图所示,任何平台下的任何游戏核心都是由:数据、逻辑、渲染三大部分组成。当你写过》=2个平台下的游戏时你会发现其实游戏开发很“容易”,为什么“容易”呢?因为此时你会发现所有平台下开发游戏的模式,如下图中的“数据”与“逻辑”两部分真的是完全一样的,这两部分是与游戏开
阅读全文
摘要:一、概念 长连接是建立socket之后,一直不关闭该socket, 一般是tcp协议,我们知道tcp是双工的, 能够保证cs两端可以互发数据。 短连接建立socket之后,做一次很短的交互(只发不收,或者发了就收)之后,就关闭该socket,一般都是基于http(在tcp之上) TCP/IP是传输层协议,主要解决数据如何在网络中传输;而HTTP是应用层协议,主要解决如何包装数据。 Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。我们在传输数据时,可以只使用传输层(TCP/IP),但是那样的话...
阅读全文
摘要:一、输入轴默认输入轴:Horizontal和Vertical被映射到w, a, s, d键和方向键Fire1, Fire2, Fire3被分别映射到Ctrl,Option(Alt)和Command键Mouse X 和 Mouse Y被映射到鼠标移动增量Window Shake X和Window Shake Y被映射到窗口的移动 //[ʃeɪk]vt. 动摇;摇头;使发抖;使心绪不宁[烦恼,惊吓]添加新的输入轴 选择菜单Edit->Project Settings->Input :Positive Button :正按钮该按钮用于在正方向移动轴 (如:右) 按下//[ˈpɒzətɪv
阅读全文
摘要:一、验证XML文档 若要验证 XML 文档,需要构造一个XmlReaderSettings对象,其中包含用于验证 XML 文档的 XML 架构定义语言 (XSD) 架构。Schema是用于描述和规范XML文档的逻辑结构的一种语言,它最大的作用就是验证XML文件逻辑结构的正确性。二、验证的类public class XMLValidate { /// /// 辅助验证变量 /// private static bool isValidateXML = true; /// /// 验证提示 ...
阅读全文
摘要:一、代码:using UnityEngine;using System.Collections;/// /// 选项卡二/// [System.Serializable]public class Item{ public Texture icon; public string name;//key name public int amount;//数量 public string itemName; /// /// 处理ItemName /// public void SetUpItemName() { int iLen...
阅读全文
摘要:实现目标: 1、使用个性化Box控件 2、个性化Lable控件 3、添加纵向滚动条 4、新建SelectedItem样式一、最终效果: 二、主要代码using UnityEngine;using System.Collections;/// /// 选项卡二/// [System.Serializable]public class Item{ public Texture icon; public string name;//key name public int amount;//数量 public string itemName; /// ...
阅读全文
摘要:实现目标: 1、个性化Box控件 2、新建TextAmount样式 3、新建TextItem样式一、个性化Windows界面设置GUI Skin1.2 部分代码Rect stateBox = new Rect(237, 67, 360, 147);Rect weaponBox = new Rect(237, 230, 360, 147);GUI.Box(stateBox, "");GUI.Box(weaponBox, "");//['wepən] n. 武器,兵器1.3效果二、新建TextAmount样式 2.1、 代码 #region 个性化B
阅读全文
摘要:要实现的功能: 1、个性化Windows界面 2、减少个性化的背景图片尺寸 3、个性化样式ExitButton和TabButton 4、实现三个选项卡窗口一、个性化Windows界面 1.1、创建一个空的GameObject、在Project中新建GUI Skin 用于绘制Windows图片1.2 GUI Skin设置1.3效果 按M键盘 弹出Windows窗口二、减少个性化的背景图片尺寸因GUISkin中图片我们用的是大图片这个在游戏中不但占资源对性能也有影响,和WebForm中相似的是都可以通过样式来使用小图片来完成大图片的功能。Unity3D也不例外:效果很不好,设置下即可,按...
阅读全文
摘要:XML序列化:可以将对象序列化为XML文件,或者将XML文件反序列化为对象还有种方法使用LINQ TO XML或者反序列化的方法从XML中读取数据。最简单的方法就是.net framework提供的,只需要定义好xml数据格式,定义好对象即可。1、调用方法:using RenosData.RDBao.EvidenceUploadModel.Models;using RenosData.RDBao.EvidenceUploadModel.Parsers;using System;using System.Collections.Generic;using System.IO;using Sy..
阅读全文
摘要:要实现的目标: 1、3只小鸟初始动画 2、完善代码slingShot.js 3、完善代码BirdMoving.js1、实现3个准备动画:Unity3D内置的动画管理器1.1、先选择GameObject游戏对象1.22、代码using UnityEngine;using System.Collections;/// /// 小鸟弹跳/// public class birdMove : MonoBehaviour{ /// /// 是否掉在地上 /// private bool isGround = false; /// /// 0-1随机变量 ...
阅读全文
摘要:要实现的目标 实现个性化的鼠标 实现弹弓 选择小鸟、拉升弹弓、发射小鸟 弹弓橡皮筋 声音1、实现个性化鼠标效果2、添加弹弓建立两个材质创建一个空GameObject 把两个shoot拖进来统一管理3、建一个空GameObject 弹弓slingShot 3.1把投掷中心移动到弹弓发射中心,就是小鸟发射架 3.2创建一个Sphere碰撞体 调整好radius=0.2大小4、拉伸弹弓、发射小鸟代码using UnityEngine;using System.Collections;public class slingShot : MonoBehaviour{ /// ...
阅读全文
摘要:前言:实现小鸟的动画,之前吐槽过js写U3D,就改成了C#来写,没想到遇到问题了。实现的效果using UnityEngine;using System.Collections;/// /// 2D动画组件/// public class aniSprite : MonoBehaviour{ /// /// 是否启动2D动画 /// public bool isUsed = false; /// /// 动画的时间(0表示永远运行) /// public float timeLength = 0; /// /// 动画有...
阅读全文
摘要:一直跟着龚老师用js写,VS智能感应用习惯后发现这里用js对初学者比较蛋疼,MONO有提示但是还是无法和VS媲美就目前来看。所以这次还是换成熟悉的VS来开发。 目标:实现关卡页面 跑起来的效果如下: 方法和之前添加图片一样,先创建GUITexture背景图片,再创建GUISkin 用于创建上图中7个图片按钮。手型鼠标直接把上节的customCusor.js拿来即可,背景音乐选择Main Camera->Component->Audio->Audio Source C#代码如下 using UnityEngine;using System.Collections;public.
阅读全文
摘要:前言:在Play页面中给Play页面添加一个“开始游戏”和“退出游戏”按钮顺便再来一个背景音乐 添加按钮可以是GUI.Button(),也可以是GUILayout.Button();给图片添加按钮可以用到GUISkin()也可以是GUIStyle(),这些有点和WebForm中开发用到的CSS样式相似,GUIStyle组成了GUISkin。 大致方法如下: 1、Assets-右键新建一个GUI Skin 2、自定义两个按钮:游戏开始按钮和回到游戏主页按钮 3、具体设置就是放入按钮图片,仔细看看和WebForm中的样式是不是很有一家的感觉 4、代码#pragma strictva...
阅读全文
摘要:创建Play界面、能个把各个图片组合成一个场景,场景组成后背景能够不停的滚动,当鼠标单击时显示图片手型鼠标一、GUI Texture 1、创建背景、地面、树木、草 ,这里注意Z轴的排序,一层一层则第一个Z:0 后面0.1,0.2 ……否则会被遮盖不显示。 2、创建一个空的GameObject 并把上面的背景、地面、树木、草拖进来组成一个background二、背景动起来js代码#pragma strictvar speed:float=0.1;function Start () {}function Update () { transform.Translate(Vector3....
阅读全文
摘要:方法一、SELECT * FROM 表名 WHERE CONVERT (CHAR(8),日期字段名,112)=CONVERT(CHAR(8),GETDATE(),112) 方法二、 SELECT * FROM 表名 WHERE DATEDIFF(d,DAY(日期字段名),DAY(GETDATE()))=0 Access: SELECT TOP 10 * FROM 表名 WHERE DAY(日期字段名)=DAY(NOW())查询当天之前一天的数据 SELECT * FROM 表名 WHERE DATEDIFF(d,DAY(日期字段名),DAY(GETDATE()))=1
阅读全文
摘要:最近正好做一个WEB中定期执行的程序,而.NET中有3个不同的定时器。所以正好研究研究。这3个定时器分别是: 1.实现按用户定义的时间间隔引发事件的计时器。此计时器最宜用于Windows窗体应用程序中,并且必须在窗口中使用。System.Windows.Forms.Timer 2.提供以指定的时间间隔执行方法的机制。无法继承此类。System.Threading.Timer 3.在应用程序中生成定期事件。System.Timers.Timer总结: 1、System.Threading.Timer是一个简单的轻量计时器,它使用回调方法并由线程池线程提供服务。不建议将其用于Windows...
阅读全文
摘要:新建3个场景,场景1Start十秒后自动切换到场景2 Splash,场景2在二秒后自动切换到场景3Selection一、场景一Start二、场景2Splash三、场景3Selection四、步骤 1、场景1和场景2 各自创建一个GUI Texture命名为logo下一步在Images文件夹中找到相应图片拖拽过去即可。 2、在Scripts文件夹中新建js文件splash.js 代码如下:#pragma strictvar timeLength:int =10;//十秒var nextLevel:int;//下一个场景private var myTime:float;function S...
阅读全文
摘要:1游戏音频1、游戏音乐:如游戏背景音乐2、游戏音效:如开枪或打怪物时“砰砰”的游戏音效Unity3D游戏引擎共支持4种音乐格式的文件,具体如下。 aiff:适用于较短的音乐文件,可用作游戏音效。 wav:适用于较短的音乐文件,可用作游戏音效。 mp3:适用于较长的音乐文件,可用作游戏音乐。 ogg:适用于较长的音乐文件,可用作游戏音乐。*需要注意的是,必须在MainCamera中勾选“AudioListener”组件案例:using UnityEngine;using System.Collections;/// /// 播放音频/// public class _9_1 : Mono...
阅读全文
摘要:1、PlayerPrefs类(生命周期???)1.1保存与读取数据 在C#中类似缓存、Cookie、Session等保存数据的,但是有点区别的是在C#中如果在取值时没有取到默认值则返回值是NULL,但Unity中如GetInt("Test",100);在取值Test时如果没有默认值则直接返回的是100; 在Unity中提供了一个用于本地持久化保存与读取数据的类——PlayerPrefs是轻量级的存储。它的工作原理是以哈希、字典的方式:键值对的形式将数据保存在文件中。PlayerPrefs类可保存与读取3种基本的数据类型:浮点型、整型和字符串型。 SetFloat():保存浮
阅读全文