Unity3D知识点精华浓缩

这篇具有很好参考价值的文章主要介绍了Unity3D知识点精华浓缩。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、细节
1、类与组件的关系
2、Time.deltaTime的含义
3、怎么表示一帧的移动距离
4、Update和LateUpdate的区别和适用场景
5、找游戏对象的方式(别的对象 / 当前对象的子对象)
6、组件1调用组件2中方法的方式
7、在面板中获取外部数据的方法
8、序列化属性、序列化自定义对象的方法及举例
9、百分数的表示
10、文件类资源(文本、表格)的类名
11、GetMouseButonDown和GetMouseDown区别
12、获取鼠标按下的位置信息的方法
13、IK逆向运动学的定义
14、Start和Awake的异同
15、加载资源生成预制体
16、发射射线的方法

二、常用函数及属性
1、计算从一个向量到另一个向量所需要的旋转角度
2、对一个对象进行复制操作
3、vector3的属性(x轴、y轴、z轴、夹角、外积)
4、物体平移函数
5、物体旋转函数
6、瞬间给刚体一个恒定的速度
7、刚体增加推力、爆炸力
8、销毁物体
9、播放音乐、音效

三、人机交互
1、键盘按下按键
2、鼠标按下按键
3、获取左右、前后移动信息

四、角色控制器(CharacterController)
1、在角色移动上和Transform组件、RigidBody组件的区别
2、实现角色移动的方法

五、碰撞体组件Collider
1、2个物体产生碰撞的条件
2、怎么作为触发器使用
3、碰撞器碰撞开始的回调函数
4、触发器触发开始的回调函数

六、UI Toolkit
1、UI Toolkit的概念
2、创建UI Document对象和uxml资源文件
3、查找子元素的方法
4、UI Toolkit工作流

七、ScriptableObject数据容器
1、概念
2、使用流程

八、2D动画
1、Sprite定义
2、Animation功能
3、Animator组件

九、人体模型及动画
1、3D的动画存储格式
2、制作动画游戏步骤
3、动画回调函数的定义及使用方法
4、动画事件与回调函数的区别及使用方法
5、动画曲线定义及使用方法
6、IK动画定义及适用场景

十、导航系统
1、作用
2、使用流程
3、分离路面导航的定义、水平跳方案、往上/下跳方案
4、动态路障导航的定义及实现方法

--------------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------

一、细节

1、类与组件的关系

当一个类继承了MonoBehaviour时,就变成了组件

2、Time.deltaTime的含义

表示一帧的时间

3、怎么表示一帧的移动距离

Time.deltaTime * 10,即时间 * 速度

4、Update和LateUpdate的区别和适用场景

Update:每一帧更新时的操作

LateUpdate:所有update后执行,帧更新后的操作

适用场景:Update适用于处理输入、对象的移动、旋转、动画等;后者适用于相机跟随、视角更新等。

5、找游戏对象的方式(别的对象 / 当前对象的子对象)

别的对象:GameObject.Find

子对象:transform.Find

6、组件1调用组件2中方法的方式

GetComponent<xx>()

7、在面板中获取外部数据的方法

序列化

8、序列化属性、序列化自定义对象的方法及举例

[SerializeField] string name;

[System.Serializable]

public struct A   {       public int a;       public GameObject b;       public Vector3 c;   }

9、百分数的表示

Length.Percent(25.00)

10、文件类资源(文本、表格)的类名

TextAsset类

11、GetMouseButonDown和GetMouseDown区别

前者是鼠标按下最后一帧的信息

后者是鼠标按下每一帧的信息

12、获取鼠标按下的位置信息的方法

通过Camera发射Ray获取信息

13、IK逆向运动学的定义

通过手或足带动整个身体运动

14、Start和Awake的异同

相同:生命周期中都只调用一次

不同:awake先调用,在脚本被加载时执行,一般用于获取组件、设置初始化值;start后调用,一定用于启动协程、订阅事件。

15、加载资源生成预制体

Resources.Load<GameObject>(xx)

16、发射射线的方法

首先,定义射线Ray,然后通过Physics.Raycast发射射线,返回RaycastHit碰撞信息

二、常用函数及属性

1、计算从一个向量到另一个向量所需要的旋转角度

Quaternion.LookRotation()

2、对一个对象进行复制操作

Instantiate()

3、vector3的属性(x轴、y轴、z轴、夹角、外积)

vector3.right

vector3.up

vector3.forward

vector3.angle

vector3.cross

4、物体平移函数

transform.translate

5、物体旋转函数

transform.Rotate

6、瞬间给刚体一个恒定的速度

RigidBody.velocity

7、刚体增加推力、爆炸力

RigidBody.AddForce

RigidBody.AddExplosionForce

8、销毁物体

Destory(xx, seconds)

9、播放音乐、音效

player = GetCompent<AudioSource>();

player.Play();

player.PlayOneShot();

三、人机交互

1、键盘按下按键

Input.GetKeyDown(keyCode key)

2、鼠标按下按键

Input.GetMouseButtonDown(int button)

3、获取左右、前后移动信息

左右:Input.GetAxis("Horizontal")

前后:Input.GetAxis("Vertical")

四、角色控制器(CharacterController)

1、在角色移动上和Transform组件、RigidBody组件的区别

transform:通过位置实现移动

rigidbody:通过速度实现移动

characterController:通过速度和模拟碰撞实现移动,前两者不方便爬坡和爬梯,该组件则可以适应各种地形

2、实现角色移动的方法

SimpleMove()

五、碰撞体组件Collider

1、2个物体产生碰撞的条件

1)2个物体都有Collider组件

2)至少有一个物体有Rigidbody

2、怎么作为触发器使用

勾选Is Trigger选项

3、碰撞器碰撞开始的回调函数

OnCollisionEnter(Collision other)

4、触发器触发开始的回调函数

OnTriggerEnter(Collision other)

六、UI Toolkit

1、UI Toolkit的概念

基于Web技术的框架,没有采用GameObject的方式,而是参考了Web技术的XML和CSS方案。

2、创建UI Document对象和uxml资源文件

在Hierarchy窗口右击选择UI Toolkit -> UI Document对象

在Assets窗口右击选择Create -> UI Toolkit -> UI Document创建uxml文件

3、查找子元素的方法

Query方法查找所有符合条件的子元素

Q方法查找第一个符合条件的子元素

4、UI Toolkit工作流

内容布局UXML实现 -> 样式设计USS -> 功能行为C#脚本

七、ScriptableObject数据容器

1、概念

独立于类实例的保存数据的容器,数据存储在assets资源文件中,一般搭配CreateAssetMenu使用

2、使用流程

首先,定义一个类A继承自ScriptableObject,并且注解CreateAssetMenu的信息

然后,在菜单中实例化一个类A,并且修改属性值

接着,定义一个类B,该类中包含对类A的引用,然后在inspector中配置上一步实例化的类A

最后,通过GetComponent加载后即可获取类A的实例化的信息

八、2D动画

1、Sprite定义

在2D游戏中指像素图,比如《超级玛丽》中的马里奥

2、Animation功能

一种简单的动画系统,可以实现物体的移动、旋转等的动画编辑。

3、Animator组件

一种复杂的动画系统,使用状态机来控制游戏对象的动画。

九、人体模型及动画

1、3D的动画存储格式

fbx格式

2、制作动画游戏步骤

1)创建AnimatorController,并成为对象的组件

2)双击AnimatorController打开Animator窗口,状态间通过Make Transition创建连接线

3)在Animator窗口选择Parameters来设置动画状态转换条件

3、动画回调函数的定义及使用方法

在动画开始、执行中、结束时回调的函数,

在Animator窗口中选中动画,在Inspector窗口点击Add Behaviour添加脚本,脚本中的类继承自StateMachineBehaviour.

4、动画事件与回调函数的区别及使用方法

区别:回调函数只能给首帧、尾帧等添加回调方法,而事件能给任意帧添加回调方法。

使用:点击动画,在Inspector的Events中添加方法,然后在脚本中实现方法。

5、动画曲线定义及使用方法

设置一个变量的值随着动画执行而变化,在任意时刻都希望获取到这个变量的值。

使用:点击动画,在Inspector的Curves中添加变量并编辑曲线,在脚本中通过animator.GetFloat("<变量>")获取值

6、IK动画定义及适用场景

定义:一种由手部带动肩部运动的形式

场景:手触电、开枪时手的抖动

十、导航系统

1、作用

用于智能避障并寻找目标物体。

2、使用流程

1)将路面、路障等静态对象设置为Navigation Static

2)烘培(Bake)导航网络

3)给导航角色添加NavMeshAgent组件

4)给导航角色添加脚本组件,并在脚本中通过navMeshAgent.SetDestination设置导航目标位置

3、分离路面导航的定义、水平跳方案、往上/下跳方案

定义:分离的路面的导航

水平跳:给分离路面对象勾选Generate OffMeshLinks属性

上/下跳:在路面分离处创建两个空对象作为跳跃点,给一个跳跃点添加OffMeshLinks组件,并将两个跳跃点对象拖拽到OffMeshLinks组件中

4、动态路障导航的定义及实现方法

定义:导航系统、分离路面导航都是静态的,而动态路障导航是动态的。

实现:给动态路障添加NavMeshObstacle组件,此时U3D会对此对象附近的导航网络进行动态烘培文章来源地址https://www.toymoban.com/news/detail-845906.html

到了这里,关于Unity3D知识点精华浓缩的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity3D日常开发】Unity3D中协程的使用

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 最近有小伙伴问协程怎么用、怎么写,我也是会用会写,但是原理不是很明白。 学习了一下,总结出

    2024年02月12日
    浏览(43)
  • 【Unity3D日常开发】Unity3D中实现单例模式详解

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 首先,说一下,什么是 单例模式(Singleton) 。 单例模式是设计模式中常见的一种设计模式,目的是为了

    2024年02月02日
    浏览(48)
  • 【Unity3D-01】 记录Unity3D调用外接摄像头

    最近想在Unity3D上调用一个摄像头,通过查找资料发现仙魁XAN和八哥快走开的博客符合我的想法,实现起来也不难就尝试了一下 2.1 在这个工程里新建Canvas 如下图所示 然后下设RawImage为载体 2.2 在Assets里面新建一个脚本命名为PlaneManager.cs 代码内容如下(参考八哥快走开的博客)

    2024年02月04日
    浏览(39)
  • 【Unity3D小功能】Unity3D中实现Text显示版本功能

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 在项目开发中,会遇到要控制版本的情况,比如说对比版本号,版本不对再更新版本的功能,这些就是

    2024年02月05日
    浏览(49)
  • 【Unity3D小功能】Unity3D中实现点击‘文字’出现‘UI面板’

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 QQ群:398291828 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 宠粉博主又来了,今天有粉丝问我如何实现点击一段文字然后出现的面板在那段文字附近显示: 深入了

    2024年04月13日
    浏览(42)
  • 【Unity3D】Unity3D 软件安装 ( 注册账号并下载 Unity Hub | 安装 Unity Hub | 获取个人版授权 | 中文环境设置 | 安装 Unity3D 编辑器 )

    Unity 官方网站 : 英文 : https://unity.com 中文 : https://unity.cn 进入 中文网站 https://unity.cn , 点击右上角的 \\\" 下载 Unity \\\" 按钮 ; 推荐下载 Unity3D 的长期支持版本 ; 点击界面中的 \\\" 下载 Unity Hub \\\" 选项 ; 根据你的系统 , 选择对应的 Unity Hub , 我在 Windows 上开发 , 因此选择 \\\" Windows 下载 \\\"

    2024年01月25日
    浏览(67)
  • 【Unity3D小功能】Unity3D中实现仿真时钟、表盘、仿原神时钟

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 今天实现一个时钟工具,其实在之前已经完成了一个简单的时钟工具:【Unity3D应用案例系列】时钟、

    2024年02月05日
    浏览(51)
  • 【Unity3D日常开发】Unity3D中实现不同脚本之间的执行顺序控制

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 首先,来了解一下事件函数的执行顺序,下图是官方给的脚本中事件函数的执行顺序: 众所周知,U

    2024年02月02日
    浏览(40)
  • 【Unity3D编辑器开发】Unity3D中实现Transform快速复制粘贴【非常实用】

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 在开发中,常常会遇到频繁复制粘贴物体的坐标、旋转、缩放的操作。 使用Unity自带的组件复制粘贴比

    2024年02月07日
    浏览(39)
  • 【Unity3D小功能】Unity3D中实现UI擦除效果、刮刮卡功能

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 使用Unity3D实现UI的擦拭效果、刮刮卡功能的效果实现方式比较多,比如说用Shader、Texture渲染都是可以

    2024年02月04日
    浏览(201)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包