OverlapSphereNonAlloc | 计算与球体接触或位于球体内部的碰撞体,并将它们存储到提供的缓冲区中。 |
2D | - |
GetInstanceID | 返回对象的实例 ID。 |
ToString | 返回对象的名称。 |
静态函数/2D
射线🐍🐍🐍
RaycastHit/2D
- 描述
- 用于从射线投射获取信息的结构。
1、变量
Physics/2D
1、变量
2、静态函数
属性名 | 作用 |
CheckSphere | 如果有任何碰撞体与世界坐标系中由 position 和 radius 界定的球体重叠,则返回 true。 ✔ |
简单用法p1 | - |
OverlapSphere | 检测球体上的一点返回数组,可以拿到检测到的G,T等等 ✔ |
简单用法p2 | - |
OverlapBoxNonAlloc | 查找与给定盒体接触或位于盒体内部的所有碰撞体,并将它们存储到缓冲区中。 |
OverlapSphereNonAlloc | 计算与球体接触或位于球体内部的碰撞体,并将它们存储到提供的缓冲区中。 |
2D | - |
OverlapCircle | 检查某碰撞体是否位于一个圆形区域内。 ✔ |
举例 | Physics2d.OverlapCircle(位子,距离,layerMask mask); |
OverlapPoint | Collider2D 与该点重叠的碰撞体。 ✔ |
举例 | Physics2D.OverlapPoint(cursorPos(鼠标点检测碰撞体)); |
OverlapCapsuleAll | 获取位于某胶囊体区域内的所有碰撞体的列表。 |
用法:
//p1//检测周围是否有友军boolTankCurrentPos(Vector3pos) { 三个参数说明:那个位置、距离、表示Layer层:这里表示除了第8层外其他的都做检测returnPhysics.CheckSphere(pos, 50, ~(1<<8)); } //p2两个参数说明:起始位置、距离varcolliders=Physics.OverlapSphere(transform.position, distance);
Physics.Raycast/2D ✔
1、参数
用法:
1、RaycastHit2Dhit=Physics2D.Raycast(起始点,方向, 距离, LayerMask.GetMask("NPC"));
Physics.Linecast ✔
1、参数
用法:
1.如果有任何碰撞体与start和end之间的线相交,则返回true。usingUnityEngine; usingSystem.Collections; publicclassExampleClass : MonoBehaviour{ publicTransformtarget; voidUpdate() { if (Physics.Linecast(transform.position, target.position)) { Debug.Log("blocked"); } } }
Physics.RaycastAll
1、参数
Ray/Ray2D1
1、参数
2、公共函数
射线小案例😀
说明:从摄像机的位置发射子弹向目标点发射
Camera的相关转化可以跳到我的博客Camera看说明
ray=Camera.main.ScreenPointToRay(Input.mousePosition); out:C#的返回值if(Physics.Raycast(ray,outhit)) { 如果通过射线检测到目标就可以通过hit.找到目标点上的各种组件画线测试//通过Game见面可以看到你发出射线的颜色以便判断三个参数表示起始位、射线的末点(世界空间中射线命中碰撞体的撞击点)、颜色Debug.DrawLine(transform.position, hit.point, Color.red); 创建小球//基础内容不过多说明GameObjecta=Instantiate(attack, transform.position, Quaternion.identity); a.GetComponent<Rigidbody>().velocity= (hit.point-transform.position) *speed; }
Debug📡📡📡
- 描述
- 此类包含在开发游戏时可使调试变得更轻松的方法。
静态函数
Vector3📍📍📍
- 描述
- 用于表示 3D 向量和点。
- Unity 内部使用该结构传递 3D 位置和方向。 此外,它还包含用于执行常见向量操作的函数。
- 除了下面列出的函数以外,也可以使用其他类操作向量和点。 例如,对于旋转或变换向量和点来说,Quaternion 和 Matrix4x4 类也很有用。
1、静态变量
静态变量 | 作用 |
forward | 用于编写 Vector3(0, 0, 1) 的简便方法。 |
back | 用于编写 Vector3(0, 0, -1) 的简便方法。 |
down | 用于编写 Vector3(0, -1, 0) 的简便方法。 |
up | 用于编写 Vector3(0, 1, 0) 的简便方法。 |
left | 用于编写 Vector3(-1, 0, 0) 的简便方法。 |
right | 用于编写 Vector3(1, 0, 0) 的简便方法。 |
one | 用于编写 Vector3(1, 1, 1) 的简便方法。 |
zero | 用于编写 Vector3(0, 0, 0) 的简便方法。 |
negativeInfinity | 用于编写 Vector3(float.NegativeInfinity, float.NegativeInfinity, float.NegativeInfinity) 的简便方法。 |
positiveInfinity | 用于编写 Vector3(float.PositiveInfinity, float.PositiveInfinity, float.PositiveInfinity) 的简便方法。 |
2、变量
变量 | 作用 |
magnitude | 返回该向量的长度。(只读) ✔ |
normalized | 返回 magnitude 为 1 时的该向量。(只读) ✔ |
sqrMagnitudeP1 | 返回该向量的平方长度。(只读) ✔ |
3、构造函数 ✔
构造函数 | 作用 |
Vector3P2 | 使用给定的 x、y、z 分量创建新向量。 |
代码:
P1getPlayerStartPoint=原点坐标if (Vector3.SqrMagnitude(getPlayerStartPoint-transform.position) <=nav.stoppingDistance) { transform.rotation=Quaternion.Lerp(transform.rotation, quaternion, 0.01f); } P2Vector3pos=newVector3(x,y,z);
4、静态函数
5、运算符
String (UI的处理) ✔
- 描述
将文本表示为一系列 Unicode 字符。
变量 | |
Empty | 表示空字符串。(只读) |
Length | 获取此实例中的字符数(只读)。 |
代码:
usingUnityEngine; usingSystem.Collections; publicclassExampleClass : MonoBehaviour{ voidStart() { strings="hello"; Debug.Log(s);s//printshelloss=string.Format("{0} {1}", s, "world"); Debug.Log(s); //printshelloworlds=string.Concat("hello", "world"); Debug.Log(s); //printshelloworlds=s.ToUpper(); Debug.Log(s); //printsHELLOWORLDs=s.ToLower(); Debug.Log(s); //printshelloworldDebug.Log(s[1]); //prints'e'inti=42; s=i.ToString(); Debug.Log(s); //prints42s="-43"; i=int.Parse(s); Debug.Log(i); //prints-43floatf=3.14159265359F; s=f.ToString(); Debug.Log(s); //prints3.141593 (anapproximation) s="-7.14159265358979"; f=float.Parse(s); Debug.Log(f); //prints-7.141593 (anapproximation) } }
Text (TMP) UI ✔
命名空间 using TMPro;
定义: private TMP_Text healchValue;
SceneManager场景加载
- 描述
- 运行时的场景管理。
1、静态变量
变量名 | 作用 |
sceneCount ✔ | 当前加载的场景总数。 |
sceneCountInBuildSettings | Build Settings 中的场景数量。 |
2、静态函数
函数名 | 作用 |
CreateScene | 在运行时使用给定名称创建一个新的空场景。 |
GetActiveScene ✔ | 获取当前活动的场景。 |
GetSceneAt ✔ | 获取 SceneManager 的已加载场景列表中索引处的场景。Scene scene = SceneManager.GetSceneAt(SceneManager.sceneCount - 1); |
GetSceneByBuildIndex | 从构建索引中获取场景结构。 |
GetSceneByName | 搜索已加载的场景,查找包含给定名称的场景。 |
GetSceneByPath | 搜索所有已加载的场景,查找具有给定资源路径的场景。 |
LoadScene ✔ | 按照 Build Settings 中的名称或索引加载场景。 |
LoadSceneAsync✔ | 在后台异步加载场景。 |
MergeScenes | 这会将源场景合并到 destinationScene 中。 |
MoveGameObjectToScene | 将游戏对象从当前场景移至新场景。 |
SetActiveScene✔ | 将场景设置为活动状态。 |
UnloadSceneAsync 简单用法 | 销毁所有与给定场景关联的游戏对象,并将场景从 SceneManager 中移除。 |
Events |
activeSceneChanged | 订阅此事件可在活动场景发生变化时收到通知。 |
sceneLoaded | 向此事件添加委托,以在加载场景时收到通知。 |
3、Events
Events | 作用 |
activeSceneChanged | 订阅此事件可在活动场景发生变化时收到通知。 |
sceneLoaded | 向此事件添加委托,以在加载场景时收到通知。 |
sceneUnloaded | 向此事件添加委托以在卸载场景时收到通知。 |
3.1 SceneManager.LoadScene静态函数 以累加方式加载场景。
描述
命名空间 using UnityEngine;、using UnityEngine.SceneManagement;
在播放器中加载场景时使用。
通过 LoadSceneMode 选择在使用 SceneManager.LoadScene 时加载哪种类型的场景。可用模式为单模式和附加模式。
单模式将加载一个标准的 Unity 场景,该场景将独立显示在 Hierarchy 窗口中。附加模式将加载一个显示在 Hierarchy 窗口的场景,而窗口中同时还包含其他活动场景。
变量简单用法
变量名 | 作用 |
Single | 关闭所有当前加载的场景 并加载一个场景。 |
Additive | 将场景添加到当前加载的场景。 |
代码演示:
//异步加载场景搭配协程IEnumeratorTransition(stringname) { if (SceneManager.GetActiveScene().name!=name) { 异步加载场景(跳转场景使用)yieldreturnSceneManager.LoadSceneAsync(name); 创建playerInstantiate(plyerPrefab, getPonTransition(teleporterPos).transform.position, getPonTransition(teleporterPos).transform.rotation); yieldbreak; } } //单模式将加载一个标准的Unity场景,该场景将独立显示在Hierarchy窗口中。
Cursor
描述
用于设置光标(鼠标指针)的光标 API。
支持 macOS、Windows 和 Linux 上的硬件光标。在不支持的平台上回退到软件光标。
Windows 应用商店应用程序:仅支持一个通过 PlayerSettings.defaultCursor 设置的硬件光标,在运行时使用 Cursor.SetCursor 创建的光标被视为软件光标。
用作光标的纹理应在其导入设置中作此标记。
1、静态变量
变量名 | 作用 |
lockState 简单用法 | 确定硬件指针是否锁定到视图的中心、受限于窗口或者根本不受限制。 |
visible | 确定硬件指针是否可见。 |
1.1、lockState👉public static CursorLockMode lockState ;
CursorLockMode枚举类型
1、变量
变量名 | 作用 |
None | 光标行为未修改。 |
Locked | 将光标锁定在该游戏窗口的中心。 |
Confined | 将光标限制在游戏窗口中。 |
2、静态函数
函数名 | 作用 |
SetCursor | 将鼠标光标设置为给定纹理。 |
代码演示:
//将光标锁定在该游戏窗口的中心。Cursor.lockState=CursorLockMode.Locked;
Quaternion
描述
四元数用于表示旋转。
它们结构紧凑,不受万向锁影响,可以轻松插值。 Unity 内部使用四元数来表示所有旋转。
它们基于复数,不容易理解。 您几乎不会有机会访问或修改单个四元数分量(x、y、z、w); 大多数情况下,您只需要获取现有旋转(例如,来自 Transform),然后使用它们构造新的旋转 (例如,在两个旋转之间平滑插值)。 您绝大多数时间使用的四元数函数为: Quaternion.LookRotation、Quaternion.Angle、Quaternion.Euler、Quaternion.Slerp、Quaternion.FromToRotation 和 Quaternion.identity。(其他函数仅用于一些十分奇特的用例。)
您可以使用 Quaternion.operator * 对旋转进行旋转,或对向量进行旋转。
注意,Unity 使用的是标准化的四元数。
变量
变量名 | 作用 |
eulerAngles | 返回或设置旋转的欧拉角表示。 |
normalized | 返回该四元数,并且量值为 1(只读)。 |
- 公共函数
- 静态函数