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

article/2025/11/5 3:46:28

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下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要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){//将鼠标的位置坐标进行钳制,然后加上位置差再赋值给图片positionimg.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之二

 


http://chatgpt.dhexx.cn/article/gT5DbZRg.shtml

相关文章

垃圾收集器及算法

一、垃圾收集算法 1.分代收集理论 当前虚拟机的垃圾收集都采用分代收集算法&#xff0c;只是根据对象存货周期的不同将内存分为几块。一般java堆分为新生代和老年代&#xff0c;可以根据各个年代的特点选择合适的垃圾收集算法。比如在新生代中&#xff0c;每次收集都会有大量的…

垃圾收集器-CMS

CMS垃圾收集器 文章目录 CMS垃圾收集器前言一、CMS是什么&#xff1f;二、CMS收集的步骤1.初始标记2.并发标记3.重新标记4.并发收集 三、核心参数四、总结 前言 相信大家都或多或少的了解过hotspot虚拟机的垃圾收集器&#xff0c;无论是初代的serialGc(单线程的垃圾收集器)&am…

Java经典垃圾收集器

经典垃圾收集器 1.Serial收集器2.ParNew收集器3.Parallel Scavenge收集器4.Serial Old收集器5.Parallel Old收集器6.CMS收集器7.Garbage First收集器 1.Serial收集器 Serial收集器是最基础&#xff0c;历史最久远的收集器&#xff0c;是一款新生代收集器&#xff0c;新生代收集…

GC 垃圾收集器

GC 垃圾回收算法 和 垃圾收集器之间的关系是什么呢 ? GC算法 (复制 / 标清 / 标整 ) 是内存回收的一种思想 , 垃圾收集器就是 GC算法 的落地实现我们知道没有最完美的 GC算法 , 因此目前为止也没有完美的垃圾收集器 , 只是针对不同的情况选择最适合的收集器来进行分代收集 主要…

7种垃圾收集器

如果说收集算法是内存回收的方法论&#xff0c;那么垃圾收集器就是内存回收的具体实现。 Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定&#xff0c;因此不同的厂商、版本的虚拟机所提供的垃圾收集器都可能会有很大差别&#xff0c;并且一般都会提供参数供用户根据…

垃圾收集器简介

HotSpot JVM收集器 上面有7中收集器&#xff0c;分为两块&#xff0c;上面为新生代收集器&#xff0c;下面是老年代收集器。如果两个收集器之间存在连线&#xff0c;就说明它们可以搭配使用。 Serial(串行GC)收集器 Serial收集器是一个新生代收集器&#xff0c;单线程执行&…

【JVM】7种经典的垃圾收集器

文章目录 1. 垃圾收集器概述2. Serial 收集器3. ParNew 收集器4. Paraller Scavenge 收集器5. Serial Old收集器6. Parller Old收集器7. CMS 收集器8. Garbage First 收集器 本文参考&#xff1a;深入理解Java虚拟机&#xff1a;JVM高级特性与最佳实践&#xff08;第3版&#x…

JVM垃圾收集器

一.概述 GC需要完成的三件事:1.哪些内存需要回收? 2.什么时候回收? 3.如何回收 Java内存运行时区域的各个部分&#xff1a; a. 其中程序计数器、虚拟机栈、本地方法栈三个区域随线程而生&#xff0c;随线程而灭&#xff1b;栈中的栈帧随着方法的进入和退出而有条不紊地执行…

垃圾收集算法与垃圾收集器

典型的垃圾收集算法 1.Mark-Sweep&#xff08;标记-清除&#xff09;算法 这是最基础的垃圾回收算法&#xff0c;之所以说它是最基础的是因为它最容易实现&#xff0c;思想也是最简单的。标记-清除算法分为两个阶段&#xff1a;标记阶段和清除阶段。标记阶段的任务是标记出所有…

Java 的七种垃圾收集器

用 C 或 C 这样的编程语言写一个应用时&#xff0c;需要编写代码来销毁内存中不再需要的对象。当应用程序扩展得越来越复杂时&#xff0c;未使用对象被忽略释放的可能性就越大。这会导致内存泄露&#xff0c;最终内存耗尽&#xff0c;在某个时刻将没有更多的内存可以分配。结果…

Java 垃圾收集器

堆内存示意图 垃圾收集算法 1.标记-清除算法 算法分为标记和清除两个阶段。标记出所有需要回收的对象&#xff0c;在标记完成后&#xff0c;统一回收。 缺点&#xff1a; 执行效率不稳定&#xff0c;若堆中有大量对象要被回收&#xff0c;这是必须进行大量标记和清除动作&a…

JVM 垃圾收集器

title: “JVM 垃圾收集器” date: 2022-03-11T16:45:2108:00 draft: false 文章目录 引言术语垃圾收集器介绍Serial 收集器&#xff08;新生代&#xff09;ParNew收集器&#xff08;新生代&#xff09;Parallel Scavenge收集器&#xff08;新生代&#xff09;Serial Old 收集器…

详解ZGC垃圾收集器

从G1垃圾收集器开始&#xff0c;后面的垃圾收集器都不再将堆按照新生代和老年代作为整体进行回收&#xff0c;都采用了局部收集的设计思想。 可能是由于G1作为第一代局部收集的垃圾收集器&#xff0c;所以它继续保留了新生代和老年代的概念&#xff0c;笔者认为从局部收集和分…

JVM——垃圾收集器

目录 引言 垃圾收集器 如何判断对象已死&#xff1f; 引用计数算法&#xff1a; 可达性分析算法&#xff1a; 垃圾收集算法 标记-清除算法 标记-复制算法 标记-整理算法 并发的可达性分析 经典垃圾收集器 内存分配与回收策略 1.对象优先在Eden分配 …

jvm垃圾收集器有哪些

Serial收集器 Serial收集器是最基本&#xff0c;发展最悠久的收集器&#xff0c;在JDK1.3.1之前是虚拟机新生代垃圾回收的唯一选择。这个收集器是一个单线程的。它的单线程的意义并不仅仅说明它只会使用一个CPU或者一条收集线程去完成收集工作&#xff0c;最重要的是&#xff…

经典垃圾收集器(三)

低延迟垃圾收集器 衡量垃圾收集器的三项重要指标&#xff1a;内存占用&#xff08;Footprint&#xff09;、吞吐量&#xff08;Throughput&#xff09;和延迟&#xff08;Latency&#xff09;。三者构成了一个“不可能三角” Shenandoah收集器 Shenandoah相比于G1有什么改进&…

垃圾收集器

如果说垃圾回收算法是内存回收的方法论&#xff0c;那么垃圾收集器就是内存回收的具体实现&#xff0c;java虚拟机实现规范中对垃圾收集器应该如何实现并没有任何规定&#xff0c;因此不同厂商、不同版本的虚拟机提供的垃圾收集器存在很大的差异&#xff0c;接下来我们主要介绍…

深入理解7种垃圾收集器

**如果说收集算法是内存回收的方法论&#xff0c;那么垃圾收集器就是内存回收的具体实现。**Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定&#xff0c;因此不同的厂商、版本的虚拟机所提供的垃圾收集器都可能会有很大差别&#xff0c;并且一般都会提供参数供用户根…

Java中的垃圾收集器

目录 1、Java的垃圾收集器的分类 2、收集器的特点 3、评估GC的性能指标 4、Serial收集器 5、ParNew收集器 6、Parallel Scavenge 吞吐量优先 &#xff08;与Parallel Old搭配&#xff09; 7、CMS收集器 8、G1收集器 9、各种收集器的应用场景 垃圾收集器&#xff1a;垃…

java垃圾收集器

目录 简介 Serial 收集器 ParNew 收集器 并行&#xff08;Parallel&#xff09; 并发&#xff08;Concurrent&#xff09; Parallel Scavenge 收集器 Serial Old 收集器 Parallel Old 收集器 CMS收集器 G1收集器 G1简介 G1细节 G1 Minor GC流程 G1 Mixed GC流程 …