Unity:Surface Effector 2D(表面效应器 2D)

目录

什么是表面效应器 2D?

🎯 它是做什么的?

🧪 从第一性原理解释它是怎么工作的

📦 重要参数解释

为什么不直接用 Rigidbody(刚体)来控制运动 ?

所以什么时候该用哪个?

一个小例子(滑雪坡)

⚠️ 使用技巧和注意事项


什么是表面效应器 2D?

Surface Effector 2D 是一个会沿着表面施加力的组件,用来让物体在上面自动滑动或运动。

换句话说,它就像是一个会主动“推动”在它上面的东西向某个方向滑动的表面。

🎯 它是做什么的?

Surface Effector 2D 主要用在下面这些地方:

  • 制作 传送带(物体放上去自己动)

  • 制作 滑雪坡 或 水滑道(滑板、人物会自动沿地面滑动)

  • 做 流水 或 风力效果(模拟表面流体推动作用)

它是 基于物理的力作用器,不会直接改物体位置,而是通过 施加力或速度 来影响物体运动。

🧪 从第一性原理解释它是怎么工作的

我们要先明白:Unity 中所有基于 2D 物理的交互,底层其实都归结为「力(force)与摩擦(friction)」的系统。

⚙️ Surface Effector 2D 具体做了什么?

  1. 它依附于一个 Collider 2D(通常是 Box Collider 2D 或 Edge Collider 2D),表示一个“表面”。

  2. 在这个表面上的刚体(Rigidbody 2D)接触到它之后:

    • 它会对接触体施加一个 沿着表面切线方向的速度(不是力)

    • 可以让物体沿表面自动滑动或被传送

  3. 表面本身也可以设定摩擦力,这决定了物体在滑动时会不会很容易停下来。

📦 重要参数解释

参数中文解释类比
Speed施加在接触刚体上的滑动速度(单位是单位/秒)像传送带的移动速度
Force Scale控制速度施加的强度(0 到 1)越小越容易被摩擦抵消
Use Contact Force是否仅对正在接触的物体施加速度打开 = 必须贴着它才滑动;关闭 = 离它近也可能受影响
Collider通常你需要用一个 Collider(Box/Edge)挂上这个 Effector 才能起效像地面或者传送带的形状

 


 

为什么不直接用 Rigidbody(刚体)来控制运动 ?

Rigidbody 是“谁要动”;Surface Effector 是“环境让你动”。 

Rigidbody 2D(刚体):

  • 是“运动的物体自身”;

  • 它自己根据外力(力、速度、碰撞等)来决定运动方式;

  • 如果你用脚本或输入控制它,比如 AddForce()velocity = ...,你是在主动让它动。

 举例:

rb.velocity = new Vector2(10f, 0f);  // 主动让物体向右跑

这就像是你在操控一个滑板车:你踩一下滑板车,它就动了。它的运动完全取决于你输入的命令或外力。 

Surface Effector 2D:

  • 是“作用在地面或表面上的运动影响器”;

  • 它不会直接控制物体,而是对接触到它的物体施加表面速度;

  • 被影响的物体必须要有 Rigidbody,才能接收这个“滑动影响”。

📦 举例:
你做了一个斜坡(Edge Collider),挂上 Surface Effector 2D,速度设置为 5。任何带 Rigidbody2D 的物体只要碰到这个坡,就像站在传送带上,自动往下滑。你不需要写任何代码控制物体本身!

所以什么时候该用哪个?

Rigidbody

  • 玩家控制角色的输入(跳、跑)

  • 敌人 AI 自主运动

  • 飞行、跳跃、被弹起、加速等复杂运动逻辑

Surface Effector 2D

  • 自动传送带

  • 滑雪道或滑梯(角色自动滑动)

  • 模拟流体(比如水流、冰面、风吹)

 


一个小例子(滑雪坡)

你做一个滑雪游戏,角色是一块带有 Rigidbody2D 的滑板。

你画了一条山坡轨迹(比如用 Edge Collider 2D),然后加一个 Surface Effector 2D:

  • 设置 Speed = 10

  • 设置 Force Scale = 1

  • 确保角色的 Collider 是和山坡发生接触 

 

👉 效果:滑板放上去,不需要控制,它就会自动“顺着坡”滑下来!

 

⚠️ 使用技巧和注意事项

  1. Collider 必须启用 Used By Effector

    否则挂了 Surface Effector 也不会生效。

  2. 刚体必须有摩擦或贴近接触

    如果 Rigidbody2D 与表面没有实际“贴上”,就不会被施加速度。

  3. Effector 不会自动旋转速度方向

    它的滑动方向是 沿着 Collider 局部坐标系的 X 轴方向,所以如果你的地面是倾斜的,就会根据局部 X 向施加速度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/79895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 记录应用内存

windows cmd下 30s 记录一次 echo off setlocal enabledelayedexpansion set /a counter0 :loop echo %date% %time% >> meminfo.txt adb shell dumpsys meminfo packagename>> meminfo.txt timeout /t 30 /nobreak >nul set /a counter1 echo counter: !coun…

基于神经网络的 YOLOv8、MobileNet、HigherHRNet 姿态检测比较研究

摘要 随着人工智能技术的飞速发展,基于神经网络的姿态检测技术在计算机视觉领域取得了显著进展。本文旨在深入比较分析当前主流的姿态检测模型,即 YOLOv8、MobileNet 和 HigherHRNet,从模型架构、性能表现、应用场景等多维度展开研究。通过详…

解决HomeAssistant 无法安装 samba share问题

最近家里树莓派上的homeassistant 被折腾崩了,重新安装过程中发现加载项“Official add-ons”里面的“samba share”、“file edit”、“Mosquitto broker”等常用组件都不能安装。报以下错误: [supervisor.docker.interface] Cant install homeassista…

[Linux]从零开始的STM32MP157 Buildroot根文件系统构建

一、前言 在前面的教程中,教了大家如何移植一个LInux的内核并且正确启动,我们发现Linux内核在启动后会出现一个错误,提示我们没有找到根文件系统。那么什么是根文件系统呢?之前我们使用Ubuntu编译了STM32MP157的TF-A,UBOOT,LINUX内…

2025-05-07 学习记录--Python-变量 + 常量 + 命名规则 + 变量的数据类型 + 数据类型

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、变量 ⭐️ 多个变量的赋值 🍭 二、常量 ⭐️ 程序在运行的过程中,值永远不会发生改变的量称之为常量…

16.状态模式:思考与解读

原文地址:状态模式:思考与解读 更多内容请关注:深入思考与解读设计模式 引言 在开发软件系统时,特别是当对象的行为会随着状态的变化而变化时,系统往往会变得复杂。你是否遇到过这样的情况:一个对象的行为在不同的状…

从 Pretrain 到 Fine-tuning:大模型迁移学习的核心原理剖析

引言 在人工智能领域,大模型的出现掀起了一场技术革命。这些拥有海量参数的模型,如 GPT-4、PaLM 等,在众多任务上展现出了惊人的能力。然而,训练一个大模型需要耗费巨大的计算资源和时间,而且直接让大模型处理特定领域…

Java详解LeetCode 热题 100(11):LeetCode 239. 滑动窗口最大值(Sliding Window Maximum)详解

文章目录 1. 题目描述2. 理解题目3. 解法一:暴力法3.1 思路3.2 Java代码实现3.3 代码详解3.4 复杂度分析3.5 适用场景 4. 解法二:优先队列(最大堆)4.1 思路4.2 Java代码实现4.3 代码详解4.4 复杂度分析4.5 适用场景 5. 解法三&…

org.apache.poi——将 office的各种类型文件(word等文件类型)转为 pdf

org.apache.poi——将 office的各种类型文件&#xff08;word等文件类型&#xff09;转为 pdf 简介使用方法word转pdf 使用示例word转pdf 简介 使用方法 word转pdf Maven坐标为 <dependency><groupId>com.documents4j</groupId><artifactId>documen…

二叉树与优先级队列

1.树 树是由n个数据构成的非线性结构&#xff0c;它是根朝上&#xff0c;叶朝下。 注意&#xff1a;树形结构之中&#xff0c;子树之间不能连接&#xff0c;不然就不构成树形结构 1.子树之间没有交集 2.除了根节点以外&#xff0c;每一个节点有且只有一个父亲节点 3.一个n个…

如何进行室内VR全景拍摄?

如何进行室内VR全景拍摄&#xff1f; 室内VR全景拍摄作为先进的视觉技术&#xff0c;能够为用户提供沉浸式的空间体验。本文介绍如何进行室内VR全景拍摄&#xff0c;并阐述众趣科技在这一领域的技术支持和服务优势。 室内VR全景拍摄基础 1. 室内VR全景拍摄概述 室内VR全景拍…

如何通过代理 IP 实现异地直播推流

在直播行业日益火爆的今天&#xff0c;许多主播希望突破地域限制&#xff0c;实现异地直播推流&#xff0c;以获得更广泛的观众群体和更好的直播效果。代理 IP 作为一种有效的网络工具&#xff0c;能够帮助主播轻松达成这一目标。本文将详细介绍如何通过代理 IP 实现异地直播推…

随机变量数字特征

主要介绍一维随机变量期望和方差、二维随机变量期望和方差、以及协方差相关公式&#xff0c;及推导。 一维随机变量 以一个抛硬币的场景作为例子&#xff0c;如下&#xff1a; 抛掷两枚均匀硬币&#xff0c;如果两枚都是正面向上&#xff0c;则赢得2元&#xff0c;否则就输掉…

上传图片后,如何调用API进行商品搜索?

以下是一个完整的示例&#xff0c;展示如何在上传图片后调用淘宝按图搜索商品&#xff08;拍立淘&#xff09;API进行商品搜索&#xff1a; 1. 准备工作 注册账号并获取API密钥&#xff1a;在淘宝开放平台注册账号&#xff0c;创建应用&#xff0c;获取app_key和app_secret。 …

Android 数据持久化之 Room 数据库存储

一、简介 Room 是 Google 推出的 Android 持久层框架,建立在 SQLite 之上,提供了一个抽象层,简化了数据库操作。它通过注解和编译时检查来确保数据操作的正确性。 Room 主要由以下三个组件组成: Entity(实体):定义封装实际数据的实体类,每个实体类对应数据库中的一个…

react中的用法——setDisabled dva dispatch effects

setDisabled 在react中&#xff0c;setDisabled通常是指通过状态管理来控制某个组件&#xff08;如按钮、输入框等&#xff09;的禁用状态。虽然react本身没有内置的setDisabled方法&#xff0c;但你可以使用useState钩子来实现类似的功能。以下是一个简单的示例&#xff0c;展…

html css js网页制作成品——HTML+CSS珠海网页设计网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…

C语言复习笔记--自定义类型

今天我们来复习一下自定义类型.自定义类型大概分为结构体,枚举,联合体,数组这几种.数组在之前就介绍过.今天我们来看下其他三种. 结构体 首先来看结构体. 结构体类型的声明 之前在操作符的地方简单认识过结构体.下面我们回顾一下. 结构体回顾 结构是⼀些值的集合&#xff0c;这…

python jupyter notebook

什么是Jupyter Notebook Jupyter Notebook是一个开源的Web应用程序&#xff0c;允许用户创建和共享包含实时代码、方程、可视化和解释性文本的文档。它最初由IPython团队开发&#xff0c;现在已经成为一个独立的项目&#xff0c;并广泛用于数据清理和转换、数值模拟、统计建模…

Linux——https基础理论

1. 初步认识https协议 • 属于应用层 • 相较于http协议&#xff0c;https在应用层多了一层加密层&#xff0c;为了保证数据安全 • 简单理解&#xff1a;https就是对http的加密和解密 2. 中间人攻击 • 数据在传输过程中&#xff0c;遭第三方篡改。 3. 加密方式 • 对称加密&a…