unity3d 订阅
Unity是游戏引擎开发商 [1-2]  ,实时3D互动内容创作和运营平台 [3]  。 [2]  包括游戏开发、美术、建筑、汽车设计、影视制作在内的创作者运用Unity实现。 [2]  Unity提供一整套软件解决方案,可用于创作、运营和变现实时互动的2D和3D内容 [2]  ,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 [2]  2019年使用Unity制作的游戏和体验已在全球范围内覆盖将近30亿台设备 [4]  ,月均下载量超过30亿次 [5]  。并且其在2019年的安装量已超过370亿次。 [4]  全平台(包括PC/主机/移动设备)游戏中有一半都是基于Unity创作的。 [5]  Unity提供易用实时平台,开发者可以在平台上构建各种AR和VR互动体验 [5]  ,全球超过60%的AR和VR内容都用Unity制作。 [5]  2020年5月9日,Unity宣布收购加拿大技术服务公司Finger Food,拓展工业应用版图。 [6] 展开全文
Unity是游戏引擎开发商 [1-2]  ,实时3D互动内容创作和运营平台 [3]  。 [2]  包括游戏开发、美术、建筑、汽车设计、影视制作在内的创作者运用Unity实现。 [2]  Unity提供一整套软件解决方案,可用于创作、运营和变现实时互动的2D和3D内容 [2]  ,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 [2]  2019年使用Unity制作的游戏和体验已在全球范围内覆盖将近30亿台设备 [4]  ,月均下载量超过30亿次 [5]  。并且其在2019年的安装量已超过370亿次。 [4]  全平台(包括PC/主机/移动设备)游戏中有一半都是基于Unity创作的。 [5]  Unity提供易用实时平台,开发者可以在平台上构建各种AR和VR互动体验 [5]  ,全球超过60%的AR和VR内容都用Unity制作。 [5]  2020年5月9日,Unity宣布收购加拿大技术服务公司Finger Food,拓展工业应用版图。 [6]
信息
开发公司
Unity Technologies
类    别
创作引擎、开发工具 [2]
员工数
约3500名 [2]
CEO
John Riccitiello [7]
别    名
U3D、Unity3D
属    性
软件公司 [2]
成立时间
2004年 [4]
支持维度
2D、3D、VR、AR、MR [2]
外文名
Unity
编程语言
C# [2]
Unity基本介绍
Unity3D(7张) Unity [8]  引擎使开发者能够为超过20个平台创作和优化内容 [5]  ,包括iOS、安卓、Windows [2]  、Mac OS、索尼PS4、任天堂Switch [2]  、微软Xbox One、谷歌Stadia、微软Hololens、谷歌AR Core、苹果AR Kit、商汤SenseAR等等 [2]  。公司超过1400人规模的研发团队让Unity的技术跟随合作伙伴迭代 [5]  ,确保在最新的版本和平台上提供优化支持服务。 [5]  Unity还提供运营服务来帮助创作者 [2]  ,包括:Unity Ads广告服务、Unity游戏云一站式联网游戏服务、Vivox游戏语音服务、Multiplay海外服务器托管服务 [2]  、Unity内容分发平台(UDP)、Unity Asset Store资源商店 [2]  、Unity云构建等。 [2]  Unity在中国、比利时、芬兰、加拿大、法国、新加坡、德国等16个国家拥有44个办公室 [5]  ,创作者分布在全球190个国家和地区。 [5] 
收起全文
精华内容
下载资源
问答
  • unity3d
    千次阅读
    2021-11-29 10:10:18

    unity 3d

    1. unity3d脚本从唤醒到销毁有一套完整的生命周期,列出系统自带的几个重要方法?哪些可能在同一个对象周期中反复的发生?

    Awake -> OnEnable -> Start -> FixedUpdate -> Update - > LateUpdate-> OnGUI -> OnDisable -> OnDestroy

    OnEnable -> FixedUpdate -> Update -> LateUpdate -> OnGUI -> OnDisable

    2. 什么是协同程序

    协同程序,即在主程序运行时同时开启另一段逻辑处理,来协同当前程序的执行。协程很像多线程,但是不是多线程,Unity的协程是在每帧结束之后去检测yield的条件是否满足。

    3. 简述哈希表与字典的区别

    (1) 相同点:

    ​ 都是以键值对的形式存在,键是唯一的,值不需要唯一,都是无序的键值对

    ​ 存储的个数不受限制

    ​ 方法很相似

    (2) 不同点:

    ​ 键与值的类型不同

    ​ 命名空间不同:hashtable是在System.Collections,字典是在System.Collections.Generic

    ​ 实现方式不同

    ​ 添加数据时hashtable快,频繁调用数据时dictionary快

    4. string和stringBuilder的区别

    string:字符串 stringBuilder:字符串常量

    (1) 少量的字符串操作,或者是字符串不经常发生变化时,优先使用string

    (2) string创建后分配在栈区,大小不可改变;stringBuilder创建后分配在堆区,大小可自由修改

    (3) stringBuilder运行速度比string快

    5. 当一个细小的高速物体撞向另一个较大的物体时,会出现什么情况?如何避免?

    穿透(碰撞检测失败)

    (1) 增大细小物体的碰撞体

    (2) 使用射线检测,检测距离
    (3) FixedUpdate频率修改,可以physics time减小,不建议这样做
    (4) 改变物体的速度,确保rigidbody不超过一定的速度,来达到减速目的,这个也不实用
    (5) 将检测方式改为连续检测,rigifdbody.collisionDetectionMode = CollisionDetectionMode.Continuous; 或者动态连续检测(
    CollisionDetectionMode.ContinuousDynamic)
    (6) 代码限制,加大计算量提前计算好下一个位置。

    6. 请简述GC(垃圾回收)产生的原因,并描述如何避免?

    用new创建一个对象时,当可分配的内存不足GC就会去回收未使用的对象,但是GC的操作是非常复杂的,会占用很多CPU时间,对于移动设备来说频繁的垃圾回收会严重影响性能。下面的建议可以避免GC频繁操作。
    1)减少用new创建对象的次数,在创建对象时会产生内存碎片,这样会造成碎片内存不法使用
    2)使用公用的对象(静态成员,常量),但是不能乱用,因为静态成员和常量的生命周期是整个应用程序。
    3)在拼接大量字符串时StringBuilder。在使用注意,创建StringBuilder对象时要设置StringBuilder的初始大小如:
    StringBuilder sbHtml = new StringBuilder (size);
    4)使用object pool(对象池)

    7. 请简述ArrayList和List的主要区别?

    ArrayList是非泛型列表,存储数据时把所有的数据都当成object类型存储,存在装箱问题,取出来使用的时候存在拆箱问题,装箱拆箱会使性能变差,而且存在数据安全问题,但是优点在于可以让值类型和引用类型互相转换。

    List是泛型列表,在使用的时候才去定义数据类型,泛型避免了拆箱装箱的问题,存入读取速度较快,类型也更安全。

    8. Prefab的作用?

    Prefab我们通常称为预设体(或预制件,预制体)。

    作用: 在开发一些功能的时候, 将一些能够复用的对象制作成预设体(可以是模型,窗口,特效等),可以将预设体存放到 Resources 目录之下,通过动态加载的方式加载到场景中并进行实例化。

    优点:

    1、频繁创建物体时,使用prefab可以节省内存

    2、相同的物体进行同样的操作,可以使用prefab直接操作一次就好了

    3、使用prefab可以动态的加载已经设置好的物体

    9. 射线检测碰撞物的原理是?

    射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射

    10. 用代码实现第一人称跟随视角的移动

    //一:
    public class FirstCamera : MonoBehaviour {
        private float speed = 5;
        private Vector3 rot;
        
        void Start()
        {
            
        }
        void Update()
        {
            float mouseX = Input.GetAxis("MouseX")*speed;
            float mouseY = Input.GetAxis("MouseY")*speed;
            
            rot.x -= mouseY;
            rot.y += mouseX;
            rot.z = 0;
            
            transform.eulerAngles = rot;
        }
    }
    
    //二:
    public class FirstPersonCamera : MonoBehaviour {
       public float speed = 20;
        private Vector3 rot = Vector3.zero;
    	void Start () {
    }
    	void Update () {
        float mouseX = Input.GetAxis("Mouse X") * speed;
    float mouseY = Input.GetAxis("Mouse Y") * speed;
    rot.x -= mouseY;
    rot.y += mouseX;
    rot.z = 0;
    rot.x = Mathf.Clamp(rot.x, -20, 120);//旋转范围限制
    transform.eulerAngles = rot;
    }
    }
    

    11. 暂停游戏时time.scaletime等于0时,内置函数有什么变化?

    (1)物理模拟. FixedUpdate - 当Time.timeScale=0时,FixedUpdate 函数不会被执行。

    (2) Coroutines. - Time.timeScale=0 协程函数不会停止,但是会停止WaitForSeconds. 协成函数还是会每一帧都触发,但是WaitForSeconds使用的是当前的Time.deltaTime会变成0

    (3) Invoke 和 InvokeRepeating. -延迟一段时间后调用指定函数.

    (4)Particle System 粒子系统.

    (5)Animations. -动画. 如果我们使用的是Animator,可以设置动画忽略Time.timeScale带来的影响. 只需要把UpdateMode设置为UnScaled Time。

    12. 物体发生碰撞的必要条件

    (1)两个物体都必须带有碰撞器。

    (2)其中一个物体还必须带有刚体。

    (3)两个物体有相对的位移。

    但是有几点需要特别说明和补充的:

    (4)尽量让运动的物体带有刚体,否则在Scene视图下的手动拖拽可能产生不了碰撞,但在Game视图没有问题。

    (5)运动的物体带有刚体是因为运动时我们可以使用Rigidbody中的方法来让物体移动而不是transform.Translate方法(做物理游戏时是必须的)。

    更多相关内容
  • Unity3D教程:制作简单小汽车游戏 OnGUI的视觉化编辑 unity3d角色血条 Unity3D格斗游戏运动特效 MenuItem自定义菜单项 Unity3D脚本:导弹追踪代码 Unity3D教程:UI自动适合屏幕分辨率 中慢动作与加速动作的实现 ...
  • 雨宣大大的unity3d开发宝典,最新第二版
  • unity3D城市智能交通模拟系统源码,非常真实的物理交通仿真系统,模拟红绿灯、行人、汽车、AI检测、安全驾驶、刹车、超车、避让、人行道等等,有强大的编辑器工具包,可以创建非常复杂的道路,多种车辆模型、城市...
  • Unity3D特效包 100种unity特效 种类丰富 效果绚丽 直接使用
  • Unity3D插件】Unity3D各类教程汇总

    千次阅读 多人点赞 2021-07-06 17:01:48
    学习Unity3D最重要的两个工具:Unity3D和Visual Studio(Visual Studio Code也行) 1-1、Unity3D安装 Unity 安装个人免费版步骤详解(通过UnityHub安装unity,是比较流行的安装方式) https://blog.csdn.net/fi.

    推荐阅读

    一、工具篇

    工欲善其事,必先利其器

    学习Unity3D不从工具篇说起怎么能行?

    学习Unity3D最重要的两个工具:Unity3D和Visual Studio(Visual Studio Code也行)

    1-1、Unity3D安装

    Unity 安装个人免费版步骤详解(通过UnityHub安装unity,是比较流行的安装方式)
    https://blog.csdn.net/fightsyj/article/details/108988060

    Unity 3D下载安装教程(老版Unity安装与激活)
    http://c.biancheng.net/view/2637.html

    Unity3D 2018安装教程(2018版Unity安装教程)
    https://blog.csdn.net/weixin_42693097/article/details/92202186

    Unity零基础到入门 ☀️| Unity下载安装—使用UnityHub下载各个版本的Unity(收藏)
    https://blog.csdn.net/zhangay1998/article/details/113571681

    动手能力强的,直接进入Unity的官网https://unity.cn/releases下载安装即可。

    1-2、Visual Studio安装

    安装 Visual Studio(微软官方教程,墙裂推荐)
    https://docs.microsoft.com/zh-cn/visualstudio/install/install-visual-studio?view=vs-2019

    Visual Studio2019安装与使用步骤(介绍的很详细,每一步都有图片说明)
    https://www.cnblogs.com/vs2019anzhuang/p/13382995.html

    vs2017安装和使用教程(详细)
    https://blog.csdn.net/qq_36556893/article/details/79430133

    说明:在使用UnityHub安装Unity的时候,会有选择是否安装VS的选项,可以在这里进行勾选安装:
    在这里插入图片描述
    顺便说一下,VS不用激活,直接选择安装专业版即可。

    1-3、安卓环境安装

    Android 基础配置之 ✨ JDK、SDK和NDK的环境变量配置
    https://blog.csdn.net/zhangay1998/article/details/113243854

    Unity安装配置Android环境(超详细,推荐)
    https://blog.csdn.net/xiaochenXIHUA/article/details/87084043

    unity2019安卓环境配置(在配置环境中遇到的一些坑和解决方案)
    https://zhuanlan.zhihu.com/p/140871391

    unity3d配置Android环境
    https://gameinstitute.qq.com/community/detail/125591

    说明:如果不进行安卓开发的话,就不用配置安卓环境。

    同理下图中的,iOS、tvOS、Linux、Mac、WebGL用不上的就不用勾选。
    在这里插入图片描述

    二、基础篇

    万丈高楼平地起

    2-2、C# 编程语言基础

    C#基本语法|菜鸟教程(菜鸟网不仅讲解语法,最后还会有题目考核,比较适合初学)
    https://www.runoob.com/csharp/csharp-tutorial.html

    在这里插入图片描述

    C#基础语法 | C语言网(讲的很详细,还配有实例)
    http://c.biancheng.net/csharp/20/
    在这里插入图片描述

    看视频的话可以去慕课网(当然也可以B站找教程)
    https://www.imooc.com/learn/422

    在这里插入图片描述

    Siki学院C#编程基础(C#基础当然要有siki老师)
    http://www.sikiedu.com/course/83/tasks

    在这里插入图片描述

    说明:C#的基础还是很重要的,重中之重就是基础,然后C#发展这么多年,教程还是非常多的,无论是书本的,还是教程类,还是视频都非常的多。

    2-2、Unity3D基础

    看着手册学习?

    Unity官方用户手册
    https://docs.unity.cn/cn/current/Manual/index.html

    在这里插入图片描述

    Unity5中文脚本手册 网页版
    http://docs.manew.com/Script/index.htm

    在这里插入图片描述

    Unity5中文用户手册 网页版
    http://docs.manew.com/Manual/index.htm

    Unity5中文组件手册 网页版
    http://docs.manew.com/Components/index.htm

    Unity API常用方法和类详细讲解(基于Unity5.6)
    http://www.sikiedu.com/course/59

    Unity中文API参考手册
    https://www.cnblogs.com/zhangyukof/p/6835582.html

    说明:遇到不懂的API或者组件,查手册肯定是没错的。

    喜欢边做游戏边学习?

    Unity零基础入门 - 打砖块(Unity 2017)
    http://www.sikiedu.com/course/77

    宇宙最简单Unity2021零基础入门教程-RollABall
    http://www.sikiedu.com/course/862

    零基础入门Unity - 古迹探险(Unity2017)
    http://www.sikiedu.com/course/84
    在这里插入图片描述

    喜欢看视频学习?

    泰斗破坏神(完整版附带项目资源)
    https://www.bilibili.com/video/av76307523

    在这里插入图片描述

    说明:这一阶段,需要将Unity熟练使用,比如Unity引擎的界面布局和使用,Unity的组件化开发,网格、材质、贴图、刚体、碰撞体、摄像机、灯光,这些肯定都是要会的

    2-3、插件类教程

    2-3-1、iTween插件

    在这里插入图片描述

    【ITween】Unity3d iIween插件的研究
    https://itmonon.blog.csdn.net/article/details/78499606

    Unity3D关于iTween知识详解和接口总结
    https://blog.csdn.net/weixin_42513339/article/details/86590648

    Unity itween插件的使用法法整理
    https://blog.csdn.net/weixin_38109688/article/details/78435321

    2-3-2、DoTween插件

    在这里插入图片描述

    Unity插件之DoTween动画插件(适合初学者)
    https://blog.csdn.net/qq_35361471/article/details/79353071

    【DoTween】Unity DoTween里面的DoPath研究
    https://itmonon.blog.csdn.net/article/details/89393166

    【DoTweenPro】Unity3d DoTweenPro研究
    https://itmonon.blog.csdn.net/article/details/80367718

    【DoTween插件】Unity3d Dotween插件的简单介绍及示例代码
    https://itmonon.blog.csdn.net/article/details/78630827

    [Unity插件]DOTween基础
    https://blog.csdn.net/lyh916/article/details/45888117

    Unity 动画一:DOTween简单了解
    https://www.jianshu.com/p/19cbdc5a7314

    Unity插件之DOTween学习笔记
    http://www.cocoachina.com/cms/wap.php?action=article&id=34648

    2-3-3、RuntimeTransformGizmos插件

    在这里插入图片描述

    【Unity3D插件】RuntimeTransformGizmos插件使用教程
    https://itmonon.blog.csdn.net/article/details/86243905

    2-3-4、Inventory Pro插件

    在这里插入图片描述

    【Unity3D插件】Inventory Pro插件-游戏背包系统研究学习
    https://itmonon.blog.csdn.net/article/details/81708765

    Unity3D 装备系统学习Inventory Pro 2.1.2 总结
    https://www.cnblogs.com/IlidanStormRage/p/5739863.html

    Unity3D 通用提示窗口实现分析(Inventory Pro学习总结)
    https://www.cnblogs.com/IlidanStormRage/p/5888138.html

    2-3-5、AVPro Video插件

    在这里插入图片描述

    【Unity3D插件】Unity3d 视频播放插件AVPro Video的研究
    https://itmonon.blog.csdn.net/article/details/80696566

    关于Unity视频播放器插件 AVPro Video(一)平面UI视频播放
    https://www.cnblogs.com/mrmocha/p/8087389.html

    2-3-6、A*Pathfinding插件

    在这里插入图片描述

    【Astart寻路插件】Unity3d 寻路插件A*Pathfinding学习与研究
    https://itmonon.blog.csdn.net/article/details/80528457

    2-3-7、EasyAR插件


    【EasyAR】Unity3D EasyAR开发案例系列教程
    https://itmonon.blog.csdn.net/article/details/80583925

    2-3-8、KGFMapSystem插件

    在这里插入图片描述

    【KGFMapSystem插件】Unity3d KGFMapSystem插件使用
    https://itmonon.blog.csdn.net/article/details/78605552

    2-3-9、EasyTouch插件

    在这里插入图片描述

    【EasyTouch】Unity3d 插件研究之EasyTouch插件
    https://itmonon.blog.csdn.net/article/details/78426905

    【Unity3D插件】EasyTouch计算摇杆旋转角度以及摇杆八方向控制角色
    https://itmonon.blog.csdn.net/article/details/103952897

    2-3-10、Photon Unity Networking插件

    在这里插入图片描述

    【PUN】Photon Unity Networking(PUN)的简单使用
    https://itmonon.blog.csdn.net/article/details/78300308

    【Unity3D插件】Photon Unity Networking(PUN)使用教程
    https://blog.csdn.net/q764424567/article/details/105635556

    【Unity3D】 Photon多人游戏开发教程
    https://blog.csdn.net/q764424567/article/details/81172292

    Photon Unity Networking 案例(一)
    https://blog.csdn.net/qq_15267341/article/details/51883124

    Unity3D利用Photon实现实时联网对战(二)PUN SDK介绍
    https://blog.csdn.net/qq_27678295/article/details/76744825

    PUN介绍(干货)
    https://www.cnblogs.com/alps/p/6883120.html

    2-3-11、Dialogue System for Unity插件


    【Unity3D插件】Dialogue System for Unity对话系统插件使用教程
    https://itmonon.blog.csdn.net/article/details/105515409

    2-3-12、Alembic插件


    【Unity3D插件】Alembic插件使用教程,abc文件导入Unity
    https://itmonon.blog.csdn.net/article/details/105577002

    2-3-13、Exploder插件

    在这里插入图片描述

    【Unity3D插件】Exploder爆炸插件使用分享
    https://itmonon.blog.csdn.net/article/details/109674175

    2-3-14、XCharts插件

    在这里插入图片描述

    【Unity3D插件】图表插件XCharts分享
    https://itmonon.blog.csdn.net/article/details/109264499

    三、进阶篇

    3-1、C#编程语言高级特性

    3-1-1、集合

    C# 集合(Collection)
    https://www.runoob.com/csharp/csharp-collection.html

    C#集合类型大揭秘
    https://www.cnblogs.com/songwenjie/p/9185790.html

    C#常用集合的使用
    https://blog.csdn.net/ceclar123/article/details/8655853

    C#各类集合汇总
    https://www.jb51.net/article/190642.htm

    3-1-2、委托

    C#之委托(学习C#,还是得看博客园)
    https://www.cnblogs.com/jixiaosa/p/10687068.html

    C# 委托(Delegate) | 菜鸟教程
    https://www.runoob.com/csharp/csharp-delegate.html

    C#委托和事件的使用示例
    https://www.cnblogs.com/vickylinj/p/10922139.html

    Unity基础(26)-委托使用
    https://www.jianshu.com/p/53faa011bf0b

    说明:委托刚学习的时候,感觉这是啥东西,等到技术精进后,发现,哎呦,这么好用。

    3-1-3、反射机制

    C#反射(Reflection)详解(不得不说博客园中C#的大佬还是比较多的)
    https://www.cnblogs.com/vaevvaev/p/6995639.html

    C#的反射(一)
    https://www.cnblogs.com/dcz2015/p/11058193.html

    说明:反射提供描述程序集、模块和类型的对象(Type 类型)。 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型,然后调用其方法或访问器字段和属性。 如果代码中使用了特性,可以利用反射来访问它们。

    3-1-4、常见算法

    C# 算法大全(多种排序算法)
    https://www.cnblogs.com/xchit/archive/2010/11/26/1888879.html

    C# 冒泡排序算法(经典冒泡算法)
    https://www.cnblogs.com/qy1234/p/11768501.html

    快速排序算法C#实现(快排)
    https://www.cnblogs.com/homeforhzw/p/6272439.html

    C#常用的排序方法
    https://blog.csdn.net/qq_40985921/article/details/90727368

    说明:面试的时候,你不会几种算法怎么震慑面试官?

    3-1-5、数据结构

    C#常用数据结构:数组,ArrayList,List<>,链表,Queue,Stack,Dictionary
    https://blog.csdn.net/qiaoquan3/article/details/51380992

    C# 几种常见数据结构
    https://www.cnblogs.com/Dewumu/p/12067573.html

    【C#数据结构系列】
    https://www.cnblogs.com/SimplePoint/p/9270805.html

    说明:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。常见的数据结构有:队列、堆栈、树、数组、链表、图、散列表,是学习C#必须掌握的知识。

    3-1-6、递归

    C#递归
    https://www.cnblogs.com/fengjiulin110120/p/6681060.html

    C#递归
    http://c.biancheng.net/view/2823.html

    C# 递归算法
    https://www.cnblogs.com/zhaoyl9/p/10304620.html

    C#实现斐波那契数列整理
    https://www.jianshu.com/p/31b783e3eb46

    C# 斐波那契数列
    https://blog.csdn.net/jason_520/article/details/54619559

    说明:递归?我调我自己?

    3-1-7、正则表达式

    C# 正则表达式大全
    https://www.cnblogs.com/hehehehehe/p/6043710.html

    C# 正则表达式大全(代码篇)
    https://www.cnblogs.com/zhaoshujie/p/9718301.html

    C#正则表达式(Regex类)
    http://c.biancheng.net/view/2846.html

    【Unity3D日常开发】在Unity中使用正则表达式
    https://blog.csdn.net/q764424567/article/details/108072717

    3-2、Unity3D引擎进阶

    3-2-1、游戏组件及面向组件开发

    Unity面向组件开发
    https://blog.csdn.net/vrunsoftyanlz/article/details/78881752

    51CTO学堂Unity基础之面向组件
    https://edu.51cto.com/center/course/lesson/index?id=404156

    【U3D高级篇1】Unity3D常用组件及分析与3D协同函数与异步加载功能实战
    https://www.bilibili.com/video/BV1KV411x7xb?from=search&seid=12801288013505442109

    3-2-2、人机交互AI

    基于 Unity 引擎的游戏开发进阶之 敌人AI
    https://zhuanlan.zhihu.com/p/29195825

    Unity新手适合的简单AI
    https://blog.csdn.net/weixin_44302602/article/details/88615504

    自己进化的Unity人工智能(一)
    https://blog.csdn.net/m0_37283423/article/details/78333623

    Unity AI教程 之 简易的视觉感知系统
    https://jingyan.baidu.com/article/7f766dafff6e374101e1d0e6.html

    Unity3D研究院之游戏开发中的人工智能AI(三十八)
    https://www.baidu.com/link?url=HgDbAtE-bHDuHFJv-R08KM-BLu1SKUo8j1kkrvEVoA2Z_J8joikQooviAd024gUTs4Pou2AjctJsXz60-7Ezmq&wd=&eqid=e61f647b0011fa9f0000000260e50821

    3-2-3、物理碰撞

    Unity3D学习笔记(四):物理系统碰撞和预制体
    https://www.cnblogs.com/vuciao/p/10362777.html

    unity 物理碰撞系统
    https://blog.csdn.net/KindSuper_liu/article/details/102776313

    【Unity】物理碰撞实验
    https://www.cnblogs.com/javawebsoa/archive/2013/05/18/3085818.html

    3-2-3、射线使用

    unity射线系统
    https://blog.csdn.net/qq_34841823/article/details/106253139

    Unity-物理系统-射线
    https://blog.csdn.net/HC9861/article/details/79242327

    Unity 物理系统 – 射线简介
    https://czhenya.blog.csdn.net/article/details/77245570

    【Unity3D】Unity3D 鼠标射线点击,UI出现在鼠标点击的位置
    https://blog.csdn.net/q764424567/article/details/80407920

    3-3、UGUI

    3-3-1、UI基本控件

    Unity 之 UGUI控件详解学习目录
    https://czhenya.blog.csdn.net/article/details/116736265

    Unity UGUI专栏
    https://blog.csdn.net/u014361280/category_9622453.html

    Unity UGUI 完整系列教程-Chinar中文图解(排版舒服、图片清晰,墙裂推荐)
    https://blog.csdn.net/ChinarCSDN/article/details/90313617

    3-3-2、UI设计模式

    Unity 3D网络游戏UI设计
    https://edu.51cto.com/course/3924.html

    3-4、持久化数据操作

    3-4-1、数据库入门

    SQL 基础知识梳理(一)- 数据库与 SQL
    https://www.cnblogs.com/liqingwen/p/5902856.html

    SQL数据库快速入门基础
    https://blog.csdn.net/huanghi11/article/details/43643831

    SQL 教程
    https://www.runoob.com/sql/sql-tutorial.html

    零基础入门MySQL(数据库)
    https://zhuanlan.zhihu.com/p/38932334

    3-4-2、SQL语法

    数据库基础(常用SQL语句)
    https://blog.csdn.net/qq_41751237/article/details/102303643

    3-4-3、数据储存持久化

    Unity3D 数据持久化技术(一)
    https://zhuanlan.zhihu.com/p/38090723

    Unity3D 本地数据持久化记录存储
    https://blog.csdn.net/piai9568/article/details/98885750

    [Unity3D]Unity3D游戏开发之数据持久化PlayerPrefs的使用
    https://blog.csdn.net/qinyuanpei/article/details/24195977

    3-4-4、读取文档JSON、XML等

    【Unity3D日常】Unity写Json数据,以及在Unity读取、解析Json数据
    https://blog.csdn.net/q764424567/article/details/101448124

    【Unity3D日常】使用Unity3D读取Json、XML、Excel文件
    https://blog.csdn.net/q764424567/article/details/105976564

    Unity3D移动平台动态读取外部文件全解析
    https://www.cnblogs.com/murongxiaopifu/p/4199541.html

    unity 文件读取的几种方式
    https://zhuanlan.zhihu.com/p/52800746

    3-5、网络操作

    3-5-1、Socket操作方法

    Unity3D —— Socket通信(C#)
    https://blog.csdn.net/linshuhe1/article/details/51386559

    unity3D中使用Socket进行数据通信(一)
    https://blog.csdn.net/qq_38112703/article/details/82624469

    Unity网络编程-Socket
    https://zhuanlan.zhihu.com/p/144905503

    3-5-2、HTTP协议

    UnityWebRequest的初步使用及常用方法解析
    https://blog.csdn.net/qwe25878/article/details/85051911

    UnityWebRequest使用总结
    https://blog.csdn.net/u013108312/article/details/105038299/

    3-5-3、网络协议原理

    C#网络编程系列一:网络协议简介
    https://blog.csdn.net/wuwangwo_912127310/article/details/8514316

    C#版清晰易懂TCP通信原理解析(附DEMO)
    https://www.cnblogs.com/coky/p/6703883.html

    C#基础知识之理解HTTP协议
    https://www.cnblogs.com/qtiger/p/11177377.html

    3-6、算法

    编程内功修炼-算法(C#编程第五季)(收费,看需食用)
    http://www.sikiedu.com/course/44/tasks
    在这里插入图片描述

    Unity算法
    https://www.cnblogs.com/lyh916/category/1211450.html

    unity的一些算法(持续更新)
    https://www.cnblogs.com/lingLuoChengMi/p/11983021.html

    A*算法理解(unity C#)
    https://blog.csdn.net/codingriver/article/details/83186067

    3-7、项目优化

    Unity游戏项目性能优化总结 (难度3 推荐4)
    https://www.cnblogs.com/4unity3d/p/6848418.html

    Unity游戏开发性能优化篇
    https://zhuanlan.zhihu.com/p/95065378

    使用Unity开发安卓游戏怎么进行性能优化?
    https://www.gameres.com/475425.html

    Unity移动端性能优化
    https://www.taikr.com/article/3857

    3-8、游戏框架

    MVC在代码控制中的应用
    http://www.manew.com/thread-50564-1-1.html

    泰课网的PuseMVC
    https://www.taikr.com/course/280

    有限状态机总结
    http://www.manew.com/forum-47-231-1.html

    万能游戏框架
    https://edu.manew.com/course/151/learn

    unity StrangeIoc框架总结
    https://www.jianshu.com/p/f59d85c88405

    3-9、图形学

    3-9-1、Shader学习

    Unity3D中人物角色被攻击变色,死亡渐隐消失,墙后显示的Shader
    https://www.jianshu.com/p/f42cf70a1c01

    Unity Shader模型从上到下消失效果实现
    https://gameinstitute.qq.com/community/detail/125814

    Unity中利用材质自发光实现物体闪烁效果
    https://blog.csdn.net/qq_21397217/article/details/80967432

    零基础入门Unity Shader(一)
    https://zhuanlan.zhihu.com/p/46745694

    猫都能学会的Unity3D Shader入门指南(一)
    https://onevcat.com/2013/07/shader-tutorial-1/

    unity shader入门指南与总结
    https://www.jianshu.com/p/4e80c2897e7f

    Unity Shader 之 uv动画
    https://www.cnblogs.com/yoyo-sincerely/p/7941046.html

    Unity Shader 之 简单滚动(uv)动画的效果实现
    https://blog.csdn.net/u014361280/article/details/103846904

    【Unity Shader】(十) ------ UV动画原理及简易实现
    https://www.cnblogs.com/BFXYMY/p/10022826.html

    Unity顶点着色器和片段着色器
    https://blog.csdn.net/qq_25614787/article/details/72803038

    Unity_Shader着色器(顶点片段着色器)
    https://www.jianshu.com/p/68c8f7aff90d/

    3-9-2、图形学

    Unity渲染流程(渲染管线)(渲染流水线)
    https://blog.csdn.net/weixin_44739495/article/details/116406208

    详解Unity3D Shader开发之渲染管线
    https://blog.csdn.net/jxw167/article/details/54695181

    漫谈Unity渲染管线的流程化设计
    https://zhuanlan.zhihu.com/p/45782414

    3-10、Lua与热更

    Unity3D 预备知识:C#与Lua相互调用
    https://www.cnblogs.com/zhuweisky/p/6705095.html

    Unity3D热更新基础:C#与Lua相互调用
    https://blog.csdn.net/zhuweisky/article/details/70161243

    C#与lua相互调用
    https://www.cnblogs.com/huangzongyi/p/7777635.html

    Unity热更方案 ILRuntime 和 toLua的比较
    https://blog.csdn.net/cyf649669121/article/details/87099923

    如何评价腾讯在Unity下的xLua(开源)热更方案?
    https://www.zhihu.com/question/54344452/answer/139413144

    Unity3D游戏开发之Lua
    https://www.cnblogs.com/slysky/p/7919114.html

    用Unity+Lua开发游戏,有什么好的办法进行性能检测?
    https://www.zhihu.com/question/307064711/answer/570257565

    Unity3D热更新之LuaFramework篇[08]–热更新原理及热更服务器搭建
    https://www.cnblogs.com/imteach/p/11257275.html

    Unity3D热更新LuaFramework入门实战(1)——代码热更新
    https://zhuanlan.zhihu.com/p/21386682

    Unity ToLua热更框架使用教程(1)
    https://blog.csdn.net/weixin_44003966/article/details/114906218

    四、后言

    网络发展比较快,网站更新也比较频繁

    如果出现链接失效的情况及时跟博主联系,博主会在第一时间去更新最新的链接。

    有什么需要补充的都可以留言,或者直接私信博主。

    展开全文
  • UNITY3D 动作rpg游戏源码UNITY3D 动作rpg游戏源码UNITY3D 动作rpg游戏源码UNITY3D 动作rpg游戏源码UNITY3D 动作rpg游戏源码
  • Unity3D应用案例系列】Unity3D中实现《3D照片墙》

    千次阅读 多人点赞 2022-03-09 08:52:02
    Unity3D不仅仅可以开发游戏,还有非常多的开发方向,秉承着兴趣为先,将可以使用Unity制作的各种应用案例,分享如何进行开发,如何实现,希望大家可以在感兴趣的地方,学习到自己想要学习的东西。 今天就来实现一.

    推荐阅读

    大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

    一、前言

    首先,介绍一波我这个专栏:Unity3D之Unity应用案例
    在这里插入图片描述
    Unity3D不仅仅可以开发游戏,还有非常多的开发方向,秉承着兴趣为先,将可以使用Unity制作的各种应用案例,分享如何进行开发,如何实现,希望大家可以在感兴趣的地方,学习到自己想要学习的东西。

    今天就来实现一个3D照片墙的效果。

    我对于这个项目的构思就是照片是3D的,可以滑动,然后使用DoTween插件去做动画平滑移动。

    OK,那就正式开始。

    先看一下效果图:

    二、正式开发

    新建项目,我使用的版本是Unity3D 2019.4.7f1,模板选用3D:
    在这里插入图片描述
    (1)导入DoTween插件

    (2)新建Canvas,设置参数:
    在这里插入图片描述
    设置Canvas的坐标到0,0,0:
    在这里插入图片描述

    (3)在Canvas新建N个Image:
    在这里插入图片描述
    (4)设置Main Camera的属性:
    在这里插入图片描述
    设置完的样子:
    在这里插入图片描述
    反正就是让Image在屏幕中间就可以了。

    (5)新建脚本UIRotate.cs,双击打开脚本,编辑代码:

    using DG.Tweening;
    using UnityEngine;
    using UnityEngine.EventSystems;
    
    public class UIRotate : MonoBehaviour
    {
        private int halfSize;
        private GameObject[] gameObjects;
        /// <summary>
        /// 圆半径
        /// </summary>
        private int r = 300;
        /// <summary>
        /// 相间角度
        /// </summary>
        private int angle;
    
        private void Start()
        {
            //初始化数组
            var childCount = transform.childCount;
            //计算出中点
            halfSize = (childCount - 1) / 2;
            //求出圆内角度
            angle = 360 / childCount;
            //初始
            gameObjects = new GameObject[childCount];
            for (var i = 0; i < childCount; i++)
            {
                gameObjects[i] = transform.GetChild(i).gameObject;
                SetPosition(i);
                SetDeepin(i);
            }
        }
    
        /// <summary>
        /// 设置物体位置
        /// </summary>
        private void SetPosition(int index)
        {
            float x = 0;
            float z = 0;
            if (index < halfSize)
            {
                int id = halfSize - index;
                x = r * Mathf.Sin(angle * id);
                z = -r * Mathf.Cos(angle * id);
            }
            else if (index > halfSize)
            {
                int id = index - halfSize;
                x = -r * Mathf.Sin(angle * id);
                z = -r * Mathf.Cos(angle * id);
            }
            else
            {
                x = 0;
                z = -r;
            }
            Tweener tweener = gameObjects[index].GetComponent<RectTransform>().DOLocalMove(new Vector3(x, 0, z), 1);
        }
    
        private void SetDeepin(int index)
        {
            //计算图片深度也就是z轴的距离,离摄像机的远近
            int deepin = 0;
            if (index < halfSize)
            {
                deepin = index;
            }
            else if (index > halfSize)
            {
                deepin = gameObjects.Length - (1 + index);
            }
            else
            {
                deepin = halfSize;
            }
            gameObjects[index].GetComponent<RectTransform>().SetSiblingIndex(deepin);
        }
    }
    

    (6)将UIRotate.cs脚本附到Canvas对象上,运行程序:
    在这里插入图片描述
    (7)添加左右拖动代码,继续修改UIRotate.cs代码:

    using DG.Tweening;
    using UnityEngine;
    using UnityEngine.EventSystems;
    
    public class UIRotate : MonoBehaviour
    {
        private int halfSize;
        private GameObject[] gameObjects;
        /// <summary>
        /// 圆半径
        /// </summary>
        private int r = 300;
        /// <summary>
        /// 相间角度
        /// </summary>
        private int angle;
    
        private void Start()
        {
            //初始化数组
            var childCount = transform.childCount;
            //计算出中点
            halfSize = (childCount - 1) / 2;
            //求出圆内角度
            angle = 360 / childCount;
            //初始
            gameObjects = new GameObject[childCount];
            for (var i = 0; i < childCount; i++)
            {
                gameObjects[i] = transform.GetChild(i).gameObject;
                SetPosition(i);
                SetDeepin(i);
            }
        }
    
        /// <summary>
        /// 设置物体位置
        /// </summary>
        private void SetPosition(int index)
        {
            float x = 0;
            float z = 0;
            if (index < halfSize)
            {
                int id = halfSize - index;
                x = r * Mathf.Sin(angle * id);
                z = -r * Mathf.Cos(angle * id);
            }
            else if (index > halfSize)
            {
                int id = index - halfSize;
                x = -r * Mathf.Sin(angle * id);
                z = -r * Mathf.Cos(angle * id);
            }
            else
            {
                x = 0;
                z = -r;
            }
            Tweener tweener = gameObjects[index].GetComponent<RectTransform>().DOLocalMove(new Vector3(x, 0, z), 1);
        }
    
        private void SetDeepin(int index)
        {
            //计算图片深度也就是z轴的距离,离摄像机的远近
            int deepin = 0;
            if (index < halfSize)
            {
                deepin = index;
            }
            else if (index > halfSize)
            {
                deepin = gameObjects.Length - (1 + index);
            }
            else
            {
                deepin = halfSize;
            }
            gameObjects[index].GetComponent<RectTransform>().SetSiblingIndex(deepin);
        }
    
        /// <summary>
        /// 向左滑动
        /// </summary>
        public void OnLeftDrag()
        {
            var length = gameObjects.Length;
            for (var i = 0; i < length; i++)
            {
                var temp = gameObjects[i];
                gameObjects[i] = gameObjects[length - 1];
                gameObjects[length - 1] = temp;
            }
            for (var i = 0; i < length; i++)
            {
                SetPosition(i);
                SetDeepin(i);
            }
        }
    
        /// <summary>
        /// 向右滑动
        /// </summary>
        public void OnRightDrag()
        {
            var length = gameObjects.Length;
            for (var i = 0; i < length-1; i++)
            {
                var temp = gameObjects[i];
                gameObjects[i] = gameObjects[i+1];
                gameObjects[i+1] = temp;
            }
            for (var i = 0; i < length; i++)
            {
                SetPosition(i);
                SetDeepin(i);
            }
        }
    
        private Vector2 touchFirst = Vector2.zero;//手指开始按下的位置
        private Vector2 touchSecond = Vector2.zero;//手指拖动的位置
    
        void OnGUI()
        {
            if (Event.current.type == EventType.MouseDown)
            {
                touchFirst = Event.current.mousePosition;//记录开始按下的位置
            }
            if (Event.current.type == EventType.MouseUp)
            {
                touchSecond = Event.current.mousePosition;//记录拖动的位置
                if (touchSecond.x < touchFirst.x)
                {
                    OnLeftDrag();//向左滑动
                }
    
                if (touchSecond.x > touchFirst.x)
                {
                    OnRightDrag();//向右滑动
                }
                touchFirst = touchSecond;
            }
        }
    }
    

    运行程序:
    在这里插入图片描述
    (8)导入照片最后试一下:

    在这里插入图片描述

    三、总结

    在Unity3D中实现了3D照片墙,虽然效果出来了,但是想要实现更加美观的效果还需要一些努力。

    源代码就放在CSDN吧:
    https://download.csdn.net/download/q764424567/84045547

    你的点赞就是对博主的支持,有问题记得留言:
    在这里插入图片描述

    博主还有跟多宝藏文章等待你的发掘哦:

    专栏方向简介
    Unity3D开发小游戏小游戏开发教程分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。
    Unity3D从入门到进阶入门从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。
    Unity3D之UGUIUGUIUnity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。
    Unity3D之读取数据文件读取使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。
    Unity3D之数据集合数据集合数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。
    Unity3D之VR/AR(虚拟仿真)开发虚拟仿真总结博主工作常见的虚拟仿真需求进行案例讲解。
    Unity3D之插件插件主要分享在Unity开发中用到的一些插件使用方法,插件介绍等
    Unity3D之日常开发日常记录主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等
    Unity3D之日常BUG日常记录记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。
    展开全文
  • unity 3d 资源解包

    2014-12-15 11:16:15
    命令行工具,可以解包unity的 .assets 和 .unity3d 文件,把里面的模型、音效、贴图都提取出来。 使用前,请确保按照 JDK ,并配置好相关环境。亲测可用!! 具体用法请看 README.md 文件。 示例,以下命令可以...
  • Unity、3D、特效、刀光、卡通、RPG、VFX、战斗、战斗光影、Unity3D、动作特效、Unity3DUnity3DUnity3DUnity3DUnity3DUnity3DUnity3DUnity3DUnity3DUnity3DUnity3DUnity3DUnity3DUnity3D、...
  • WinForm嵌入Unity3D并实现交互

    热门讨论 2015-11-17 17:31:35
    1.Unity按键事件的实现 2.WinForm内嵌Unity3D 3.axUnityWebPlayer的Src的动态设置,右键禁用,隐藏图标实现进度条加载
  • Unity3D人物角色模型,带有5套动作,适合初学者用来学习动画系统的素材
  • 2018年5月版本,适合Unity2017~2018,NGUI插件2018年5月版本,适合Unity2017~2018,NGUI插件
  • Unity3D鼠标点击物体高亮显示

    热门讨论 2016-08-26 14:52:09
    基于Highlighting System插件的鼠标选中物体时,使物体高亮显示。在这个插件的基础上,改动部分没必要的功能,使物体可以高亮显示。直接调用该脚本里的方法就可实现物体高亮显示。
  • Unity3D的物理系统实战入门

    千人学习 2018-04-02 22:28:52
    本课程深入浅出的介绍Unity3D物理引擎系统的概念,向初学者展示Unity3D物理引擎常见的编程思路和使用方式,与此同时,引领学习者逐步完成一款经典的关卡类物理引擎小游戏《Marble Drop》,详细展示如何根据项目的...
  • unity3d介绍与入门(最新官方ppt)

    热门讨论 2014-07-26 19:38:42
     Unity,也称Unity3D,是近几年非常流行的一个3D游戏开发引擎,Unity全球开发者超过300万,1/4在中国,超过5000家游戏公司和工作室在使用Unity开发。它的特点是跨平台能力强,支持PC、Mac、Linux、网页、iOS、...
  • Unity3D简介

    万次阅读 多人点赞 2020-11-07 16:47:33
    本章首先介绍 Unity 3D 的特点、发展历程、应用领域,然后介绍 Unity 3D 下载及安装方法,最后通过实例讲解将 Unity 3D 开发的游戏发布于多个平台的方法。 第一章 Unity 3D是什么?Unity 3D简介 Unit.

    unity简介

    本章首先介绍 Unity 3D 的特点、发展历程,然后介绍 Unity 3D 下载及安装方法,最后通过讲解将 Unity 3D 开发的游戏发布于多个平台的方法(PC端举例)。

    第一章 Unity 3D是什么?Unity 3D简介


    Unity 3D 也称 Unity,是由 Unity Technologies 公司开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具。

    Unity 3D 可以运行在 Windows 和MacOS X 下,可发布游戏至 Windows、Mac、Wii、iPhone、WebGL(需要 HTML5)、Windows Phone 8 和 Android 平台。也可以利用 Unity Web Player 插件发布网页游戏,支持 Mac 和 Windows 平台的网页浏览,是一个全面整合的专业游戏引擎。

    业界现有的商用游戏引擎和免费游戏引擎数不胜数,其中最具代表性的商用游戏引擎有 UnReal、CryENGINE、Havok Physics、Game Bryo、Source Engine 等,但是这些游戏引擎价格昂贵,使得游戏开发成本大大增加。而 Unity 公司提出了“大众游戏开发”(Democratizing Development)的口号,提供了任何人都可以轻松开发的优秀游戏引擎,使开发人员不再顾虑价格。

    Unity 的中文意思为“团结”。Unity 的核心含义是想告诉大家,游戏开发需要在团队合作基础上相互配合完成。

    时至今日,游戏市场上出现了众多种类的游戏,它们是由不同的游戏引擎开发的,Unity 3D 以其强大的跨平台特性与绚丽的 3D 渲染效果而闻名于世,现在很多商业游戏及虚拟现实产品都采用 Unity 3D 引擎来开发。

    Unity 3D 的特色:

    Unity 3D 游戏开发引擎目前之所以炙手可热,与其完善的技术以及丰富的个性化功能密不可分。

    Unity 3D 游戏开发引擎易于上手,降低了对游戏开发人员的要求。下面对 Unity 3D 游戏开发引擎的特色进行阐述。
    1)跨平台
    游戏开发者可以通过不同的平台进行开发。游戏制作完成后,游戏无需任何修改即可直接一键发布到常用的主流平台上。

    Unity 3D 游戏可发布的平台包括 Windows、Linux、MacOS X、iOS、Android、Xbox360、PS3 以及 Web 等。跨平台开发可以为游戏开发者节省大量时间。

    以往游戏开发中,开发者要考虑平台之间的差异,比如屏幕尺寸、操作方式、硬件条件等,这样会直接影响到开发进度,给开发者造成巨大的麻烦,Unity 3D 几乎为开发者完美地解决了这一难题,将大幅度减少移植过程中不必要的麻烦。
    2) 综合编辑
    Unity 3D 的用户界面具备视觉化编辑、详细的属性编辑器和动态游戏预览特性。Unity 3D 创新的可视化模式让游戏开发者能够轻松构建互动体验,当游戏运行时可以实时修改参数值,方便开发,为游戏开发节省大量时间。
    3) 资源导入
    项目可以自动导入资源,并根据资源的改动自动更新。Unity 3D 支持几乎所有主流的三维格式,如 3ds Max、Maya、Blender 等,贴图材质自动转换为 U3D 格式,并能和大部分相关应用程序协调工作。
    4) 一键部署
    Unity 3D 只需一键即可完成作品的多平台开发和部署,让开发者的作品在多平台呈现。
    5) 脚本语言
    Unity 3D 集成了 MonoDeveloper 编译平台,支持 C#、JavaScript 和 Boo 3 种脚本语言,其中 C# 和 JavaScript 是在游戏开发中最常用的脚本语言。
    6) 联网
    Unity 3D 支持从单机应用到大型多人联网游戏的开发。
    7) 着色器
    Unity 3D 着色器系统整合了易用性、灵活性、高性能。
    8) 地形编辑器
    Unity 3D 内置强大的地形编辑系统,该系统可使游戏开发者实现游戏中任何复杂的地形,支持地形创建和树木与植被贴片,支持自动的地形 LOD、水面特效,尤其是低端硬件亦可流畅运行广阔茂盛的植被景观,能够方便地创建游戏场景中所用到的各种地形。
    9) 物理特效
    物理引擎是模拟牛顿力学模型的计算机程序,其中使用了质量、速度、摩擦力和空气阻力等变量。Unity 3D 内置 NVIDIA 的 PhysX 物理引擎,游戏开发者可以用高效、逼真、生动的方式复原和模拟真实世界中的物理效果,例如碰撞检测、弹簧效果、布料效果、重力效果等。
    10) 光影
    Unity 3D 提供了具有柔和阴影以及高度完善的烘焙效果的光影渲染系统。

    Unity 3D 的发展:

    2004 年,Unity 3D 诞生于丹麦的阿姆斯特丹。

    2005 年,发布了 Unity 1.0 版本,此版本只能应用于 Mac 平台,主要针对 Web 项目和 VR(虚拟现实)的开发。

    2008 年,推出 Windows 版本,并开始支持 iOS 和 Wii,从众多的游戏引擎中脱颖而出。

    2009 年,荣登 2009 年游戏引擎的前五,此时 Unity 的注册人数已经达到了 3.5 万。

    2010 年,Unity 3D 开始支持 Android,继续扩大影响力。

    2011 年,开始支持 PS3 和 XBox360,此时全平台的构建完成。

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

    2013 年,Unity 3D 引擎覆盖了越来越多的国家,全球用户已经超过 150 万,Unity 4.0 引擎已经能够支持在包括 MacOS X、Android、iOS、Windows 等在内的 10 个平台上发布游戏。同时,Unity Technologies 公司 CEO David Helgason 发布消息称,游戏引擎 Unity 3D 今后将不再支持 Flash 平台,且不再销售针对 Flash 开发者的软件授权。

    2014 年,发布 Unity 4.6 版本,更新了屏幕自动旋转等功能。

    2016 年,发布 Unity 5.4 版本,专注于新的视觉功能,为开发人员提供了最新的理想实验和原型功能模式,极大地提高了其在 VR 画面展现上的性能。

    第二章 Unity 3D下载安装教程

    关于Unity的下载安装已经有很多人做过教程,我在这里就不详细阐述了,推荐几个较为详细的下载安装教程:

    unity下载安装教程链接1
    unity下载安装教程链接2


    博主强烈推荐第一个,因为Unity3D需要配合编辑器使用,博主用到是VS2019,大家可以参考。

    第三章 Unity 3D创建项目,并添加游戏物体和游戏组件

    Unity 3D 创建游戏的理念可以简单地理解为:一款完整的游戏就是一个项目(project),游戏中不同的关卡对应的是项目下的场景(scene)。一款游戏可以包含若干个关卡(场景),因此一个项目下面可以保存多个场景。

    创建新项目:

    启动 Unity Hub后,在菜单栏中选择项目,然后选择新建项目(前提是至少安装了一个版本的unity),创建一个新的工程,可以设置工程的目录,然后修改文件名称和文件路径,在 Project name 下(项目名称)中输入项目名称,然后在 Location(项目路径)下选择项目保存路径并且选择 2D 或者 3D 工程的默认配置,如下图所示。


    在这里插入图片描述

    创建成功后的界面应该如下(布局可能与我的有所不同,不过没有影响,后续教大家自行调整):


    在这里插入图片描述

    在我们创建好项目之后unity会默认为我们新建一个场景,我们也可以再新建一个场景,新建场景的方法是:选择 Unity 3D 软件界面上的菜单 File(文件)→New Scene(新建场景)命令即可新建场景,如下图所示。


    在这里插入图片描述

    创建游戏物体
    选择 GameObject(游戏对象)→3D Object(三维物体)→Plane(平面)命令创建一个平面用于放置物体,如下图所示。


    在这里插入图片描述

    选择 GameObject(游戏对象)→3D Object(三维物体)→Cube(立方体)命令创建一个立方体,如下图所示。


    在这里插入图片描述


    最后使用场景控件调整物体位置,从而完成游戏物体的基本创建,如下图所示。

    在这里插入图片描述


    添加游戏物体组件
    游戏物体组件可以通过 Inspector(属性编辑器)显示,这些组件还可以附加很多组件。例如要为 Cube(立方体)组件添加 Rigidbody(刚体)组件,选中 Cube,执行 Component(组件)→Physics(物理)→Rigidbody(刚体)菜单命令,为游戏物体 Cube 添加 Rigidbody 组件,如下图所示。


    在这里插入图片描述

    Rigidbody 添加完成后,在 Scene(场景)视图中单击 Cube 并将其拖曳到平面上方,然后单击 Play 按钮进行测试,可以发现 Cube 会做自由落体运动,与地面发生相撞,最后停在地面,如下图所示。


    在这里插入图片描述


    项目保存 执行 File(文件)→Save Scene(保存场景)菜单命令或按快捷键 Ctrl+S,如下图所示。

    在这里插入图片描述


    在弹出的保存场景对话框中输入要保存的文件名,如下图所示。此时在 Project(项目)面板中能够找到刚刚保存的场景。

    在这里插入图片描述

    第四章 Unity 3D游戏发布到PC平台

    近年来,随着手机、平板电脑等多种移动设备的兴起,游戏平台不再局限于台式计算机和笔记本电脑。为了使游戏开发人员开发的游戏作品成功地运行在多种平台上,现在流行的游戏开发引擎都具有多平台发布功能。

    Unity 3D 作为一款跨平台的游戏开发工具,从一开始就被设计成便于使用的产品。随着网络技术的迅速发展,Unity 3D 功能也不断增强,它不仅支持 PC,同时也支持 Android、Web、PS3、XBox、iOS 等多个应用平台。

    虽然 Unity 3D 能够支持很多发布平台,但是并不代表可以毫无限制地发布,例如:
    XBox360、PS3 和 Wii 这3个发布平台,必须购买这 3 个游戏主机厂商的开发者 License,才能将 Unity 3D 开发的游戏发布到相应的运行平台。
    而要想将 Unity 3D 开发的游戏成功地发布并运行于 iOS 终端,还需要安装相应的插件,并且拥有 Apple 公司的开发者账号。

    利用 Unity 3D 开发游戏,在需要发布游戏时,执行 File→Build Settings 菜单命令,如下图所示。

    在这里插入图片描述

    在 Platform 列表框中选择 PC,Mac&Linux Standalone 选项,在右侧的 Target Platform 下拉列表中可以选择 Windows、MacOS X、Linux 选项,在右侧的 Architecture 下拉列表中可以选择 x86 或 x86_64 选项,如下图所示。

    在这里插入图片描述


    单击左下角的 Player Settings 按钮后,便可以在右侧的 Inspector 面板中看到 PC,Mac&Linux 的相关设定,如下图所示。在 PlayerSettings 界面中,Company Name 和 Product Name 用于设置相关的名称,而Default Icon 用于设定程序在平台上显示的图标。

    在这里插入图片描述

    在 PlayerSettings 界面的下部有 4 个选项设置:Resolution and Presentation、Icon、Splash Image 和 Other Settings。下图是 Resolution and Presentation 的参数设置内容,参数如下表所示。

    在这里插入图片描述

    参 数功 能
    Default Is Full Screen若选中此复选框,则游戏启动时会以全屏幕显示
    Default Is Native Resolution默认本地分辨率
    Run In Background当暂时跳出游戏转到其他窗口时,显示游戏是否要继续进行
    Supported Aspect Ratios显示器能支持的画面比例,包括4 : 3、5 : 4、16 : 10,16 : 9和Others

    当完成上述设置或者全部采用默认值后,便可回到 Build Settings 对话框,单击右下角的 Build 按钮,选择文件路径用于存放可执行文件。

    在这里插入图片描述


    点击选择文件夹后便会在相应的文件夹生成一个.exe文件,即发布成功。


    这篇文章借鉴了一些其他文章,如有侵权,请联系我删除,谢谢!
    展开全文
  • Unity3D的UI系统(UGUI)初级入门

    千人学习 2018-03-21 10:22:35
    本课程主要介绍Unity3d的UI系统(UGUI),先对UGUI做一个总体概述,之后对每个UI控件逐一进行详细讲述,内容包括控件的作用、设置方法、使用场景及属性细节,帮助大家熟练使用UGUI设计游戏的交互界面。
  • Unity3D视频播放AVPro Video插件

    热门讨论 2016-08-02 12:15:01
    AVPro Video插件,此插件支持平台:windows,IOS,android,tvOS等。DEMO自带全景视频播放示例,本插件可以和UGUI/NGUI完美结合使用!
  • unity3d鱼类游动AI demo

    2017-10-26 14:30:07
    unity3d鱼类游动AI demo 适合用于学习开发UNITY3D 技术
  • Unity3d-SkyBox-35个天空盒(含预览图),绝对精品,欢迎下载
  • Unity 3D 游戏引擎

    千次阅读 2021-05-08 13:14:02
    Unity 3D也称 Unity,是由 Unity Technologies 公司开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具。Unity 3D 可以运行在 Windows 和MacOS X 下,...
  • unity3d.com国际版下载

    千次阅读 2021-02-28 12:57:50
    GIT 仓库 ...GitHub ...unity3d.com/download 404 Unity版本列表.定期从官网拉取 2020 2019 2018 2017 5.x 4.x 3.x Python Library pip install bs4 pip install lxml Unity 2020.x Unity Versio
  • Learning C# Programming with Unity 3D 2014.pdf

    热门讨论 2014-10-20 21:39:11
    Organized into easy-to-follow lessons, the book covers how C# is used to make a game in Unity3D. After reading this book, you will be armed with the knowledge required to feel confident in learning ...
  • Unity3d中使用HttpUtility

    热门讨论 2014-07-04 09:27:10
    1、Unity3D引用System.Web.DLL打包发布的问题及解决 2、Unity3d中使用HttpUtility,如果直接在plugins中引入 System.Web.DLL的话,在对Unity3d项目打包的时候会报错,在U3D环境中,编译运行一切正常,但在打包发布...
  • unity3d材质球大全合集

    2018-01-29 11:20:53
    数百种u3d材质球,包括金属,玻璃,陶瓷,塑料等,内含实例
  • Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 你的点赞就是对博主的支持,有问题记得留言: 一、前言 ...
  • 文章目录Vue + webGL + unity3D1. 什么是webGL?1.1 兼容性2. 什么是unity3D?2.1 unity3D 的发展史3. 如何在vue中使用unity3D和webGL?3.1 新建一个挂载unity3d加载器的vue组件3.2 使用新建的vue-unity-webgl组件4. ...
  • Unity3D安装

    千次阅读 2022-01-19 12:26:01
    1、下载安装Unity Hub https://unity.cn/releases#undefined 2、安装好Unity Hub后在打开的网页选择需要的版本选择从hub安装即可 3、选择对应的功能项后点击安装 4、等待安装完成即可使用
  • Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 今天分享一下从搭建web服务器,到向服务器发送...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 138,670
精华内容 55,468
关键字:

unity3d

友情链接: verilog_code.zip