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会对此对象附近的导航网络进行动态烘培
相关文章:
Unity3D知识点精华浓缩
一、细节 1、类与组件的关系 2、Time.deltaTime的含义 3、怎么表示一帧的移动距离 4、Update和LateUpdate的区别和适用场景 5、找游戏对象的方式(别的对象 / 当前对象的子对象) 6、组件1调用组件2中方法的方式 7、在面板中获取外部数据的方法 8、序列化属…...
HTML的文档说明
1.告诉浏览器当前网页的版本 2.写法: !以前的写法:要依据网页的HTML的版本去确定,紫萼发油很多很多。 具体的写法可以参考:W3C官网的文档说明 !新写法:W3C都推荐用h5的写法 <DOCTYPE ht…...
ubuntu 更新或更改GCC/G++
最近遇到一些问题,需要用到gcc-9/g-9,但是我自带的ubuntu18.04是gcc-7.5/g-7.5,所以升级一下,奈何文章太多而且很多无效,所以在此记录一下: 参考:https://stackoverflow.com/questions/19836858…...
Java --- Java语言基础
这个Java可是个好东西,是一门面对对象的程序设计语言,其语法很类似C,所以学过C的伙伴们就很好上手,另外Java对C进行了简化与提高,这个在后期学习会感受到,Java还有很多的类库API文档以及第三方开发包。 这…...
【C++算法竞赛 · 图论】图的存储
前言 图的存储 邻接矩阵 方法 复杂度 应用 例题 题解 邻接表 方法 复杂度 应用 前言 上一篇文章中(【C算法竞赛 图论】图论基础),介绍了图论相关的概念和一种图的存储的方法,这篇文章将会介绍剩下的两种方法ÿ…...
Spring AOP IOC
spring的优缺点 IOC集中管理对象,对象之间解耦,方便维护对象AOP在不修改原代码的情况下,实现一些拦截提供众多辅助类,方便开发方便集成各种优秀框架 紧耦合和松耦合 松耦合可以使用单一职责原则、接口分离原则、依赖倒置原则 …...
Linux ARM平台开发系列讲解(QEMU篇) 1.1 编译QEMU 构建RISC-V64架构 运行Linux kernel
1. 概述 QEMU可以模拟很多架构的CPU(ARM,RISC-V等),重点是免费,用来学Linux简直太适合不过了,所以,我打算开一章节来教QEMU的使用,这样也方便环境统一调试,本章节就讲解如何在Ubuntu搭建QEMU,我的环境是全新的Ubuntu22,QEMU下载的9.0,kernel下载的6.0. 2. 源码下载…...
Day19-【Java SE进阶】网络编程
一、网络编程 1.概述 可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)。java.net,*包下提供了网络编程的解决方案! 基本的通信架构 基本的通信架构有2种形式:CS架构(Client客户端/Server服务端)、BS架构(Browser浏览器/Server服务端)。 网络通信的…...
pyqt写个星三角降压启动方式2
星三角降压启动用可以用类进行封装,就像博图FB块那样。把逻辑都在类里完成,和外界需要交互的暴露出接口。测试过程中,发现类中直接用定时器QTimer会出现问题。然后就把定时器放到外面了。然后测试功能正常。 from PySide6.QtWidgets import …...
js可视化爬取数据生成当前热点词汇图
功能 可以爬取到很多数据,并且生成当前的热点词汇图,词越大越热门(词云图) 这里以b站某个评论区的数据为例,爬取63448条数据生成这样的图片 让我们能够更加直观的看到当前的热点 git地址 可以直接使用,中文…...
研发岗-面临统信UOS系统配置总结
第一步 获取root权限 配置环境等都需要用到root权限,所以我们先获取到root权限,方便下面的操作 下载软件 在UOS应用商店下载的所需应用 版本都比较低 安装node 官网下载了【arm64】的包,解压到指定文件夹,设置链接࿰…...
【STL详解 —— list的介绍及使用】
STL详解 —— list的介绍及使用 list的介绍list的介绍使用list的构造list iterator的使用list capacitylist element accesslist modifiers 示例list的迭代器失效 list的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭…...
cocos creator开发中遇到的问题和解决方案
前言 总结一下使用cocos开发遇到的坑,不定期更新。 问题汇总 代码修改Position坐标不生效 首先要通过打log或者断点排除下是不是逻辑上的问题,还有是不是有动画相关把位置修改了。我遇到的问题是坐标修改被widget组件覆盖了。 纹理压缩包体变大 co…...
10分钟带你学会配置DNS服务正反向解析
正向解析 服务端IP客户端IP网址192.168.160.134192.168.160.135www.openlab.com 一、首先做准备工作: 关闭安全软件,关闭防火墙,下载bind软件 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld [rootserver ~]# y…...
【vim 学习系列文章 19 -- 映射快捷键调用两个函数 A 和B】
请阅读【嵌入式开发学习必备专栏 之 Vim】 文章目录 映射快捷键调用两个函数 映射快捷键调用两个函数 在 Vim 中,如果想通过按下 gcm 来调用两个函数,比如 FunctionA 和 FunctionB,需要先定义这两个函数,然后创建一个映射。这个映…...
Windows安装MongoDB结合内网穿透轻松实现公网访问本地数据库
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
sgg大数据全套技术链接[plus]
写在开头:感谢尚硅谷,尚硅谷万岁,我爱尚硅谷 111个技术栈43个项目,兄弟们,冲! 最近小米又又又火了一把,致敬所有造福人民的企业和伟大的企业家,致敬雷军,小米ÿ…...
OpenHarmony南向嵌入式:【XR806开发板指导文档】
一. 简介 芯片介绍 XR806是全志科技旗下子公司广州芯之联研发设计的一款支持WiFi和BLE的高集成度无线MCU芯片,支持OpenHarmony轻量设置系统。具有集成度高、硬件设计简单、BOM成本低、安全可靠等优点。可广泛满足 智能家居、智慧楼宇、工业互联、儿童玩具、电子竞…...
Rust 实战练习 - 10. JSON、XML、YAML/TOML、Ini专题
配置文件 常见的配置文件有很多:JSON, Ini, XML, TOML, YAML … 目标: JSON/YAML/TOMLIniXML Rust中序列化用的最多的是 serde, 依赖它,有很多出色的第三方库可以使用。 其中,serde本身支持JSON/YAML/TOML/JSON5…多种&#…...
5.Hexo为页面标记标签和类别
Hexo的标签和类别基本上是可以在Hexo中将内容分组的两种方式 如果在网站上有一堆内容,有不同的博客文章 将博客文章分类为不同的类别会很有帮助 用特定的关键词为博客文章标记 如果可以同时分类和标记页面,会使网站用户更轻松地找到他们想要的页面类型 …...
·13·1dawwd
c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…...
Docker - PostgreSQL
博文目录 文章目录 说明命令 说明 Docker Hub PostgreSQL 数据卷数据卷印射在容器内的路径postgres/var/lib/postgresql/data |容器内的路径|说明| |–|–|–| |/var/lib/postgresql/data|数据目录| 部分环境变量是否必要说明POSTGRES_PASSWORD必需设置超级用户密码POSTGRES…...
Python | Leetcode Python题解之第26题删除有序数组中的重复项
题目: 题解: class Solution:def removeDuplicates(self, nums: List[int]) -> int:if not nums:return 0n len(nums)fast slow 1while fast < n:if nums[fast] ! nums[fast - 1]:nums[slow] nums[fast]slow 1fast 1return slow...
【电控笔记4】拉普拉斯-传递函数-pid
数据标幺化 拉普拉斯变换 欧拉公式 常见s变换 s变换性质...
针对“AI+医疗”的可行方案
针对“AI医疗”的可行方案如下: 一、方案目标 利用AI技术,结合医疗数据,开发一套高效、准确的医疗辅助系统,旨在提高医疗诊断的精度、加速药物研发进程、优化疾病预测模型,从而辅助医生进行疾病诊断和治疗方案制定。…...
时序预测 | Matlab实现SSA-ESN基于麻雀搜索算法(SSA)优化回声状态网络(ESN)的时间序列预测
时序预测 | Matlab实现SSA-ESN基于麻雀搜索算法(SSA)优化回声状态网络(ESN)的时间序列预测 目录 时序预测 | Matlab实现SSA-ESN基于麻雀搜索算法(SSA)优化回声状态网络(ESN)的时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SSA-ESN基于麻雀搜索…...
Go——面向对象
一. 匿名字段 go支持只提供类型而不写字段名的方式,也就是匿名字段,也称为嵌入字段。 同名字段的情况 所以自定义类型和内置类型都可以作为匿名字段使用 指针类型匿名字段 二.接口 接口定义了一个对象的行为规范,但是定义规范不实现ÿ…...
身份证识别ocr、身份证实名认证接口文档
每一次验证背后,都是对用户数据安全的承诺,对平台信誉的坚守。翔云身份证实名认证API,通过身份证识别接口仅需一键上传身份证图片即可快速识别身份证信息,翔云实名认证接口实时联网查验证件信息的真伪。 PHP身份证实名认证接口…...
C++ 文件操作
C中对文件操作需要包含头文件 < fstream > 文件类型分为两种: 1 . 文本文件 - 文件以文本的**ASCII码**形式存储在计算机中 2 . 二进制文件 - 文件以文本的**二进制**形式存储在计算机中,用户一般不能直接读懂它们 操作文件的三大类: 1 . ofstream…...
【数据结构】-- 单链表 vs 双向链表
🌈 个人主页:白子寰 🔥 分类专栏:python从入门到精通,魔法指针,进阶C,C语言,C语言题集,C语言实现游戏👈 希望得到您的订阅和支持~ 💡 坚持创作博文…...
货代网站制作/适合中层管理的培训
这两天办公室不时有人机器中毒,结果整个内部局域网经常被ARP Poison充斥,导致网络瞬断,于是不得不想办法来实现静态IP-Mac地址绑定。然而在我用的Windows Server 2008 beta3的机器上,却碰到了一个很奇怪的问题。 在本机键入如下命…...
飞鸿网架公司/林哥seo
CDN Google CDNMicrosoft CDNCDNJS CDNjsDelivr CDN选择器 jQuery 元素选择器和属性选择器允许您通过标签名、属性名或内容对 HTML 元素进行选择。 选择器允许您对 HTML 元素组或单个元素进行操作。 在 HTML DOM 术语中: 选择器允许您对 DOM 元素组或单个 DOM 节点进…...
用自己的身份做网站备案/培训网络营销的机构
Silverlight 4 七转载于:https://www.cnblogs.com/doubleyan/archive/2010/06/30/2164727.html...
电商app制作开发/京东关键词优化技巧
历经300多个日夜,2021年8月,基于国产企业级分布式数据库腾讯云TDSQL打造的昆山农商银行新一代核心系统成功投产上线。它采用“微服务应用国产分布式数据库”架构,该架构在同类银行中尚属首次。 新核心系统整体处理能力可以达到6300TPS&#x…...
成都到西安距离/seo排名工具有哪些
第三周C小结 其实一些经验或者技巧,都是在作业的过程中搜索得到或者自己领悟出来的。 首先是数值变量与字符变量占用的字节数不同,因此可以用sizeof()函数来判断变量所占字节数判断其类型。 然后是空格的ASCII码为32,可以以此判断一串字符中是…...
目字形布局结构的网站/个人购买链接
拿到了自己阿里云服务器的日志,对其需要进行处理。class Read_Rizhi:def __init__(self,filename):self.filenamefilenamedef open_file(self):try:f open(self.filename, r, encodingutf-8)resuly {code: 1, result: f}except Exception as e:resuly {code: 0, …...