怎么自己做游戏,如何自己做游

ps:周五给大家推荐一款利用Unity3D引擎开发的游戏,简单易学,文末有领取方式喔~提到游戏开发人们的脑海中浮现的要么是一个程序员孤军奋战的身影,要么是在发行商赞助下成立的游戏开发公司。今天呢就和大

ps:周五给大家推荐一款利用Unity3D引擎开发的游戏,简单易学, 文末有领取方式喔~

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

简介

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

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

设计思路

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

逻辑流程图:

游戏主要功能描述:

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

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

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

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

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

主要过程

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的时候使用这种加载方式,这种方式发布网页不支持。

开始登陆验证,首先判断是否存在这个用户,如果存在获取这个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游戏中,使用模型来表示游戏实体,不能简单地在模型只见切换,以提供运动的幻觉。

1、想出一个点子点子是启动游戏的引子,是一个游戏的源头。这个点子首先在大体上应该是个类似于故事的东西。然后这个故事需要有一个目标。2、分镜头脚本设计理解一个游戏最好的方法是使用分镜——创造一系列能体现游戏每个关。

Animation运用

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

怎么自己做游戏

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;//为“克隆”的子弹赋予初始位置

//为子弹添加方向与力

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触发事件

自己创作游戏的方法如下:1、下载安装橙光文字游戏制作工具,注册账号后登陆即可进入初始界面。2、点击新建,进入游戏制作界面。3、选择图片,设置为背景图,远景图,近景图等。4、双击文字框可以编辑文本,包括角色名称对话内容。

{

{

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);

自己做游戏的方法如下:1、制作游戏前需要给自己的游戏定位。在自己动手制作游戏前,需要先做下计划,给自己的游戏定位。是大型游导读戏还是小游戏,游戏的种类是那种,有动作、冒险、休闲等。这个设计好后,才能开始下一步的。

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;

1、通过参考不同的游戏,写出想要制作的游戏的剧情和脚本。游戏的种类有多种,根据自己喜欢的游戏种类,通过参考不同的游戏,写出要制作游戏的剧情。2、根据游戏的剧情和脚本,使用手绘软件绘制游戏人物的图形和背景。。

aui.Play();

}

}

void ZanT()

{

tis.transform.gameObject.SetActive(false );

}

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

上一篇 2023年02月12 12:00
下一篇 2023年02月04 18:39

相关推荐

  • dnf怎么自动捡东西,dnf自动拾取怎么设置2022

    如果你觉得手动搬砖太累的话,那么小编我就教你一个实用方便的懒人式搬砖法,但是这个方法仅限于天帝。首先,dnf自动拾取怎么设置2022,我们选择搬砖的地图是青龙大会。青龙大会一罐PL大约是40~60W的

    2023年01月23 201
  • 开发一款游戏要多少钱,发布一款游戏需要多少钱

    发布一款游戏需要多少钱,很多人对游戏开发行业不够了解,会觉得开发一款游戏怎么那么贵?但其实他不知道的是,一款游戏的开发,要有多少人的付出.跟客户沟通的时候,最让人头疼的就是一上来就问价格的,报多少钱都

    2023年03月25 224
  • dnf强打书多少钱,dnf110版本强打红字书多少钱

    最近我们在讨论一个问题,就是说DNF到底有没有新手玩家入坑,大家都知道DNF是一款养成类游戏,基本每周是必须要玩的,如果不玩基本会被落后的,落后当别人装备都作出来的时候,你还没做出来装备打团会非常难受

    2023年04月02 229
  • 游戏账号被盗多少立案,游戏账号被盗能立案吗

    ​​谢晓延与毛雪燕是某网络游戏中的网友。2018年2月10日,谢晓延以9000元的价格将自己的游戏账号卖给了毛雪燕。毛雪燕获得游戏账号后便脱离了谢晓延之前所在的游戏行会,转而加入敌对行会。这一操作引发

    2023年04月02 241
  • 老夫子怎么玩,老夫子新手怎么玩

    自从赖神火起来之后,老夫子的玩法忽然就变了,从错误变成了正确,这是毋庸置疑的。以前,裸反甲的老夫子不在少数,包括kpl,老夫子新手怎么玩,职业选手,反甲也几乎是老夫子的必备装备,再配合末世加碎星锤,伤

    2023年02月12 244
  • 怎样才能获得娜可露露,王者荣耀娜可露露怎样获得

    王者荣耀夏洛特多少钱?这个英雄大概率不是商城直售获取,而是参加活动免费来获得,王者荣耀娜可露露怎样获得,因为之前出的三个snk英雄娜可露露、橘右京和不知火舞都是免费活动得的,一次都没有花过钱,所以夏洛

    2023年01月07 212
  • 仙剑奇侠传5激活码多少钱,仙剑奇侠传五前传最新激活码

    公告根据公告中的说明,延期的缘由是现有版本会触发游戏无法继续中止的BUG,为了确保可玩性,仙剑奇侠传五前传最新激活码,官方决议在修复BUG之后再上架游戏。,根据公告中的说明,延期的缘由是现有版本会触发

    2023年02月19 259
  • 印度神油怎么用,印度神油害死了多少人

    但大部分产品的包装盒上都没有与“印度”相关的字样,只在介绍产品时会出现“本品由印度×××集团出品”“本品选用印度秘方×××”等语句,“印度神油”只是一个搜索用的“关键词”。武汉市皮肤病防治院两位专家一

    2023年05月30 222
  • steam上csgo多少钱,steam上购买csgo要多少钱

    最近有玩家反应,自己购买了低价充值卡,冲了一百块钱想要买一个游戏,结果自己被红锁了,而账号里面的大量库存也遭到了封禁,损失相当惨重。而在该玩家反应之后,steam上购买csgo要多少钱,有更多的玩家也

    2023年02月23 255
  • steam令牌怎么启用

    点点|文在经历漫长长长长长长长长长的时间沉淀之后,V社终于舍得花时间升级它那看起来不知道有多久没更新过的古董级手机APP,进入了二维码扫码登陆的时代。看,有两年了捏一开始大家刚接触Steam的时候,都

    2023年01月23 210
  • 押宝怎样稳赢,一分快三怎么玩稳赢

    11月1日,京东云举行2022年城市峰会(上海站)。在会上,京东集团副总裁、京东云事业群总裁高礼强发布了一系列新战略,以及京东云在过去一段时间所取得的成绩。高礼强表示,京东云将会继续深入交通物流、数智

    2023年01月03 218
  • 约等号怎么打,如何打出约等号

    导读2022年12月31日(星期六),京港地铁16号线南段将开通,并与北段、中段贯通,如何打出约等号,为沿线居民的出行提供更大便利。,本次,16号线丽泽商务区站暂缓开通。按照规划,未来丽泽商务区站可以

    2023年02月06 296
  • 手游梦幻西游怎么赚钱,梦幻西游手游怎么赚rmb

    本人已婚,梦幻西游手游怎么赚rmb,小孩刚出生没多久,为了照顾老婆孩子,一年前在老家县城找了份工作,为了贴补家用,开始用业余时间玩下游戏赚些外快。梦幻西游端游玩过几年,出了梦幻西游手游后,很快就迷上了

    2023年01月18 218
关注微信