王者荣耀是怎样炼成的(二)《王者荣耀》unity安装及使用的小白零基础入门

工欲善其事,必先利其器。

 

上回书《王者荣耀是怎样炼成的(一)《王者荣耀》用什么开发,游戏入门,unity3D介绍》说到,开发游戏用到unity和C#。本篇博客将从零开始做一个unity的基础入门。\(^o^)/~

欢迎大家的斧正。一起学习一起交流(笑~)

(因为笔者也是心血来潮开这个专栏,所以和大家一样也是刚刚接触unity和C#。所以这个专栏还有记录学习历程和笔记的作用,确保大家少踩坑。haha)

下面多图预警。希望大家边看博客边动手实践一下。

一.unity的安装

这次我使用的unity3D的版本为5.4.3f1,提供给大家一个下载器链接:链接:http://pan.baidu.com/s/1eSd9QNK 密码:hk8x

然后提供一个注册机:链接:http://pan.baidu.com/s/1o8hxp4A 密码:lxld

度娘上有很多具体的破解教程,在这里不再赘述。需要注意的是运行下载器时会让你选择需要下载的组件,可以看自己的需要。

 

 二.unity的基础入门

在这里给大家推荐一个视频教程:www.mkcode.net,这里面的教程还是挺全的。 

(一)游戏场景的基本操作

 

 说几个概念:

场景:游戏中的一幕,举几个栗子。以下都属于场景。

 

关于一个游戏项目中各部分的关系:

 

每一个游戏都是一个独立的项目。创建步骤:

 

项目文件夹的存储目录结构:

 

Scene面板:场景面板,用于预览当前的场景。

Project面板:项目面板,用于管理当前项目中的所有资源。

Inspector面板:属性面板,用于查看和编辑游戏物体和资源的具体信息。

Assets:对应我们项目文件夹的Assets文件夹。

为了更好管理我们的游戏资源,我们会在Assets中建立不同的文件夹,用来存储不同的游戏资源,如建立Scenes文件夹存储游戏场景,Scripts文件夹存储游戏脚本,Textures文件夹存储贴图等。

创建最基本的3D物体

1.Hierachy面板

      Hierachy:层级面板,用于显示当前场景有哪些资源。在这个面板中可以往场景中添加删除资源。

2.创建3D物体

      Hierachy面板右键-->3D Object-->Cube

 

Scene面板基础操作

 

 

 

 

 

(二)游戏场景制作3D模型

尺寸

以Cube作为参照物的话,Cube是长宽高都为1米的模型。

 

世界坐标系

 

X(红色):右边   Y(绿色):上边      Z(蓝色):前边

世界坐标系可以理解为现实生活中的方向,东南西北上下。在我们的场景中世界坐标系是不会变的。

 

自身坐标系

X(红色):右边   Y(绿色):上边      Z(蓝色):前边

物体自身的坐标系是以物体自身作为参照,确定自身的右边,上边,前边。自身坐标系是可以变化的。

可以通过工具栏上的“local”和“global”来切换物体身上的坐标系显示效果。

 

世界坐标的观察模式

,,,,,

  • Persp:透视模式,远大近小。

  • Iso:正交模式,远近一样大。

制作3D模型的桌椅

大家可以根据上面说的改变模型的位置,旋转,缩放,创造一些基础模型,如下:

这里的桌椅全部都是Cube的变化堆砌组成的。提示几个快捷键:

Ctrl+D:可以快速复制模型。   F:快速聚焦某个物体。    工具栏对于键盘的:Q W E R T

 

 

(三)3D模型美化之材质球

材质球与贴图的概念

材质:物体的质地,物体看起来是什么做的。比如一件木质物品,它的材质就是木头。

这就是材质。

材质球:英文是Material,在unity中,物体的材质通常使用一个球状来显示。如下图。

比如最右下角的那个材质球,一看就是某个绿草地的材质。

贴图:英文是Texture,暂时可以认为是代表某种材质的图片,用于材质球的显示。举几个栗子,

这是某种木板材质的贴图。

这是某种地板瓷砖材质的贴图。

管理材质球与贴图

在上面提到的,Assets文件夹就是用来保存游戏资源的。

  • 在Assets文件夹中建立“Material”文件夹,用于管理材质球。

  • 在Assets文件夹中家里“Texture”文件夹,用于管理贴图。

创建材质球

大家可能会有疑问,上面的材质球和贴图是怎么创建的呢?

其实很简单,在Assets文件夹中的Material文件夹中,右键-->Create-->Material,就可以创建一个空白材质球。材质球文件的后缀是“.mat”。

这时候我们选中这个材质球,查看Inspector面板,就能看到这个材质球信息。

 

 

 编辑材质球

鼠标选中需要编辑的材质球,点击属性面板的“Albedo”前的圆点,在弹出的“贴图选择界面”选择需要的材质。比如选择了之前的木板贴图:

 

使用材质球

可以有两种使用方式:

  1. 将材质球拖拽到Hierarchy面板上相应的物体上

  2. 将材质球拖拽到Scene面板上相应的物体上

注:还可以通过着色器(shader)来编辑材质球的效果。据说会写shader的都是高手。

 

最后总结一张图:

 

 

(四)3D模型重用之预制体

空物体

  • 空物体就好比是资源管理器的文件夹,可以用来管理资源。

  • 创建空物体很简单,在Hierarchy面板右键-->Create Empty,就完成了一个空物体。空物体虽然也有自身坐标系,但是点击Scene面板是完全看不出来的。

父子关系

  • 移动父物体,子物体也会跟着移动, 就像我们移动电脑上的一个文件夹,里面的文件也会跟着移动。

  • 在Hierarchy面板上,任意两个物体都可以建立父子关系。

预制体简介

预制体,英文是Prefab,顾名思义,是“预先准备好的物体”,可以重复使用和利用。

预制体有点像java中的类,通过这个类可以生成许多对象。就像鸣人的影分身,可以生成很多相同的分身。

那么在游戏中哪些地方用到了预制体呢?

比如游戏中的小(pao)兵(hui),他们长得都一样,都是使用了预制体复制出来的。

创建预制体

在Assets文件夹中建立“Prefabs”文件夹,用来存储管理预制体。

可以将Hierarchy面板中的游戏物体直接拖拽到Project面板的Prefabs文件夹中,就产生了一个预制体。预制体文件的后缀是“.prefab”。

比如我们要做一个教室模型,那么这些桌椅就可以做成预制体。需要时直接再拖拽到Hierarchy面板或者Scene面板,就产生了新的游戏物体。

为什么使用预制体呢?就跟java中为什么使用类是一样的。方便批量管理。

加入需要改变预制体,只需要在某一个预制体生成的游戏物体上做出改变,然后在Inspector面板点击“Apply”,就可以把改变传递到所有由预制体生成的游戏物体上。 

 

(五)基本组件之摄像机

Game视图

Game视图是游戏视图,也是游戏的运行预览窗口。

点击“播放”按钮,属兔会自动切换到游戏视图进行预览;再点击一次“播放”按钮,就可以退出游戏的运行状态,回归到场景视图。

注意:游戏在运行状态时,做的任何操作都不会保留

摄像机的简介与作用

 

  •  摄像机(Camera)就是我们的眼睛,用来观察游戏世界。眼睛的话会有一个观察的区间,就是上图的那个锥形,叫做“视锥体”。在视锥体范围内的物体,我们都可以看到。右下角      就是摄像机的预览窗口。

  • 摄像机用于在合适的位置和角度观察游戏世界。电影中的画面是由摄像机的角度和位置来决定的;我们游戏中观看到的画面也是由摄像机的角度和位置来决定的。游戏运行时看到的   画面就是摄像机拍下的画面

摄像机基本操作

  • 在Hierarchy面板选中Camera,Scene视图会出现预览窗口。

  • 根据轴向移动摄像机的位置,旋转摄像机的角度。

  • 菜单栏GameObject-->Align With View对齐视图。让摄像机对齐到当前视图,使得Scene与Game中观看角度和位置一致。

  • 创建摄像机:Hierarchy面板右键-->Camera。

 摄像机的几个常用属性

  • Clear Flags[清除标记],有两个值:Skybox,Solid Color。效果分别如下:

  • Background[背景颜色],当Clear Flags为Solid Color时,场景的背景颜色。

  • Projection[投影],有两个值:Perspective(透视模式),Orthographic(正交模式)。

  • Clipping Planes[切割面],Near:近平面,摄像机最近看到的东西。Far:远平面,摄像机最远能看到的东西。

 

 

 

(六)基本组件之灯光

 简介

灯光(light),用于照亮我们的游戏世界。还可以烘托场景氛围;使场景产生阴影,增加真实感和立体感。

在我们创建一个新的Scene场景时,会默认带有两个游戏物体,Camera和Light。

选中物体,在Inspector面板上图标的右侧的复选框,可以选择隐藏还是显示物体。

 

方向光

方向光(Directional Light),用来模拟现实生活中的自然光。

方向光任何地方都能照射到,就和太阳一样,但是要注意照射方向。

有几个常用属性

Type:用于切换灯光类型,是自然光,还是点光源,聚光灯等类型

Color:灯光颜色,常常用于烘托气氛。

Intensity:灯光的照射强度。

Shadow Type:设置方向光照射到的物体的投影效果。有三个值,No Shadow(没有阴影),Hard Shadow(阴影边缘为锯齿状的硬阴影),Soft Shadow(阴影边缘比较平滑柔和的软阴影)。 

 三.入门总结

在这篇博客,我们了解了unity的安装以及简单使用。涉及到了游戏场景,模型,材质球,预制体,摄像机,灯光。

这些都属于unity软件的简单使用,还没有涉及到组件和脚本,也没有开始写代码。在下一篇,我们会涉及到unity简单的组件和脚本。

相关文章:

  • 王者荣耀是怎样炼成的(一)《王者荣耀》用什么开发,游戏入门,unity3D介绍

  • Unity3d&C#分布式游戏服务器ET框架介绍-组件式设计

  • 开源分享 Unity3d客户端与C#分布式服务端游戏框架

  • 《Unity 3D脚本编程:使用C#语言开发跨平台游戏》序言

原文地址:http://www.cnblogs.com/yuxiuyan/p/7533392.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

史上最全MySQL 大表优化方案(长文)

转载自 史上最全MySQL 大表优化方案(长文) 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 一、单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分&…

阶乘的值

#include<stdio.h> main(){//阶乘 int a,i,sum;printf("请输入你所需要的阶乘数&#xff1a;\n");scanf("%d",&a);sum1;for(i1;i<a;i){sumsum*i;} printf("%d",sum); } 输出阶乘的数

“.Net 社区大会”(dotnetConf) 2017 Day 1 Keynote: .NET Everywhere

8月份已经发布了.NET Core 2.0, 大会Keynote 一开始花了大量的篇幅回顾.NET Core 2.0的发布&#xff0c;社区的参与度已经非常高。大会的主题是.NET 无处不在&#xff1a;NET Core 2.0已经完成了服务端的布局&#xff0c;那么各种终端的覆盖就是Xamarin的主场&#xff0c;Xamar…

金三银四铜五铁六

转载自 金三银四铜五铁六 金三银四铜五铁六 据说&#xff0c;金三银四&#xff0c;截止今天为止面试黄金时间已经过去十之八九&#xff0c;而鲁班&#xff08;LB &#xff0c;以下全文均用LB代替&#xff09;恰逢是这批面试大军其中的一名小兵&#xff0c;很不幸今年恰逢遇…

WebSocket In ASP.NET Core

What Is WebSocket?WebSocket 是一种在单个 TCP 连接上进行全双工通讯的协议&#xff0c;是建立在TCP上、且独立的协议。在WebSocket API 中&#xff0c;浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以进行持久性的连接&#xff0c;并进行双向数据传输。为了建立…

微信服务(公众)号实现用户关注自动注册成为会员

大家好&#xff0c;我是雄雄。交流技术可以进入到我的社区【雄雄的小课堂】 前言 看本篇文章之前&#xff0c;可以先看看前面两篇&#xff1a; java实现微信服务&#xff08;公众&#xff09;号用户关注时&#xff0c;获取openid&#xff0c;安全模式下的加密解密实现 微信公…

完成图片拖拽

<html> <head><meta charset"UTF-8"><title>拖拽</title><style type"text/css">#box1{width: 100px;height: 100px;background-color: yellow;position:absolute;}#box2{width: 100px;height: 100px;background-colo…

深入探索 Java 热部署

转载自 深入探索 Java 热部署 简介 在 Java 开发领域&#xff0c;热部署一直是一个难以解决的问题&#xff0c;目前的 Java 虚拟机只能实现方法体的修改热部署&#xff0c;对于整个类的结构修改&#xff0c;仍然需要重启虚拟机&#xff0c;对类重新加载才能完成更新操作。对…

手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)

背景公司去年开始使用dotnet core开发项目。公司的总体架构采用的是微服务&#xff0c;那时候由于对微服务的理解并不是太深&#xff0c;加上各种组件的不成熟&#xff0c;只是把项目的各个功能通过业务层面拆分&#xff0c;然后通过nginx代理&#xff0c;项目最终上线。但是这…

如何在面试中介绍自己的项目经验

转载自 如何在面试中介绍自己的项目经验 在面试时&#xff0c;经过寒暄后&#xff0c;一般面试官会让介绍项目经验 。常见的问法是&#xff0c;说下你最近的&#xff08;或最拿得出手的&#xff09;一个项目。 根据我们的面试经验&#xff0c;发现有不少候选人对此没准备&am…

Configuration Extensions - 简化配置,让你配置支持变量

在开发“RabbitCloud”项目时&#xff0c;使用配置文件发现会有很多重复值&#xff0c;所以我基于”Microsoft.Extensions.Configuration”写了一个扩展库&#xff0c;来丰富对配置的支持。实际案例——“RabbitCloud”之前&#xff0c;我是这样的因为公司ip和家里机器的ip不一…

如何配置frp到linux服务器和windows本地,服务端支持自启动

大家好&#xff0c;我是雄雄&#xff0c;如果你觉得文章还不错的话&#xff0c;欢迎在文末点赞和评论。 前言 最近这段时间都在开发微信服务&#xff08;公众&#xff09;号相关技术&#xff0c;对于写了好几年的后端程序的我来说&#xff0c;开发小程序和服务号&#xff0c;刚…

错误代码:88000, 错误信息:without comment privilege hint: [7oJ0533w689] rid: 630432cd-15944cf6-083e04fc

大家好&#xff0c;我是雄雄。 问题复现 这个问题&#xff0c;是我在操作&#xff1a;给微信公众平台上添加图文到草稿箱时&#xff0c;遇到的。 报错信息如下&#xff1a; {"errcode":88000,"errmsg":"without comment privilege hint: [7oJ0533w6…

asp.net core AuthenticationMiddleware 在WebApi中的的使用

在.net framework 4.5架构下使用认证&#xff08;Authentication&#xff09;授权(Authorization)。IIS使用HttpModule进行认证&#xff08;Authentication&#xff09;&#xff0c;我们可以选择自己实现认证方式并在web.config中配置&#xff0c;当然也可以选择IIS默认提供的几…

WebSocket In ASP.NET Core(二)

Introduce上篇博文中&#xff0c;介绍了WebSocket的基本原理&#xff0c;以及一个简单的Demo用来对其有一个大致的认识。这篇博文讲的是我们平常在网站上可能会经常遇到的——实时聊天&#xff0c;本文就是来讲在.NET-Core使用WebSocket来实现一个“乞丐版”的在线实时聊天Demo…

不支持POST请求方法,支持以下GET、

大家好&#xff0c;我是雄雄。 刚刚在用**FeignClient**注解的时候&#xff0c;报了个错&#xff0c;不支持POST请求方法&#xff0c;支持以下GET、。 字面意思上看&#xff0c;好像是让把请求方式从post改成get. 但是&#xff0c;我检查了下我的代码&#xff0c;get提交方式…

P3701 -「伪模板」主席树【网络流,最大流】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP3701 题目大意 给出若干个人的克制关系 给出两边每个人的种类和血量。当两个人pkpkpk后&#xff0c;双方各−1hp-1hp−1hp&#xff0c;同一边的YYYYYYYYY可以给每个同一方的J1hpJ\ 1hpJ 1hp&#xf…

微服务如何实现各个模块之间相互调用

大家好&#xff0c;我是雄雄&#xff0c;现在是:2022年8月23日21:08:53 前言 在做微服务项目时&#xff0c;我们可能都会遇到这样的情况&#xff0c;那就是A服务需要调用B服务中的某个接口&#xff0c;那有这样的需求时&#xff0c;我们应该怎么处理呢&#xff1f; 实现 使用…

2017年秋招美团Java程序员开发,看我如何拿到offer

转载自 2017年秋招美团Java程序员开发&#xff0c;看我如何拿到offer 本人是一名本科毕业非计算机专业的程序员&#xff0c;面了阿里&#xff0c;结果没过&#xff0c;最后面上了美团&#xff0c;热乎乎的面经&#xff0c;昨天面的美团&#xff0c;虽然面完了HR面&#xff0c…

ASP.NET Core 运行原理剖析

1.1. 概述在ASP.NET Core之前&#xff0c;ASP.NET Framework应用程序由IIS加载。Web应用程序的入口点由InetMgr.exe创建并调用托管。以初始化过程中触发HttpApplication.Application_Start()事件。开发人员第一次执行代码的机会是处理Application_StartGlobal.asax中的事件。在…