Unity游戏引擎介绍及相关学习资源

Unity(游戏引擎)一般指Unity3D

官网: https://unity.com/

手册:https://docs.unity3d.com/Manual/

Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件。其编辑器可运行在Windows、Linux(目前仅支持Ubuntu和Centos发行版)、Mac OS X下,可发布游戏至WindowsMacWiiiPhoneWebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac 所支持。

软件版本介绍

Windows版本:Unity3d 2019.2

Mac版本:Unity3d 2019.2

大陆发布版本

Unity3D PRO虚拟现实、跨平台应用程序开发引擎(商业版)

unity3d 4.0版本 unity3d 4.0版本

Unity iOS Pro移动终端发布平台

Unity3D PRO 虚拟现实、跨平台应用程序开发引擎(教育版)

2012年11月15日,Unity Technologies公司正式推出Unity 4.0版本,新加入对于DriectX 11的支持和Mecanim动画工具,以及为用户提供Linux及Adobe Flash Player的部署预览功能。

目前最新版本为Unity2019.2

Unity是免费的,官方为Unity Pro和Unity iOS Pro提供30天全功能试用期。

你可以使用C#快速上手它。

如何学习

第一步首先了解unity3d的菜单,视图界面。 [2]  这些是最基本的基础,可以像学word操作一样,大致能明白有几个菜单,几个基本的视图,各自起什么作用的就可以了。当然还要了解人物基本的比例和结构。

using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class movePic : MonoBehaviour,IDragHandler ,IPointerDownHandler{
    private RawImage img; 
    Vector3 offsetPos; //存储按下鼠标时的图片-鼠标位置差
    void Start()
    {
        img = GetComponent<RawImage>();//获取图片,因为我们要获取他的RectTransform
    }
    public void OnDrag(PointerEventData eventData)
    {
        //将鼠标的位置坐标进行钳制,然后加上位置差再赋值给图片position
        img.rectTransform.position = new Vector3(Mathf.Clamp(Input.mousePosition.x, 0, Screen.width), Mathf.Clamp(Input.mousePosition.y, 0, Screen.height), 0) + offsetPos;
    }
    public void OnPointerDown(PointerEventData eventData)
    {
        offsetPos = img.rectTransform.position - Input.mousePosition;
    }
}

Unity3d代码

第二步理解场景里面的坐标系统,输入系统,简单的向量概念。Unity3D的坐标系统及向量概念如果不理解清楚,不理解世界坐标,局部坐标的关系,即使一个简单的移动,缩放,旋转的几行代码,也会困惑你半天。

第三步学习创建基本的场景的一些基本概念:游戏对象,组件,脚本。在界面上分别体现在层次视图,项目视图及属性视图,要理清楚彼此之间的关系

第四步学习资源导入方面的一些基本元素:网格,材质,贴图,动画等。

第五步学习脚本的生命周期,Start,UpDate,ONGUI这些基本的方法。了解,预制,时间,数学等常用的类及相关方法。理解游戏对象,组件,脚本彼此之间的关系。

第六步进一步学习摄像机灯光,地形,渲染,粒子系统,物理系统等等,这些每一个深入进去都是一个很复杂的主题。

第七步一些更高级的概念:向量的加减法点乘叉乘,光照法线贴图,内存管理,图形优化等等。Unity3D入门容易,真的要精通,那是相当难的。

开源游戏项目

http://subject.manew.com/source/

Unity小作品游戏精选推荐(部分作品含源代码)

Unity3D是全面集成的开发引擎,具有丰富的开包即用功能,可以用来创建游戏和其他3D互动内容。你可以使用Unity3D将你的艺术和素材配置到场景和环境中;添加物理性能;虚拟游戏测试并编辑你的游戏,一切完备就绪后,发布到你选择的平台,如台式电脑、网络、iOS、安卓、Wii、PS3、Xbox 360和WP8等。

下面我就推荐一些个人Unity游戏作品,部分包含作者开放的源码,感谢原作者的分享,同时也鼓励大家能上传自己的作品,开放源码!

Unity游戏AngryBots源码

Unity游戏AngryBots源码
Unity官方自带Demo,包含源码、贴图素材、视频教学及三种脚本不同的写法,适合刚入门学习的新手.更多

推荐指数:★★★★★1.27G个人作品全部开源

1.27G个人作品全部开源
本人也不算厉害的人物,所以代码等等诸多地方也未必就做到很好,不少地方也优化不足,希望大家互相多交流交流,以便共同...更多

推荐指数:★★★★★Unity2D射击游戏源码

Unity2D射击游戏源码
类似雷霆战机那样的射击游戏,附带游戏源码,可生成游戏直接玩,比较简单,可以参考学习...更多

推荐指数:★★赛车跑道(未完成作品)

赛车跑道(未完成作品)
未完成作品,里面包含了赛车模型、跑道及城市建筑。可以接着源代码继续开发,类似赛车游戏...更多

推荐指数:★★★植物大战僵尸源码素材及JS脚本带注释

植物大战僵尸源码素材及JS脚本带注释
在植物大战僵尸2风靡全球的今天,自己也想做一款,那么本项目可做参考,附带源码素材及JS脚本带注释,对Unity的学习...更多

推荐指数:★★★★VS2010+C#写的3D-的Android游戏

VS2010+C#写的3D-的Android游戏
游戏采用VS2010+Unity4,纯C#开发,游戏资源均从Unity的资源商店搞的,只是个DEMO,这个DEMO我才搞了10天...更多

推荐指数:★★★★Unity3d做的小游戏Demo《高铁惊魂》

Unity3d做的小游戏Demo《高铁惊魂》
由策划同学想的一个在车上模拟晕车的状况。根据右上角的方向来按键,然后如果那个如花同学转头过来看你...更多

推荐指数:★★★Unity3D 之 《坦克克星游戏》

Unity3D 之 《坦克克星游戏》
此游戏虽然简单,但是还有很多值得学习的地方,主要用到碰撞检测及图片动画的实现两大块...更多

推荐指数:★★★Unity3D解谜类小游戏

Unity3D解谜类小游戏
一个用Unity3D完成的简单的密室逃脱游戏,小学期课程设计作品,时间仓促,尚有很多不足之处。更多

推荐指数:★★★Unity迷宫寻宝游戏

Unity迷宫寻宝游戏
面对令人头晕目眩的高度和望而生畏的深度,控制一个球在一个充满铁轨、木桥等机关的超真实世界中遨游...更多

推荐指数:★★★★bumper+boats+碰碰船+项目源码

bumper+boats+碰碰船+项目源码
面对令人头晕目眩的高度和望而生畏的深度,控制一个球在一个充满铁轨、木桥等机关的超真实世界中遨游...更多

推荐指数:★★★★Unity3D高尔夫球推杆游戏

Unity3D高尔夫球推杆游戏
游戏的操作很简单,控制旋转的方向,保持小球朝向着改方向发射,知道小球被球杆打进洞,表示推杆完成...更多

推荐指数:★★★★超级打地鼠3D游戏

超级打地鼠3D游戏
这次的游戏,从题材上看是没什么新意的,就是打地鼠,但融入了地下城与阿赵里面的角色和场景...更多

推荐指数:★★★Unity3D愤怒的小鸟教程附源码

Unity3D愤怒的小鸟教程附源码
我准备把对如何用Unity3D制作愤怒的小鸟的研究过程记录下来,希望能完成愤怒的小鸟游戏的大部分功能...更多

推荐指数:★★★★Unity3D写雷电游戏

Unity3D写雷电游戏
加了一个子弹的碰撞效果,这个东西搞了我半天,rigidbody加入好子弹漫天乱飞,一个小弹幕游戏的雏形就出来了...更多

推荐指数:★★★★

常见问题

1:天空盒有接缝怎么解决?

答:在贴图导入设置里设置Wrap Mode为"Clamp"。

2:DDS格式怎么不显示?

答:Unity不支持DDS格式,Unity会将除DDS外的其他格式图片具有为DDS同样的优化。

3:Unity如何动态载入外部模型等文件?

答:可以使用AssetBundle。

4:脚本编辑器有语法提示吗?

答:有的,Win版使用Ctrl+I,Mac版使用Ctrl+>。

5:如何使用烘焙贴图(多重纹理)?

答:不要使用Shell贴图,直接将烘焙图赋予贴图的"自发光"通道之上。

6:怎么屏蔽Webplayer右键菜单?

答:<param name="disableContextMenu" value="true" />

7:为什么水面没有实时反射效果?

答:只有专业版才支持这种反射效果。

8:怎么做摄像机漫游动画?

答:Max正常制作摄像机漫游动画,导到Unity中后,将Unity的Camea拖拽到Max导出的摄像机Gameobject物体之上,作为其子物体即可。

9:如何自定义Webplayer载入Logo及进度条?

答:<param name="logoimage" value="Logo文件名" />,<param name="progressbarimage" value="进度条名" />,<param name="progressframeimage" value="进度条外框名" />。

10:GUI上怎么使用中文字?

答:导入任意中文字体,然后定义GUISkin字体为该字体即可。

11:购买一个授权可以安装几台电脑?

答:可以安装于2个系统之上比如一个Win版一个Mac版。

12:Max文件扔到Unity中怎么说导入失败?

答:下载最新版Fbx插件,用Max导出Fbx文件然后扔Unity中。

13:如何不让摄像头穿透模型,离模型近了就像模型露面了?

答:设置相机的Near clip plane,调小一点,但是不要给负数。

14:怎么用双面贴图?

答:Unity中可设置双面Shader,最简单有效的办法是直接做成双面的实体模型.复杂一点的方法可以在材质脚本中的相应的SubShader中的一个Pass块中加入cull off,即关闭反面裁剪。

15:导入的Fbx模型尺寸小于Max中的尺寸?

答:在Unity中该文件的导入设置中设置缩放因子为1。

16:如何给相机添加Glow效果?

答:选中相机对象,在菜单中选中Component-Image Effects-Glow赋予该组件即可(专业版才支持此特效)。

17:怎么设置Webplayer默认尺寸?

答:到菜单Edit-Project Settings-Player中设置Default Web Screen尺寸即可。

18:怎么设置可执行文件的启动Banner?

答:到菜单Edit-Project Settings-Player中设置Resolution Dialog Banner。

19:如何设置雾效?

unity

unity(10张)

答:到菜单Edit-Render Settings中开启Fog及设置Fog Color等即可。

20:如何设定默认Skybox天空盒?

答:到菜单Edit-Render Settings中设置Skybox Material即可. (欢迎加入unity3d百度唯一问答团队,参考资料)

21:如何下载Unity3d游戏开发工具?

Unity3D下载软件开发工具和游戏引擎套件(Unity) v4.5.5 下载Unity3d 4.5.5下载是一个让你轻松创作的多平台的游戏开发工具,是一个全面整合的专业游戏引擎综合编辑通过Unity简单的用户界面

  1. unity3d虚拟现实的设计流程?

答:max 制作模型,导出fbx,导入unity,设计相机代码,设计ui,build 。

22:Unity3D-实现水面渲染 [3] 

在实现上其实有两种大体的思路来实现散射,一种是专门为海底的物体写一个shader,这个shader里包含散射的计算;另外一种是专门用一个相机来渲染海底的场景并计算散射。

Unity下载

中国增强版:https://unity.cn/download

 

 

Unity 商店

https://store.unity.com/cn/

个人使用:

团队使用:

 更多阅读参考:

Unity-Unity3D-百度百科

Unity3D 一句话代码实现UGUI图片的拖拽功能

Unity3D脚本--常用代码集

Unity3D代码加密

在线学习Unity之一

在线学习Unity之二

发布了627 篇原创文章 · 获赞 535 · 访问量 359万+

猜你喜欢

转载自blog.csdn.net/boonya/article/details/103267318