Component🔐🔐🔐

  • ✨学习阶段我会不断的更新新的内容,文章如有误请指正
  • Rigidbody⚖⚖⚖
  • 变量
  • 公共函数
  • 消息
  • 公共函数/2D
  • 静态函数/2D
  • 射线🐍🐍🐍
  • RaycastHit/2D
  • 1、变量
  • Physics/2D
  • 1、变量
  • 2、静态函数
  • Physics.Raycast/2D ✔
  • 1、参数
  • Physics.Linecast ✔
  • 1、参数
  • Physics.RaycastAll
  • 1、参数
  • Ray/Ray2D1
  • 1、参数
  • 2、公共函数
  • 射线小案例😀
  • Debug📡📡📡
  • 静态函数
  • Vector3📍📍📍
  • 1、静态变量
  • 2、变量
  • 3、构造函数 ✔
  • 4、静态函数
  • 5、运算符
  • String (UI的处理) ✔
  • Text (TMP) UI ✔
  • SceneManager场景加载
  • 1、静态变量
  • 2、静态函数
  • 3、Events
  • 2.1 SceneManager.LoadScene静态函数 以累加方式加载场景。
  • 变量简单用法
  • Cursor
  • 1、静态变量
  • 1.1、lockState👉public static CursorLockMode lockState ;
  • 2、静态函数
  • Quaternion


✨学习阶段我会不断的更新新的内容,文章如有误请指正,

提示:以下是本篇文章正文内容

Rigidbody⚖⚖⚖

  • 描述
  1. 通过物理模拟控制对象的位置。
  2. 向对象添加 Rigidbody 组件后,其运动将受到 Unity 物理引擎的控制。即使不添加任何代码,Rigidbody 对象也受到向下的重力,并在与其他对象碰撞时作出反应(如果也存在适当的 Collider 组件)。
  3. Rigidbody 还有一个脚本 API,让您能够向对象施加力,并以逼真的物理效果对其进行控制。例如,可以根据车轮施加的力来指定汽车的行为。根据这些信息,物理引擎可以处理汽车运动的大多数其他方面,因此汽车可进行逼真的加速并适当地响应碰撞。
  4. 在脚本中,建议使用 FixedUpdate 函数来施加力和更改 Rigidbody 设置(而不是使用 Update,Update 用于大多数其他帧更新任务)。这样做的原因是物理更新在测量的时间步骤中执行,而时间步骤与帧更新不一致。FixedUpdate 在每次进行物理更新前调用,因此在该函数中做出的任何更改都将直接处理。

变量

变量

作用

isKinematic

控制物理是否影响刚体。

mass

刚体的质量

position

刚体的位置。

rotation

刚体的旋转。

velocity

刚体的速度矢量。它表示刚体位置的变化率。

2D

simulated

指示物理系统是否应模拟刚体。

sleepMode

刚体最初处于的睡眠状态。

velocity

刚体的线性速度,采用单位/秒形式。

公共函数

公共函数

作用

AddExplosionForce

向模拟爆炸效果的刚体施加力。

AddForce/2D

向 Rigidbody 添加力。

AddRelativeForce/2D

向刚体添加力(相对于其坐标系)。

MovePosition/2D

将运动 Rigidbody 向 position 移动。

MoveRotation/2D

将刚体旋转到 /rotation/。

Sleep

强制刚体进入睡眠状态至少一帧。

SweepTest

测试如果刚体在场景中移动时,是否会与任何对象发生碰撞。

SweepTestAll

与 Rigidbody.SweepTest 类似,但返回所有命中对象。

WakeUp

强制唤醒刚体。

2D

IsAwake

刚体是否处于“唤醒”状态?

IsSleeping

刚体是否处于“睡眠”状态?

IsTouching

检查 collider 是否正在接触附加到该刚体的任何碰撞体。

IsTouchingLayers ✔

检查附加到该刚体的任何碰撞体是否正在接触指定 layerMask 上的任何碰撞体。

MovePosition

将刚体移动到 /position/。

MoveRotation

将刚体旋转到 /angle/(以度为单位)。

Sleep

使刚体进入“睡眠”状态。

WakeUp

禁用刚体的“睡眠”状态。

消息

消息

作用

OnCollisionEnter

当该碰撞体/刚体已开始接触另一个刚体/碰撞体时,调用 OnCollisionEnter。

OnCollisionExit

当该碰撞体/刚体已停止接触另一个刚体/碰撞体时,调用 OnCollisionExit。

OnCollisionStay

对应正在接触刚体/碰撞体的每一个碰撞体/刚体,每帧调用一次 OnCollisionStay。

公共函数/2D

公共函数

作用

BroadcastMessage

调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。

GetComponent

如果游戏对象附加了类型为 type 的组件,则将其返回,否则返回 null。

GetComponentInChildren

使用深度首次搜索返回 GameObject 或其任何子项中类型为 type 的组件。

GetComponentInParent

返回 GameObject 或其任何父项中类型为 type 的组件。

GetComponents

返回 GameObject 中类型为 type 的所有组件。

GetComponentsInChildren

返回 GameObject 或其任何子项中类型为 type 的所有组件。

GetComponentsInParent

返回 GameObject 或其任何父项中类型为 type 的所有组件。

SendMessage

调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。

SendMessageUpwards

调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。

TryGetComponent

获取指定类型的组件(如果存在)。

GetInstanceID

返回对象的实例 ID。

ToString

返回对象的名称。

静态函数/2D

静态函数

作用

Destroy

移除 GameObject、组件或资源。

DestroyImmediate

立即销毁对象 /obj/。强烈建议您改用 Destroy。

DontDestroyOnLoad

在加载新的 Scene 时,请勿销毁 Object。

FindObjectOfType

返回第一个类型为 type 的已加载的激活对象。

FindObjectsOfType

返回所有类型为 type 的已加载的激活对象的列表。

Instantiate

克隆 original 对象并返回克隆对象。

射线🐍🐍🐍

RaycastHit/2D

  • 描述
  1. 用于从射线投射获取信息的结构。

1、变量

变量

作用

collider

命中的 Collider。

distance

从射线原点到撞击点的距离。

normal

射线命中的表面的法线。

point

世界空间中射线命中碰撞体的撞击点。

rigidbody

命中的碰撞体的 Rigidbody。如果该碰撞体未附加到刚体,则值为 /null/。

transform

命中的刚体或碰撞体的 Transform。

简单用法

Physics/2D

1、变量

变量

作用

AllLayers

用于选择所有层的层遮罩常量。

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
//检测周围是否有友军
bool TankCurrentPos(Vector3 pos)
{
三个参数说明:那个位置、距离、表示Layer层:这里表示除了第8层外其他的都做检测
	return Physics.CheckSphere(pos, 50, ~(1 << 8));
}
//p2
两个参数说明:起始位置、距离
var colliders = Physics.OverlapSphere(transform.position, distance);

Physics.Raycast/2D ✔

1、参数

参数

作用

origin

射线在世界坐标系中的起点。

direction

射线的方向。

maxDistance

射线应检查碰撞的最大距离。

layerMask

层遮罩,用于在投射射线时有选择地忽略碰撞体。

queryTriggerInteraction

指定该查询是否应该命中触发器。

2D

-

minDepth

仅包括 Z 坐标(深度)大于或等于该值的对象。

maxDepth

仅包括 Z 坐标(深度)小于或等于该值的对象。

用法:

1、RaycastHit2D hit = Physics2D.Raycast(起始点, 方向, 距离, LayerMask.GetMask("NPC"));

Physics.Linecast ✔

1、参数

参数

作用

start

起点。

end

终点。

layerMask

层遮罩,用于在投射射线时有选择地忽略碰撞体。

queryTriggerInteraction

指定该查询是否应该命中触发器。

hitInfo

如果返回 true,则 hitInfo 将包含有关碰撞体的撞击位置的更多信息(另请参阅:RaycastHit)。

用法:

1.如果有任何碰撞体与 start 和 end 之间的线相交,则返回 true。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
    public Transform target;
    void Update()
    {
        if (Physics.Linecast(transform.position, target.position))
        {
            Debug.Log("blocked");
        }
    }
}

Physics.RaycastAll

1、参数

参数

作用

ray

光线的起点和方向。

maxDistance

从射线起点开始,允许射线命中的最大距离。

layerMask

层遮罩,用于在投射射线时有选择地忽略碰撞体。

queryTriggerInteraction

指定该查询是否应该命中触发器。

Ray/Ray2D1

1、参数

变量

作用

directi

射线的方向。

origin

射线的原点。

构造函数

作用

Ray

沿着 direction 创建从 origin 开始的射线。

2、公共函数

公共函数

作用

GetPoint

返回射线上 distance 个单位处的点。

ToString 对

于此射线,返回整齐格式化的字符串。

射线小案例😀

说明:从摄像机的位置发射子弹向目标点发射
Camera的相关转化可以跳到我的博客Camera看说明

ray = Camera.main.ScreenPointToRay(Input.mousePosition);
out :C#的返回值
if(Physics.Raycast(ray,out hit))
{
如果通过射线检测到目标就可以通过hit.找到目标点上的各种组件
	画线测试//通过Game见面可以看到你发出射线的颜色以便判断
	三个参数表示	起始位、射线的末点(世界空间中射线命中碰撞体的撞击点)、颜色
Debug.DrawLine(transform.position, hit.point, Color.red);
	创建小球//基础内容不过多说明
GameObject a=Instantiate(attack, transform.position, Quaternion.identity);
    a.GetComponent<Rigidbody>().velocity = (hit.point - transform.position) * speed;
}

Debug📡📡📡

  • 描述
  1. 此类包含在开发游戏时可使调试变得更轻松的方法。

静态函数

静态函数

作用

DrawLine

在指定的起始点与结束点之间绘制一条直线。 ✔

DrawRay

在世界坐标中绘制一条从 start 到 start + dir 的直线。 ✔

Log

将消息记录到 Unity 控制台。 ✔

ClearDeveloperConsole

将错误从开发者控制台中清除。

Vector3📍📍📍

  • 描述
  1. 用于表示 3D 向量和点。
  2. Unity 内部使用该结构传递 3D 位置和方向。 此外,它还包含用于执行常见向量操作的函数。
  3. 除了下面列出的函数以外,也可以使用其他类操作向量和点。 例如,对于旋转或变换向量和点来说,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 分量创建新向量。

代码:

P1
getPlayerStartPoint =原点坐标
if (Vector3.SqrMagnitude(getPlayerStartPoint - transform.position) <= nav.stoppingDistance)
{
	transform.rotation = Quaternion.Lerp(transform.rotation, quaternion, 0.01f);
}
P2
Vector3 pos=new Vector3(x,y,z);

4、静态函数

静态函数名

作用

Distance

返回 a 与 b 之间的距离。 ✔

Lerp

在两个点之间进行线性插值。 ✔

LerpUnclamped

在两个向量之间进行线性插值。

Normalize

使该向量的 膜 为 1。 ✔

Dot跳到这里的(二二、绕开敌人的攻击点,免伤害)简单说明

两个向量的点积。 ✔

RotateTowards

将向量 current 朝 target 旋转。

Slerp

在两个向量之间进行球形插值。

SlerpUnclamped

在两个向量之间进行球形插值。

SmoothDamp

随时间推移将一个向量逐渐改变为所需目标。

MoveTowards

计算 current 指定的点与 target 指定的点之间的位置,移动距离不超过 maxDistanceDelta 指定的距离。

5、运算符

运算符名

作用

operator -

将一个向量减去另一个向量。

operator !=

如果向量不同,则返回 true。

operator *

将向量乘以一个数值。

operator /

将向量除以一个数值。

operator +

将两个向量相加。

operator ==

如果两个向量大致相等,则返回 true。

String (UI的处理) ✔

  • 描述
    将文本表示为一系列 Unicode 字符。

变量

Empty

表示空字符串。(只读)

Length

获取此实例中的字符数(只读)。

代码:

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    void Start()
    {

        string s = "hello";
        Debug.Log(s);s
        // prints hellos

        s = string.Format("{0} {1}", s, "world");
        Debug.Log(s);
        // prints hello world

        s = string.Concat("hello", "world");
        Debug.Log(s);
        // prints helloworld

        s = s.ToUpper();
        Debug.Log(s);
        // prints HELLOWORLD

        s = s.ToLower();
        Debug.Log(s);
        // prints helloworld

        Debug.Log(s[1]);
        // prints 'e'

        int i = 42;
        s = i.ToString();
        Debug.Log(s);
        // prints 42

        s = "-43";
        i = int.Parse(s);
        Debug.Log(i);
        // prints -43

        float f = 3.14159265359F;
        s = f.ToString();
        Debug.Log(s);
        // prints 3.141593 (an approximation)

        s = "-7.14159265358979";
        f = float.Parse(s);
        Debug.Log(f);
        // prints -7.141593 (an approximation)
  }
}

Text (TMP) UI ✔

命名空间 using TMPro;
定义: private TMP_Text healchValue;

SceneManager场景加载

  • 描述
  1. 运行时的场景管理。

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

向此事件添加委托以在卸载场景时收到通知。

2.1 SceneManager.LoadScene静态函数 以累加方式加载场景。

  • 描述
  1. 命名空间 using UnityEngine;、using UnityEngine.SceneManagement;
  2. 在播放器中加载场景时使用。
  3. 通过 LoadSceneMode 选择在使用 SceneManager.LoadScene 时加载哪种类型的场景。可用模式为单模式和附加模式。
  4. 单模式将加载一个标准的 Unity 场景,该场景将独立显示在 Hierarchy 窗口中。附加模式将加载一个显示在 Hierarchy 窗口的场景,而窗口中同时还包含其他活动场景。
变量简单用法

变量名

作用

Single

关闭所有当前加载的场景 并加载一个场景。

Additive

将场景添加到当前加载的场景。

代码演示:

//异步加载场景搭配协程
  IEnumerator Transition(string name)
    {
        if (SceneManager.GetActiveScene().name != name) {
			异步加载场景(跳转场景使用)
            yield return SceneManager.LoadSceneAsync(name);
			创建player
            Instantiate(plyerPrefab, getPonTransition(teleporterPos).transform.position, getPonTransition(teleporterPos).transform.rotation);
            yield break;
        }
    }
//单模式将加载一个标准的 Unity 场景,该场景将独立显示在 Hierarchy 窗口中。

Cursor

  • 描述
  1. 用于设置光标(鼠标指针)的光标 API。
  2. 支持 macOS、Windows 和 Linux 上的硬件光标。在不支持的平台上回退到软件光标。
  3. Windows 应用商店应用程序:仅支持一个通过 PlayerSettings.defaultCursor 设置的硬件光标,在运行时使用 Cursor.SetCursor 创建的光标被视为软件光标。
  4. 用作光标的纹理应在其导入设置中作此标记。

1、静态变量

变量名

作用

lockState 简单用法

确定硬件指针是否锁定到视图的中心、受限于窗口或者根本不受限制。

visible

确定硬件指针是否可见。

1.1、lockState👉public static CursorLockMode lockState ;

CursorLockMode枚举类型

1、变量

变量名

作用

None

光标行为未修改。

Locked

将光标锁定在该游戏窗口的中心。

Confined

将光标限制在游戏窗口中。

2、静态函数

函数名

作用

SetCursor

将鼠标光标设置为给定纹理。

代码演示:

//将光标锁定在该游戏窗口的中心。
Cursor.lockState = CursorLockMode.Locked;

Quaternion

  • 描述
  1. 四元数用于表示旋转。
  2. 它们结构紧凑,不受万向锁影响,可以轻松插值。 Unity 内部使用四元数来表示所有旋转。
  3. 它们基于复数,不容易理解。 您几乎不会有机会访问或修改单个四元数分量(x、y、z、w); 大多数情况下,您只需要获取现有旋转(例如,来自 Transform),然后使用它们构造新的旋转 (例如,在两个旋转之间平滑插值)。 您绝大多数时间使用的四元数函数为: Quaternion.LookRotation、Quaternion.Angle、Quaternion.Euler、Quaternion.Slerp、Quaternion.FromToRotation 和 Quaternion.identity。(其他函数仅用于一些十分奇特的用例。)
  4. 您可以使用 Quaternion.operator * 对旋转进行旋转,或对向量进行旋转。

注意,Unity 使用的是标准化的四元数。

  • 变量

变量名

作用

eulerAngles

返回或设置旋转的欧拉角表示。

normalized

返回该四元数,并且量值为 1(只读)。

  • 公共函数

函数名

作用

SetFromToRotation

创建一个从 fromDirection 旋转到 toDirection 的旋转。

SetLookRotation

使用指定的 forward 和 upwards 方向创建旋转。

ToAngleAxis

将旋转转换为“角-轴”表示形式(角度以度为单位)。

ToString

返回该四元数的整齐格式化的字符串。

  • 静态函数

函数名

作用

Angle

返回两个旋转 a 和 b 之间的角度(以度为单位)。

AngleAxis

创建一个围绕 axis 旋转 angle 度的旋转。

Dot

两个旋转之间的点积。

Euler

返回一个旋转,它围绕 z 轴旋转 z 度、围绕 x 轴旋转 x 度、围绕 y 轴旋转 y 度(按该顺序应用)。

FromToRotation

创建一个从 fromDirection 旋转到 toDirection 的旋转。

Inverse

返回 rotation 的反转。

Lerp

在 a 和 b 之间插入 t,然后对结果进行标准化处理。参数 t 被限制在 [0, 1] 范围内。

LerpUnclamped

在 a 和 b 之间插入 t,然后对结果进行标准化处理。参数 t 不受限制。

LookRotation

使用指定的 forward 和 upwards 方向创建旋转。

Normalize

将此四元数转换为 1,方向相同,但量值为 1。

RotateTowards

将旋转 from 向 to 旋转。

Slerp

在四元数 a 与 b 之间按比率 t 进行球形插值。参数 t 限制在范围 [0, 1] 内。

SlerpUnclamped

在 a 和 b 之间以球形方式插入 t。参数 t 不受限制。