汪海带你做游戏--Unity3D的开发与应用
文章平均质量分 81
简单的介绍Unity3D开发过程中会遇到的常见问题。主要涉及内容有:场景建模,人物设置,脚本讲解,关联演示,重力感应,等等内容。
请叫我汪海
专注前端开发的iOS程序员,喜欢Debian和Python,以及各种有趣的东西,梦想成为一位独立游戏开发者,做自己喜欢的游戏。
展开
-
[Unity]可视化路径的插件iTween的使用
案例下载地址:http://download.csdn.net/detail/wxg694175346/5212300iTween它由一个c#文件组成,支持Unity所有版本以及不管你用什么编程语言都可以使用它,如果你是用Js,你要将它放在Plugins文件夹里;如果是c#,放在项目的Assets里的任意目录即可。 下面了解一下iTween的基础知识。iTween的所有方法都有2翻译 2013-04-02 10:25:31 · 13235 阅读 · 0 评论 -
[Unity]界面GUI程序常用的脚本类
脚本总索引:http://game.ceeger.com/Script/index.Classes.html1 按钮生成function OnGUI () { if (GUI.Button (Rect (10,10,150,100), "I am a button")) { print ("You clicked the button!"); }}2 按钮原创 2013-04-02 11:35:57 · 6927 阅读 · 0 评论 -
[Unity3D]事半功倍:界面插件NGUI的使用教程与实例
原文地址:http://www.tasharen.com/?page_id=185NGUI下载地址:点我传送NGUI教程:步骤1-Scene1.创建一个新的场景(New Scene)。2.选择并删除场景里的MainCamera。3.在NGUI菜单下选择Create a New UI,会打开UI创建向导。4.在创建向导中你能更改UI的基本参数。现在我们选D翻译 2013-01-29 23:10:55 · 33651 阅读 · 2 评论 -
[Unity3D]呼风唤雨:天气插件UniSky的使用教程与案例
UniSky是Unity3D的一款模拟环境天气的插件,使用它可以简单的实现呼风唤雨的各种功能。下载地址:请点击我使用起来也非常的方便。引入Package后(注意路径必须是英文否则会出错)Project中会多一个文件夹:下面我们来简单的创建一个下雨的场景。首先从UniSky中拖动UniSkyAPI到Hierachy面板:然后再把Camara与API建立连接:接原创 2013-01-29 22:46:53 · 29248 阅读 · 12 评论 -
[Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(九)----使用PreviewLabs插件提速与完整的项目源码
PreviewLabs是一款用来提升手机运行速度的插件,插件使用很简单,新建一个名为PlayerPrefs.cs的C#脚本,源码如下:/* PreviewLabs.PlayerPrefs Public Domain To the extent possible under law, PreviewLabs has waived all copyright and related o原创 2013-01-26 23:00:25 · 3492 阅读 · 3 评论 -
[Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(八)----用TouchScreenKeyboard弹出键盘
连接上安卓设备进行调试的时候会发现无法正常的输入数据因为没有键盘弹出,这时需要一个新的类:TouchScreenKeyboard来弹出键盘。官网的说明文档:TouchScreenKeyboard简单来说,是为了解决界面进入iPhone和Android的屏幕键盘键盘问题。这个接口允许显示不同类型的键盘:ASCII,数字,URL,电子邮件,和其他。因为键盘的外观有可能掩盖用户界面,原创 2013-01-26 21:06:57 · 12368 阅读 · 6 评论 -
[Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(七)----使用Game ID避免数据重复输入
在前面的案例如何实现文字闪烁效果中基本完成了相关的基本设置,但是还是存在较多的Bug,比如返回主页面再进入排行榜就会发现数据被重复写入了:解决这个Bug的方案就是使用Game ID,也就是每次进入的时候存入一个ID号码,如果已经存在则不再写入,如果不存在则写入新的最高分。测试一把便会发现每次退出场景再次进入的时候这个GameID都会加一,接下来就是如何将其应用到我们的HighSco原创 2013-01-26 20:08:42 · 5369 阅读 · 0 评论 -
[Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(六)----实现文字闪烁效果
学习Unity脚本推荐:Unity3D官网索引在前面的案例中我们已经建好了一个高分榜的框架,接下来进一步完善一些细节。首先是使用UGUI.Color调整文本颜色。在Inpector面板直接修改可以看到高分榜中的文本颜色已经发生了改变:当然也可以在脚本中进行调整:调整之后的效果便是:关于GUI.Color的使用请参照:官网索引GUI.Color(R原创 2013-01-26 17:42:44 · 6639 阅读 · 0 评论 -
[Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(五)----使用TextField 输入并调整排名
学习Unity脚本推荐:Unity3D官网索引上一章已经可以实现最高分的本地存储,接下来的任务就是插入最高分并且实现排行榜其余分数的依次下调。在代码中的修改十分简单,使用for循环依次调整即可:function AddNewHighscore() { var curRounds = PlayerPrefs.GetInt("highscoreCurrentRounds原创 2013-01-26 15:58:43 · 3437 阅读 · 0 评论 -
[Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(四)----使用PlayerPrefs存储数据到本地
关于PlayerPrefs的使用与说明请参照这篇文章:[Unity3D]手机3D游戏开发:场景切换与数据存储(PlayerPrefs 类的介绍与使用)为了进一步完善上次做的Demo,首先制作一个首页用来跳转到目标页。在首页的GameStateObj中添加SetPlayerPrefs脚本:function Update () {}function Start原创 2013-01-25 22:07:19 · 5709 阅读 · 2 评论 -
[Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(三)----GUI Style与数组的使用
学习Unity脚本推荐:Unity3D官网索引首先创建脚本HighScoreDisplay.js用来在Inpector面板中显示GUIStyle:var boxStartLocation:Vector2;var center = Location();function Update() { center.updateLocation();}// draw a text原创 2013-01-25 17:48:50 · 2867 阅读 · 0 评论 -
[Unity3D]手机3D游戏开发:场景切换与数据存储(PlayerPrefs 类的介绍与使用)
学习Unity脚本推荐:Unity3D官网索引在Unity中的数据存储和IOS中字典的存储基本相同,是通过关键字实现数据存储与调用。下面来介绍一下Unity用来存储数据的PlayerPrefs 类。使用PlayerPrefs可以在在游戏会话中保持并访问玩家偏好设置。在Mac OS X上PlayerPrefs存储在-/Library/PlayerPrefs文件夹,名文un原创 2013-01-25 19:04:00 · 13326 阅读 · 0 评论 -
[Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(二)----使用GUI.Box显示文字
学习Unity脚本推荐:Unity3D官网索引创建脚本文件TestGUI.js:function OnGUI() { GUI.Box(Rect(0,0,120,30),"This is a title");}将其拖拽到HighscoresOBJ上面,运行游戏便会发现窗口中多了一行标签:这显然不是想要的结果。Unity中的原点和很多其他软件一样默原创 2013-01-25 16:00:34 · 3633 阅读 · 0 评论 -
[Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(一)----初始化显示的高分榜
学习Unity脚本推荐:Unity3D官网索引游戏中的数据存储是很常见的问题,比如想在高分榜里显示如下的数据:下面就是HighScore的制作流程。首先要搭建好显示的框架,包括背景图片和橙色的边框两个部分,创建一个空的GameObject用来存放这些GUI,并将其命名为HighscoresOBJ,上面拖拽三个脚本文件。在这三个脚本文件之前,先创建_GUIClas原创 2013-01-25 13:55:59 · 6905 阅读 · 0 评论 -
[Unity3D]手机3D游戏开发:如何使用Unity3D中自带的重力感应
学习Unity脚本推荐:Unity3D官网索引重力感应在手机游戏的开发中非常常见。Unity3D本身集合了重力感应的相关内容。一个简单的JS脚本示范一下重力感应的使用。CSDNGravity.js://物体的贴图 var round : Texture2D; //物体在屏幕中显示的X Y坐标 var x = 0; var y = 0;原创 2013-01-25 11:34:11 · 5302 阅读 · 0 评论 -
[Unity3D]脚本中Start()和Awake()的区别
学习Unity脚本推荐:Unity3D官网索引Unity3D初学者经常把Awake和Start混淆。简单说明一下,Awake在MonoBehavior创建后就立刻调用,Start将在MonoBehavior创建后在该帧Update之前,在该Monobehavior.enabled == true的情况下执行。void Awake (){} //初始化函数,在游戏翻译 2013-01-23 18:57:57 · 43805 阅读 · 2 评论 -
[Unity3D]手机3D游戏开发:简单的移动和缩放鼠标手势脚本源码
学习Unity脚本推荐:Unity3D官网索引鼠标手势建议使用一款插件FingerGestures:下载地址。当然也可以自己写脚本。一个简单的Demo脚本源码如下//用于绑定参照物对象var target : Transform;//缩放系数var distance = 10.0;//左右滑动移动速度var xSpeed = 250.0;var yS原创 2013-01-24 22:09:35 · 5350 阅读 · 0 评论 -
[Unity3D]手机3D游戏开发:FPS射击游戏中瞄准镜CrossHair的制作
学习Unity脚本推荐:Unity3D官网索引首先创建脚本文件用来初始化瞄准镜,脚本CrossHairGUI源码如下:var crosshair = SwitchGUI();var location = Location();var noGuiStyle : GUIStyle;private var GUIColor = Color.white;function St原创 2013-01-24 18:04:08 · 13366 阅读 · 0 评论 -
[Unity3D]手机3D游戏开发:关于自定义Joystick的相关设置和脚本源码
学习Unity脚本推荐:Unity3D官网索引Joystick在手游开发中非常常见,也就是在手机屏幕上的虚拟操纵杆,但是Unity3D自带的Joystick贴图比较原始,所以经常有使用自定义贴图的需求。下面就来演示一下如何实现自定义JoyStick贴图。首先导入贴图,注意要把默认的Texture改为GUI要不然尺寸会发生改变:在Inspector面板中点击Tex原创 2013-01-24 14:25:04 · 7281 阅读 · 1 评论 -
[Unity3D]手机3D游戏开发:使用UnityRemote开发一个简单的FPS案例
学习Unity脚本推荐:Unity3D官网索引该案例来源是Digital Tutors的视频教程中的项目源码。项目的下载的地址在:Unity源码之FPS手机游戏的开发建议使用UnityRemote,可以直接使用安卓机器运行项目,前提是一定要安装该安卓机的驱动。UnityRemote的下载地址:UnityRemote下载先来说下项目需求,做完之后大概实现一个任原创 2013-01-24 13:03:55 · 5380 阅读 · 0 评论 -
[Unity3D]在游戏开发中Notification Center的简单使用与案例说明
学习Unity脚本推荐:Unity3D官网索引Notification Center,顾名思义,就是用来处理各种通知的信息中心。Unity3D的官网解释如下:Notification Center的脚本源码如下:import System.Collections.Generic;// NotificationCenter is used for han原创 2013-01-23 16:39:24 · 5846 阅读 · 2 评论 -
[Unity3D]简单的鼠标碰撞检测与事件监听
学习Unity脚本推荐:Unity3D官网索引使用Unity3D开发3D游戏是鼠标事件的检测也是常见的问题之一。处理的手段非常简单,创建JS脚本,源码如下:function Update () { if(Input.GetButtonDown("Fire1")){ var ray = Camera.main.ScreenPointToRay(Input.mouse原创 2013-01-23 13:41:31 · 9200 阅读 · 0 评论 -
[Unity3D]游戏开始的时候通过脚本设置逐渐淡出的欢迎界面
学习Unity脚本推荐:Unity3D官网索引在游戏界面的设置中,开始界面的制作十分必要,是欢迎玩家并且简要介绍游戏背景的必备过程。这一章学习如何使用JS脚本控制开始界面的淡出并且最终显现出游戏界面。首先,先创建一个脚本文件,声明GUI必备的类:import System.Collections.Generic;// TextureGUI Class: cre原创 2013-01-22 20:19:58 · 4664 阅读 · 0 评论 -
[Unity3D]如何使用脚本模拟出跳跃的效果
学习Unity脚本推荐:Unity3D官网索引这里介绍的是如何使用脚本最简单的模拟出跳跃的效果。脚本源码如下:var speed = 3.0; //This data type is a float.var jumpSpeed = 50.0;var grounded = true;function Update () { var x : Vector3 =原创 2013-01-22 10:40:46 · 10267 阅读 · 0 评论 -
[Unity3D]使用触发器实现简单的场景跳转
学习Unity脚本推荐:Unity3D官网索引首先一点,你要确保有一个想要跳转的目标场景。在本案例中,目标场景是ending。第一步:创建一个碰撞体,放置在需要的触发场景跳转的位置第二步:删除多余的脚本,并且新建自己的脚本:第三步:查阅相关文档,具体网址参见上篇博文:第四步:将如下代码复制到你的脚本中:原创 2013-01-21 21:00:55 · 17749 阅读 · 1 评论 -
[Unity3D]使用OnGUI函数显示状态栏并且使用触发器修改玩家当前信息
在Unity官网上有相关OnGUI函数的讲解,点击查看官网说明文档将这段代码贴在Unity的脚本中并且拖拽到主摄像机上,便会发现运行时左上角多了一个小按钮:但是这样显然不能满足正常的需求,一般来说游戏需要在界面显示当前角色的相关信息,比如剩余血量什么的,下面就来看下如何在Unity中使用OnGUI函数显示Health信息。将在MonoDevelopment中将代码做原创 2013-01-21 12:50:39 · 5160 阅读 · 0 评论 -
[Unity3D]使用碰撞体做触发器实现简单的自动开门
翻译自DT的经典教程:《Introduction to Unity》。在游戏制作中触发器的使用非常的方便也非常实用。这一张我们简单介绍一下如何使用一个简单的触发器来实现自动开门关门的效果。首先确保你已经对门进行了动画的设置。具体流程如下。选择Window->Animation打开动画窗口,选中需要添加动画的门之后点击红色按钮创建新动画。选中一个需要添加动画的要素之后翻译 2013-01-21 10:55:00 · 21216 阅读 · 0 评论 -
[Unity3D]几种常见的渲染类型:Normal Shader的简单介绍
【这个方面我不是很熟悉,所以从网上转载了这篇文章,一起学习】Unity3D自带的60多个Shader。 这些Shader被分为五个大类:Normal,Transparent,Transparent Cutout,Self-llluminated,Reflective。在这里简单的介绍一下Nomral Shader的相关使用。(一) Normal Shader Family转载 2013-01-20 10:22:17 · 4936 阅读 · 0 评论 -
[Unity3D]如何给物体添加阴影效果
阴影在3D游戏中是非常重要的一个细节,所以这一章我们专门介绍如何给物体添加阴影效果。我们在运行前面的Demo的时候会有一种感觉,就是经过大树的时候会有阴影投射到方块上。那么下面就来介绍一下如何给方块添加阴影。灯光是阴影产生的一个非常重要的要素,默认的灯光的ShadowType是NoShadows:将其选中SoftShadow便可以产生柔和的阴影效果:选中Hard原创 2013-01-19 16:55:08 · 9654 阅读 · 0 评论 -
[Unity3D]使方块运动的程序脚本的使用与说明
关于脚本的详细使用说明请参照这篇博文:[Unity3D]在Unity3D中Javascript的基本使用与介绍关于碰撞检测的问题请参考这篇博文:[Unity3D]在Unity3D中实现简单的碰撞检测上回我们说过了如何使用Unity自带的地形系统,那么这一回来简单的讲解一下如何使用脚本进行控制。首先,选择GameObject->Create Other->Cu原创 2013-01-19 16:00:43 · 6089 阅读 · 0 评论 -
[Unity3D]地形系统的创建与简单设置
学习Unity脚本推荐:Unity3D官网索引本章我们将会了解到如何使用Unity3D自带的地形系统简单的创建地形,使用的版本为Unity4.0版本。先来创建一个新项目,命名为TankWar,以后的相关文件都放置在这个文件夹下面。创建完毕之后是一个空白的工程,只有一个Camera在场景中。CTRL+S将该场景存档为TankWar0.1,做好版本控制。原创 2013-01-19 12:03:46 · 14539 阅读 · 0 评论 -
[Unity3D]简单的物体运动和外力作用
下面简单学习一下在Unity中物体的移动。和上面两篇文章相同,我们先创建一个简单的场景以便测试。PS:场景可以建在同一个Project中,在Project面板点击场景文件进行切换即可。物体有:点光源一个,小方块一只。效果如下:然后将js文件拖到Hierarchy面板的立方体上实现绑定。我们现在要实现的就是让场景中的立方体延X轴移动。在Project中右击新建一个JS脚本原创 2012-12-13 13:55:09 · 5689 阅读 · 0 评论 -
[Unity3D]预设Prefab与实例Instantiate的基本使用
简介:在Unity3D的工程建设中,Prefabs(预设)是最非常用的一种资源类型,是一种可被重复使用的游戏对象。特点1:它可以被置入多个场景中,也可以在一个场景中多次置入。特点2:当你在一个场景中增加一个Prefabs,你就实例化了一个Prefabs。特点3:所有Prefabs实例都是Prefab的克隆,所以如果实在运行中生成对象会有(Clone)的标记。特点4:只要Prefab原创 2012-12-13 13:07:00 · 45861 阅读 · 2 评论 -
[Unity3D]在Unity3D中实现简单的碰撞检测
需求:当立方体Cube碰到地面Plane的时候,输出碰撞物体的名称,则表述检测到立方体碰撞了地面。过程:1.搭建一个简单的场景。在新的工程中选择File->new Scene创建新的场景。然后在该场景中添加地板:GameObject->Create Other->Plain,以及正方体:GameObject->Create Other->Cube。给正方体添加刚体:Comp原创 2012-12-13 12:06:19 · 12955 阅读 · 3 评论 -
[Unity3D]在Unity3D中Javascript的基本使用与介绍
在Unity中脚本是必不可少的。因为他将定义你游戏的各种行为和规则。这个教程将介绍JavaScript的基本使用。1.目标在Unity中,脚本是用来界定用户在游戏中的行为或规则。Unity推荐使用的编程语言是JavaScript,同时也支持C#或Boo。2.前提本教程的重点是Unity脚本基础,前提是你已经熟悉了Unity的界面。3.命名规范原创 2012-12-12 17:13:49 · 16532 阅读 · 2 评论