使用unity制作3d的游戏制作与展示
摘要由于现在社会数字化、科技化的信息发展技术,城里人的生活节奏发展飞快;了解unity的游戏制作情况,软件的情况,随着社会上的,市场上的,两大主流手机系统的发展迅速,安卓与苹果手机的猛讯开发,从而会根据这样强大的系统开发与之适应的软件以及一款轻松、放松、休闲类的3d小游戏,来缓解人们因生活节奏快,压力大来自于工作上的疲惫,让游戏爱好者,在疲惫的一天,通过游戏来娱乐,放松心情,来充实自己的疲劳一天。
Unity是一种开发游戏的,专业的游戏工具,根据粒子特效,物理碰撞,动画制作等技术,组建了各种平台如:安卓手机,苹果系统手机,pc端的Windows、andorid、iOS等平台游戏。对于每个独立的游戏开发者来说是具有创造力的,它具有边测试边试玩的强大功能。Unity这个软件人们不可能只是暂时的有一些认知,一些独立的想法,unity本身就可以让开发者挖掘到乐趣,其中本身的一些bug,需要每个人一次次实验,修改,测试直到拥有最吸引人的一方面发现出来,并把它以游戏的形式表现出来,让更多玩家来体验我的游戏成果。Unity支持生成apk文件,并在Android手机上的运行,这样它的发展前景无限放大,使更多的平台来支持unity游戏的运行。Unity的目标移动平台可以实现瞬间转换的功能,这个瞬间转换的功能可以帮助游戏开发者解决了一种资源可以在不同平台上体验不同效果的问题,如:可以在手机、电脑网页、台式机PC端和移动平台上的不同体验效果的问题。
本次毕业设计的题目为《使用unity制作3d的游戏制作与展示——uGui》是一种可以成功在智能手机和电脑PC端运行的休闲、娱乐游戏,在毕业设计时完成,可以用来体验娱乐。游戏可以通过不同的button按钮、image来实现游戏的人物换装模块,包括人物动作表情即(ide-A正常表情,ide-B向左一个动作,angpose生气表情,Damaged前后俯仰动作,Diea倒下,Walk走路,Walk-L向左看走,Walk-R向右看走,Walk-Back快步前后走(动作幅度大),Run跑,Run-L左看跑,Run-R右看跑,Jump跳,Dieb躺下,Cudo比剪刀手势,Bye拜拜,Cry拖头沉思,ide站直),人物面部表情(Smile1眯眼微笑,Smile2张嘴,ANG1闭嘴,AN32张大嘴,AN33凶,SadA面无表情,SadB眨眼,Surprise震惊)模块。这是一款休闲类的游戏,实现了对那些工作压力大的上班族,缓解压力。
关键词:Unity;3dMAX;游戏;Android
Abstract
Due the development of digital and technological information technology in the present society, the pace of life of the city people is developing rapidly;Understand the unity game production situation,the
situation of the software,with the society, on the market, two big mainstream mobile phone system is developing rapidly, android and apple phones fierce development, thus according to such a powerful system development and adaptation of the software, and a relaxed, relaxation,leisure class3d game,to relieve the people due to the fast pace of life,The great pressure comes from the fatigue of work.Let game lovers,
on a tired day,play games to entertain,relax and enrich their tired day.
Unity is a professional game tool for game development.According to particle effects, physical collision,animation and other technologies, it has built various platforms such as Android mobile phone,Apple mobile phone,PC Windows,Android, IOS and other platform games.Creative forevery indie game developer, it has the power to test and play at the same time.It is impossible for people to have some temporary cognition of the software Unity ,and some independent ideas.Unity itself allowsdevelopers to dig out the fun.Some bugs in it require everyone to experiment,modify and test again andagain until the most attractive aspect is found and expressed in the form of games.Get more people to play my game.Unity supports the generation of APK files,and the running on Android phones,so its development prospects are infinite amplification, so that more platforms to support the running of Unity games.Unity’s target mobile platform can realize the function of instantaneousconversion,which can help game developers solve the problem that a resource can experience different effects on different platforms, such as mobile phone,computer web, desktop PC and mobile platform.
The title of this graduation project is”Using Unity to Make 3D Game Production and Display--UGUI”,which is a leisure and entertainment game that can be successfully run on smart phones and PC terminals.It is completed during graduation design and can be used to experience entertainment.The game can realize the character changing module of the game through different button buttons and images,including the character action expression, (Id-A normal expression,Id-B left action,Angpose angry expression,Damaged front and back pitch action,Diea down,WalkWalk,Walk-L left look,Angpose angry expression).Walk R look right Walk , Walk Back and forth Run,Run L look left Run, Run R look right Run ,Jump Jump Dieb lie down Cudo Scissors gestures Bye Bye Cry head Muse ide stand up straight facial expressionsSmile2 opens its mouth,Ang1 shuts up,AN32 opens its mouth,An33 is fierce,Sada has no expression, SADB blinks, Surprise shock)module.This is a casual class of games, the realization of those who work pressure office workers, relieve pressure.
Key words:Unity;3dMAX;The game;Android
引言1
Unity是具有在整个游戏专业引擎市场上占有百分之十的占有率,具有可以在多个平台来支持unity的发挥,是一个具有综合性的游戏开发工具。Unity可以在Windows、iPhone、Android等多个平台发挥它的优势。还可以结合预览工具来接收unity、3dMAX所做的模型来3d展示,这个方法已经用于京东中展示模型。 还可以利用插件用于发布网页游戏,如:Unity web player插件,此插件可以用于Windows和Mac的网页浏览。
这个论文的题目为“使用unity制作3d的游戏制作与展示”,是一个使人放松的休闲类的游戏;游戏是利用unity自身带的引擎基本自身组件,包括:UI、canvas、角色控制、unity动画、image、锚点。编写、逻辑代码的实现,能够实现游戏的动画切换、关卡中无限滚动LoopScrollView、背包移动代码、UI界面设计、游戏背景音乐的实现等的控制、游戏的触屏控制等,为了让人在玩游戏的时刻保持放松的心态,来得到一些娱乐。
游戏本身可以用于各类电脑,智能手机,让游戏具有多元化;游戏移动旋转敏捷度高,让游戏玩家在娱乐游戏的同时,并享受游戏的过程。游戏的apk文件更是支持手机的安卓系统,unity的这个功能更加利于发展。
研究背景
快节奏的生活人们,繁忙工作的人们,闲暇的人们都需要得到一点放松,休闲。这一款游戏可以给人们不一样的娱乐方式,游戏中包含了许多动作以及换装的特色,而对于那些压力大的同胞,可以用来休闲放松,来充实自己,对于那些空闲无聊的人来说,可以用来打发无聊的时间。这样既可以让那些游戏玩家可以放松自我,并且可以提高大脑的灵敏度,使得大脑在一定程度上得到放松。
本游戏的设计功能有:
图像设计
屏幕分辨率设计
图像质量设计
UI界面
UI界面交互
游戏窗口
图片插入
界面美化
按钮设计
研究意义
这次游戏设计的基于有趣、休闲、放松;针对一些闲暇空闲来调整娱乐的,从而设计的一款放松的游戏。在游戏过程中加入极具放松的背景音乐能让那些游戏玩家更加极具特色的来选择这款游戏。加上一些极具特色的图片来让视觉上有一些独具特色的优势。加上一些适当的选关设置,让游戏更加丰富、充实,使用unity本身再带的.exe文件或.apk文件,可以让上班族无论是在电脑上还是手机上都可以娱乐,这个功能很方便开发人员,也方便用户体验。而且游戏全面采用low poly,单击版的设计方式既方便了设备,也能让视觉上有所美观,独特,以及low poly的独特设计可以大大减少网络上占用的资源。
随着当今社会的科技化发展,以及以后越来越虚拟化,VR化,计算机技术发展前景越来越年轻化。青年劳动工作者,要攒好实力在未来几十年内占据主要位置,然而为了让那些人能在繁忙的工作中减少压力放松自己,调整好自己应该保持的状态,也是这些娱乐开发人员应该考虑的问题。每一种游戏的设计,都应该以放松,娱乐为主要目的,从而使人们能在放松中调整自己的状态,这才是游戏开发者应有的技术想法。
国内外研究的情况
Unity是由丹麦unity公司研发的游戏研发工具,国内外在这方面起步比较晚,目前unity的应用领域主要有VR虚拟现实技术、pc网游、以及手机网游等。其中在VR虚拟现实技术上德国更是取得了一定的成果。其中瑞典的DIVE分布式虚拟现实交换环境更是基于Unix的同一世界不同节点多进程上工作的异质分布式系统。
我目前知到在unity生活应用可分为四类:一是非可视化信息转化为可视化信息,例如:用于产品的设计、降低成本和开发风险;二是区域导航,例如:区域监控等。三是虚拟现实技术,例如:那些医生护士利用虚拟仿真技术模拟临床手术现场,以此来提高学习上的帮助;四是游戏的开发,目前能生成apk文件的游戏引擎平台不多,能同时生成EXE文件的pc客户端跟apk文件的游戏引擎平台更是少之又少。而在我国利用u3d开发的智能手机游戏比较多,镜之边缘,荣誉勋章空降兵,生化奇兵,虚拟竞技场。由于它在保证华丽3D画面的同时还能实现跨平台的游戏开发环境,这其中就包括pc端、手机和iPad平板电脑等不同终端,现在unity在国内正处于热潮发展, 并且受到了国内游戏厂家以及多家互联网巨头的大力支持。
Unity游戏引擎的平台特色
Unity支持多平台发展的,交互性极强的游戏开发工具,是一个权威的专业游戏引擎工具,目前,在全球游戏开发行业使用unity的已经突破了10%的占有率,并且不断的在呈现上升的趋势,unity的兼容性,兼容2d、3d的开发平台,并且很好的支持了Windows Vista和xp、win7、andorid、ios等平台使得其更容易满足用户的需求。
Unity目前开发出来的网游产品有:unity3d页游《蒸汽之城》、角色扮演《推倒Online》、网页游戏《将神》、FPS新作《星际陆战队》、写实网游《将魂三国》、即时战术《北欧英灵传》、PC网游戏《星之战记》、3D战争策略游戏《纵横无双》等等。
Unity开发过程中本身有如下的特点:
综合编辑
通过unity简单的用户界面,你可以完成任何工作。这些为开发者节省了大量的时间,以及工作量,方便了开发人员。
图形动力
Unity对DirectX和OpenGL拥有高度优化的图形渲染通道。
资源导入
Unity支持各种文件格式,并且和大部分相关应用程序协同工作,还可以利用插件来支持各种文件格式。
一键部署
Unity支持多平台呈现做品的功能。
Pc端、iPhone平台发布、手机系统平台发布
Unity让革命性 游戏开发降临革命性的设备。
着色器
Unity的着色器系统整合了易用性、灵活性和高性能。Unity的着色器使得unity的色泽更加真实。
地形
低端硬件可以流畅运行广阔茂盛的植被景观。Unity的地形刷起来简单便捷有利于软件开发者使用。
联网
从单人游戏到全实时多人游戏,还支持游戏多人语音。
物理特效
Unity内置的NVIDIA&PHYSX物理引擎带给你生活的互动。
音频与视频
实时三维图形混合音频流、视频流。
光影
Unity提供了具有柔和阴影与烘焙lightmaps的高度完善的光影渲染系统。
脚本支持
Unity支持3种脚本语言:Java,c#,boo。
Unity资源服务器
unity资源服务器是一个附加的包括版本控制的产品。
文档
Unity为你提供逐步的指导、文档和实例方案。
也正是可因为如此的特点,才让unity使用者越来越多,让越来越受广大用户的青睐。
游戏的方案设计
游戏的背景是以轻松、休闲、娱乐为目的的,主要针对拥有空闲时间来缓解压力的、调整自我的工作人群来设计的3D趣味游戏。本次游戏设计为分别带有适配器的EXE(pc版)、带有分辨率控制的EXE(pc版)、以及适合安卓的系统手机apk版本。运行不同版本可以选择不同的显示比例,来显示游戏的多种不同选择。
游戏体系划分结构
本次游戏主要划分三个部分:分别为1、系统入口2、开始界面3.背包界面4、角色等。(如图所示)
体系划分、版本划分
游戏的各功能划分
游戏的四大组成部分:系统入口(pc版)、开始界面、背包界面、角色界面、背景音效、关卡设计。
系统入口:图像配置、屏幕分辨率设置、图像的质量、是否使用全屏。
登录界面:gui界面,游戏窗口。
音效背景:利用button控件对游戏的音效控制、背景导入。
关卡设计:随机关卡、顺序关卡。
游戏总体预览
登入界面
玩家通过游戏的入口之后,就会进入登入UI界面,这个界面运用最多的就是button按钮的控件的控制,通过UI界面代码的建立,使用户对界面有直观性的了解,从色彩上分明让界面更具有直观性。(如图1所示)
图1界面UI设置
在unity的3d游戏引擎平台上,很突出的显示了游戏制作的集成性,在游戏apk文件或者EXE文件之前,系统带有自动生成资源包的形式分配好每个模块的音效与背景。(如图2所示)
图2背景音效
任务关卡设计
在游戏UI界面上设计了好多个任务关卡按钮,用于通向每一个相对应的关口,分别为顺序关卡游戏和随机关卡游戏。
通过点击任务button按钮,打开如图3界面实现界面交互,这里通过创建文本框,来实现任务窗口,通过无限滚动代码LoopScrollView来实现无限滚动,和判断条件的代码水平还是垂直滚动,DataApdater自定义数据的加载,数据的初始化使用接口优化数据,往下拖拽到两秒后就获取数据。其中,任务两个字是用文本框所做。(如图3)
图3任务关卡设计
适配器的设置
适配器(如图4)的运用是unity3d3.5.5升级到unity3d4.0的代表标志,也是最标志的区别。适配器是为了适应手机而生成的apk文件,用于控制游戏的方向键。
图4适配器的设置
3、功能实现与代码分析
登录界面UI
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class EventTest : MonoBehaviour, IPointerUpHandler ,
//IPointerClickHandler,
//IPointerDownHandler,
IBeginDragHandler,
IEndDragHandler
{
public void OnBeginDrag(PointerEventData eventData)
{
// throw new System.NotImplementedException();
Debug.Log(" 开始拖拽! ");
}
public void OnEndDrag(PointerEventData eventData)
{
Debug.Log(" 结束拖拽! ");
}
public void OnPointerUp(PointerEventData eventData)
{
Debug.Log(" 鼠标抬起 ");
}
}
任务关卡设置代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DataApdater : ILoopDataAdpater
{
#region 字段
// 保存的所有的数据
public List<object> allData = new List<object>();
// 当前显示的数据
public LinkedList<object> currentShowData = new LinkedList<object>();
#endregion
#region 方法
public object GetHeaderData()
{
// 判断总数据的数量
if (allData.Count == 0) {
return null;
}
// 特殊的情况
if ( currentShowData.Count == 0 )
{
object header = allData;
currentShowData.AddFirst(header);
return header;
}
// 获取到当前的第一个数据
object t = currentShowData.First.Value;
int index = allData.IndexOf(t);
if ( index != 0 )
{
object header = allData ;
// 加到当前显示的数据里面
currentShowData.AddFirst(header);
return header;
}
return null;
}
public bool RemoveHeaderData() {
// 移除 currentShowData 第一个数据
if ( currentShowData.Count == 0 || currentShowData.Count == 1)
{
return false;
}
currentShowData.RemoveFirst();
return true;
}
public object GetLastData()
{
// 判断总数据的数量
if (allData.Count == 0)
{
return null;
}
// 特殊的情况
if (currentShowData.Count == 0)
{
object l = allData ;
currentShowData.AddLast(l);
return l;
}
// 获取 currentShowData 最后一个的下一个
object last = currentShowData.Last.Value;
int index = allData.IndexOf(last);
if ( index != allData.Count - 1 )
{
object now_last = allData;
currentShowData.AddLast(now_last);
return now_last;
}
return null;
}
public bool RemoveLastData() {
// 移除 currentShowData 最后一个
if ( currentShowData.Count == 0 || currentShowData.Count == 1) { return false; }
currentShowData.RemoveLast();
return true;
}
#endregion
#region 数据管理
public void InitData(object[] t)
{
allData.Clear();
currentShowData.Clear();
allData.AddRange(t);
}
public void InitData(List<object> t)
{
InitData(t.ToArray());
}
public void AddData(object[] t)
{
allData.AddRange(t);
}
public void AddData(List<object> t)
{
AddData(t.ToArray());
}
#endregion
}
结束语
从知道要选择写论文,到选定课题题目再到课题内容的确定,毕业设计也接近尾声了,我想我在此过程中提高了独立思考的能力,也提高了打字速度,也算是得到了人生中的一种财富。
在选择unity为主题的论文前,没有对unity本身有那么多理论上的认知,以及一些版本上的认知,现在到论文内容的完成对unity前身背景有了更深刻的了解、认知,但是自从接收了这个毕业设计后,我才真正的遇到了不少前所未有的问题,以及一些解决问题的能。首先是先要对unity的前身背景了解透彻,题材的筛选,利用到底是三维游戏还是二维平面游戏让我犹豫很久,还有就是对于我本身对艺术设计不了解,图片美工上还是有所犹豫,存在一定的困难。最后是由于unity游戏制作引擎平台用的是c#跟Java在语言学习上也花费了很多功夫。
在整个课程设计的过程中,我感慨很多:第一,遇到问题要自行解决,自己要独立思考,给自己独立思考的空间。第二,课堂中的知识生活中不一定要用得到,要活学活用,结合实际。第三,无论做什么事都要有耐心,心急吃不了热豆腐。
大学生活马上就要结束啦,毕业设计是我最后的结课作业,可能不是所有当中最好的,但也是我最用心的一份作品,相信每当想起此时此刻整个过程也是历历在目,印象深刻。这可能不是我学习生涯的最后一次毕业论文,希望以后的自己再接再厉。
参考文献
郝玉龙.android程序设计基础.清华大学出版社.2011年10月第一版。
微软公司:《visual c#2005》,高等教育出版社。
http://www.cgioy.com/unity3d-1,unity游戏引擎论坛。
宣雨松.unity游戏开发.人民邮电出版社2011年6月第一版.
(美)Karli Watson Christian Nagel.C#入门经典.清华大学出版社.2008年12月第四版.
unity3D http://unity3D.com.
盖锁林.Android开发入门指南.人民邮电出版社.2009年11月第一版.
致谢
经过几个月的努力,毕业论文终于告一段落,衷心感谢河北东方学院以及计算机系,感谢你为我们提供了这么一次好的学习机会,感恩那些帮助我的老师同学们,在这次毕业设计中,我增长了很多知识,与见识,锻炼了我独立思考的能力,以及解决问题的能力。
感恩张珺老师,是您引领我见识到unity、走向unity、认知unity,是您让我更清晰的了解了这个行业,您是我人生路上的引领人。她让我知道了我原来真的可以做出游戏,让我知道了unity游戏引擎这个东西是什么,由此展开了我的毕业设计,以及毕业论文。
在本次设计过程中查阅了很多资料,以及教程。在此我像提供资料的源作者表示最诚恳的敬意与衷心的感谢。
页:
[1]