专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

怎么制作游戏(零基础制作手机游戏的方法)

来源:小易整编  作者:小易  发布时间:2020-07-23 09:39
摘要:提到游 戏开 发人们的脑海中浮现的要么是一个程序员孤军奋战的身影,要么是在发行商赞助下成立的游戏 开发公司。今天呢就和大家分享零基础如何利用Unity3D引擎开发一款第一人称射击单机小游戏。 1 简介 简单介绍一下unity3D,它是由Unity Techologies开发的一款游戏开...

提到游戏开发人们的脑海中浮现的要么是一个程序员孤军奋战的身影,要么是在发行商赞助下成立的游戏开发公司。今天呢就和大家分享零基础如何利用Unity3D引擎开发一款第一人称射击单机小游戏。

1

简介

简单介绍一下unity3D,它是由Unity Techologies开发的一款游戏开发引擎,也是目前手机游戏和虚拟仿真领域最活跃、最易用的开发工具。近年来随着移动平台扩张的东风,Unity几乎成为了整个游戏以及虚拟仿真领域的行业标准。

其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac 所支持。

(如国名手游王者荣耀就是采用unity开发)

2

设计思路

基于Unity3D和C#脚本开发的一款FPS射击类游戏。大概剧情就是玩家可以利用手中的散弹枪击杀暴走的机器人,且需要在规定的时间内在地图内寻找到“真实的钥匙”,如果时间耗尽或者被机器人击杀则游戏失败。

(随便弄的初始界面好吧我知道很丑)

逻辑流程图:

游戏主要功能描述:

  • 界面部分:主要为登陆游戏界面制作。

  • 地形部分:主要为人物模型以及游戏场景地形

  • 粒子特效火焰粒子特效、爆炸粒子特效

  • 音效:开枪音效、背景音乐、爆炸音效

  • 动作控制:玩家的前进后退左转右转子弹发射

3

主要过程

  • Unity3D与Xml的交互

单机小游不需要数据库,通过自定义一个Xml储存数据。以登录界面的设计为例:

这是一个名为UserInfo的内容

<?xml version=”1.0”encoding=”UTF-8”standalone=”no”?>

<users>

<users1 姓名=”张三” 密码=”123”>我是张三</user1>

<users2 姓名=”李四” 密码=”123”>我是李四</user2>

上面的Xml有两层,父节点叫users,子节点有两个,分别为user1和user2,每个节点有两个属性,姓名和密码。每个节点有一段文字内容,要求能够读取每个节点的名称内容和属性,并且能够添加节点和属性。

这是一个操作Xml读取的类,默认继承Object,这个类里面主要有三个函数

  • Load(string filePath):通过文件路径来加载Xml的文件内容

  • LoadXml(string xmlFile):通过加载Xml文件内的文本内容加载Xml。

  • GetRootNode():用来获取Xml的根节点,有了这个根节点,就可以访问每一个子节点。

代码如下:

using System;

using System.IO;

using System.Xml;//添加命名空间

publc class ReadXmlFile

{

XmlDocument xmlDocument;

Public ReadXmlFilet()

{

xmlDocument = new XmlDocunment();

}

///<summary>

///通过文件路径导入Xml文件,用于单机版

///<summary>

Public bool Laod(string filePath)

{

xmlDocument.Load(filePath);

return true;

}

///<summary>

///通过加载XML文本内容加载Xml,用于网页版

///<summary>

Public bool LoadXml(string xmlFile)

{

xmlDocument.LoadXml(xmlFile);

return true;

}

//获取根节点

Public XmlElement GetRootNode()

}

Return xmlDocument.DocumentElement;

}

建立一个UI界面,如图为一个简单的登陆界面

(我知道界面很丑!重要的是学习方法!)

将Xml文件加载进来的代码如下:

readXmIFile=new ReadXmlFile();

//发布为EXE访问本地Xml的时候使用这种加载方式,这种方式发布网页不支持。

readXmlFile.Load(Application.dataPath+”/Data/Xml/UserInf

开始登陆验证,首先判断是否存在这个用户,如果存在获取这个Xml节点,将节点密码这个属性与用户输入的属性进行比较,相同则登陆成功,否则失败。

部分代码如下

Void OnGUI()

{

GUI.matrix=Matrix4x4.TRS(Vector3.zero,Quaternion.identity,new Vector3(GUIR.wscale,GUIRoot.hscale,I));

windowRect = GUI.WindowRect,DoMyWindow,””);

)

Void DoMy Window(int windoeID)

{

GUI.Label(new Rect(100,5,100,50),”登录验证”,labeIStyle);

GUI.Label(new Rect(40,65,60,40),”用户名”,labeIStyle);

name=GUI.TextField(new Rect(105,75,100,20),name,15);

GUI.Label(new Rect(40,130,60,60),”密码”,labeIStyle);

pwd=GUI.TextField(new Rect(105,145,100,20),pwd,15);

if(GUI.Button(new Rect(100,200,100,40)”Login”))

{

}

}

  • 粒子特效实现

射的火焰,滚滚的浓烟、萤火虫、雨、雾或者你可以想到的其他任何效果,这些效果通常称为粒子效果(particle effect)这里主要讲述的是枪支射击火焰效果的实现。

首先导入枪支模型,为了增加真实性。在枪口位置设置一个子物体,其子物体展示粒子效果(GameObject——ParticleSystem)其粒子效果充当火焰特效。

游戏粒子效果如图所示:

  • 动画的运用

基本知识

动画是预制的可视动作集,在2D游戏中,这涉及具有多福顺序的图像,并且可以非常快的翻转他们,结果就是对象看似在移动。这种效果类型于老式的翻转书,3D世界里的动画有很大的差别。在3D游戏中,使用模型来表示游戏实体,不能简单地在模型只见切换,以提供运动的幻觉。

Animation运用

射击及换子弹动画的实现,首先在Unity Asset Store中下载所需的模型并导入,动画通常是作为模型的一部分出现的,Animations选项卡中包含管理内置的动画所需的所有属性和控制选项。

将动画拖到Animation组件的Animations属性上,把它们应用于模型,这样使动画可供模型使用,但是不会实际的创建模型的动画,在多个动画间的切换通过脚本完成,C#脚本如下:

void Start ()

{

aui = this.GetComponent<AudioSource>();//获取AudioSource的组件

A = Q.GetComponent<Animation>();//获取Animation的组件

}

void Update ()

{

if (!A.IsPlaying ("Gun02Reload"))

{

if (Input.GetMouseButtonDown (0)&&IsAttck==true )

{

Zcount++;//计算子弹个数

if (Zcount==5) {

A.Play("Gun02Reload");

Zcount = 0;

} else {

A.Play("Gun02Shoot");

}//判断播放动画

IsAttck = false;//禁止开枪

Invoke ("OnAttck", 1.2f);//通过延迟12S允许开枪

aui.clip = G;

aui.Play();//播放开枪音效

L.transform.gameObject.SetActive(true );//火焰粒子效果开启

Invoke ("OFFL", 0.1f);//通过0.1S延迟关闭粒子效果

GameObject xx = Instantiate(XX);//“克隆”子弹预制件

xx.transform.position = came .transform.position;//为“克隆”的子弹赋予初始位置

xx.GetComponent<Rigidbody>().velocity = came .transform .TransformDirection (Vector3.forward) * speed;

//为子弹添加方向与力

Destroy(xx,2f);//两秒后自动销毁子弹

}

}

}

void OFFL(){

L.transform.gameObject.SetActive(false);

}

void OnAttck(){

IsAttck = true;

}

  • 触碰效果的应用

首先我们要制作一个玩家需要去收集的物体,从Assert store下载并导入一3D模型。如图导入的一个书本模型:

然后为了让它能够和玩家物体发生交互,我们将为它添加一个原型碰撞器。点击菜单Component——Physice——Box Collider 因为我们不希望玩家在收集它的时候突然撞上去然后停止运动,所以我们将它的碰撞器设置为触发模式,在组件中勾起Is Trigger。

部分C#脚本如下:

void OnTriggerEnter(Collider col)//Player触发事件

{

if (col.transform.tag == "DIR")//假如触发对象的tag为“DIR”(敌人)

{

f -= 0.1f;//每攻击一次减少0.1

S.value = f;

if (f<= 0)//血量小于等于0

{

this.transform .gameObject .SetActive (false );//关闭玩家本身

TT.fontSize = 60;//

TT.text = "你输了!!!";

Time.timeScale = 0;//暂停游戏所有运行

}

}

if (col.transform.tag =="B1")//当触发对象的tag为“B1”

{

tis.transform.gameObject.SetActive(true);

tis.text = "一页残卷";

Invoke("ZanT",1);//通过1S延迟关闭UI的TXT显示

aui.clip = ZHH;

aui.Play();

}

if (col.transform.tag == "B2")//当触发对象的tag为B2”“

{

G1++;

tis.transform.gameObject.SetActive(true);

tis.text = "真实钥匙";

Invoke("ZanT", 1);//通过1S延迟关闭UI的TXT显示

aui.clip = ZHH;

aui.Play();

}

}

void ZanT()

{

tis.transform.gameObject.SetActive(false );

}

(游戏运行的截图)

ps:自己动手才能体验到其中的乐趣,以上只是简单的介绍,私信回复007即可获得游戏全部教程~

本文地址:百科知识频道 https://www.hkm168.com/zhibai/658173.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科知识
小编:小易整编
相关文章相关阅读
  • 祝福老师句子大全,教师节送礼必备(感恩教育恩人)

    祝福老师句子大全,教师节送礼必备(感恩教育恩人)

    祝福老师句子大全,教师节送礼必备(感恩教育恩人)教师节是每年的9月10日,这一天是我们向教育恩人表达感激之情和祝福的日子。在这个特殊的日子里,送上一句祝福老师的话语,表达我们对教育工作者的敬意和感激之情,成为了每位学生们献给老师的最好礼物。...

  • 贺知章名句赏析,诗人风采展示(品味优美诗歌)

    贺知章名句赏析,诗人风采展示(品味优美诗歌)

    贺知章名句赏析,诗人风采展示(品味优美诗歌)贺知章,唐代诗人,被誉为“豪放派”代表之一。他的诗歌生动有力,意境深远,语言通俗易懂,充满浓郁的民族气息。他留下了许多优美的诗句,让人感慨万千,不得不赞叹其诗才与风采。其中,著名的“海内存知己,天...

  • 纸飞机折法,制作简单易学(挑战手工艺术)

    纸飞机折法,制作简单易学(挑战手工艺术)

    纸飞机折法,制作简单易学(挑战手工艺术)纸飞机是一款低成本、简单易学的手工艺品,因其制作过程简单易懂,大家可以尝试在家,不需要太多专业工具。首先准备一张A4大小的白纸,将其折成一半,然后再打开,将两边的边角对齐,再次往中间折叠。在折叠的位置...

  • 中超赛程表,看球购票攻略(跟随绿茵场之旅)

     中超赛程表,看球购票攻略(跟随绿茵场之旅)

    中超赛程表,看球购票攻略(跟随绿茵场之旅)中超联赛一直以来都备受球迷关注,每个赛季都会有无数的球迷前往现场观看比赛。为了让广大球迷更好地安排自己的观赛计划,我们在这里为大家介绍一下中超赛程表和看球购票的攻略。中超赛程表中超联赛一般从3月份开...

  • 春节习俗大全,传统文化策源地(领略浓郁年味)

    春节习俗大全,传统文化策源地(领略浓郁年味)

    春节习俗大全,传统文化策源地(领略浓郁年味)春节是中国最重要的传统节日,也被称作“年节”、“新春节”等,是一个具有重大历史意义和文化内涵的节日。说到春节,就不得不提到具有浓郁地域特色和文化内涵的习俗,这些习俗既体现了中华民族的优秀文化传统,...

  • “水”字旁常用字,快速记忆方法(提高汉字识别能力)

    “水”字旁常用字,快速记忆方法(提高汉字识别能力)

    “水”字旁常用字,快速记忆方法(提高汉字识别能力)汉字是中国文化的重要组成部分,对于中文学习者而言,汉字的认识和记忆是非常重要的。其中“水”字是汉字中的一个旁常用字。在学习这个字时,我们可以采用一些快速记忆方法,提高汉字识别能力。首先,我们...

  • 做梦梦见很多蛇,分析梦境内涵(看懂心理暗示)

    做梦梦见很多蛇,分析梦境内涵(看懂心理暗示)

    做梦梦见很多蛇,分析梦境内涵(看懂心理暗示)做梦时梦见很多蛇是一种比较常见的梦境,对于这种梦境的解释和分析是非常重要的。从心理学的角度来看,这种梦境不仅反映了我们潜意识中的想法和情感,也可以为我们指引未来的行动。首先,梦见很多蛇可能说明我们...

  • 制作铃声详解,打造个性化手机(表现自我风格)

    制作铃声详解,打造个性化手机(表现自我风格)

    制作铃声详解,打造个性化手机(表现自我风格)随着移动设备的普及,手机不仅是通信工具,也成为了一种个性化的表现方式。而铃声则是手机个性化中最直接的表现形式之一。制作一个个性化的铃声,不仅可以让你的手机更具有个性化的特色,同时还可以让你展现出自...

  • 周排行
  • 月排行
  • 年排行

精彩推荐