【unity】基于Obi的绳长动态修改(ObiRopeCursor)

文章目录

  • 一、在运行时改变绳子长度:ObiRopeCursor
    • 1.1 Cursor Mu(光标μ)
    • 1.2 Source Mu(源μ)
    • 1.3 Direction(方向)

一、在运行时改变绳子长度:ObiRopeCursor

Obi提供了一个非常通用的组件来在运行时修改绳子的长度:ObiRopeCursor。当添加到ObiRope时,该组件将在其顶部放置一个光标,允许你从该点向任意方向“添加”或“移除”rope。把它想象成文本编辑应用程序中的普通光标:你可以把它放在文本的任何位置,并在它的位置添加/删除字符。

您只需要在运行时调用它的 ChangeLength(length) 方法。游标将自动负责在绳子上添加/移除粒子/约束以获得新的长度。

ObiRopeCursor有几个属性:

  1. Cursor Mu
  2. Source Mu
  3. Direction

1.1 Cursor Mu(光标μ)

这是光标的规范化位置,新粒子将被添加删除。0将把它放在绳子的起点,1将把它放在绳子的末端。它之间的任何值都会将它放置在最靠近该值的粒子中。

1.2 Source Mu(源μ)

这是添加新粒子时复制粒子的规范化位置。0将把它放在绳子的起点,1将把它放在绳子的末端。它之间的任何值都会将它放置在最靠近该值的粒子中。

1.3 Direction(方向)

控制光标方向的布尔值。启用它将使光标指向绳子的末端。禁用它将使它指向起点。

例如,如果你想通过复制绳子上的第一个粒子在绳子中间插入新粒子,并使其向末端生长(你可能在开始时固定了一些粒子,并希望它们保持这种状态),你可以设置 Cursor Mu 为0.5f,其 Source Mu 为0,其方向为true

使用 ObiRopeCursor 增加绳子的长度将使用蓝图粒子池中的粒子。确保池足够大(通过设置蓝图的“pooled particles”属性)以达到所需的最大长度。当减小绳子的长度时,未使用的粒子将返回到池中。

在处理光标(cursor)时,知道绳子的当前长度是非常有用的。为此使用rope的 RestLength 属性。下面的代码使用 W 和 S 键增加或减少绳子的长度。还可以控制更改的速度:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Obi;

public class RopeLengthController : MonoBehaviour {

	public float speed = 1;
	ObiRopeCursor cursor;
	ObiRope rope;

	void Start () {
		cursor = GetComponentInChildren<ObiRopeCursor>();
		rope = cursor.GetComponent<ObiRope>();
	}

	void Update () {
		if (Input.GetKey(KeyCode.W))
			cursor.ChangeLength(rope.restLength - speed * Time.deltaTime);

		if (Input.GetKey(KeyCode.S))
			cursor.ChangeLength(rope.restLength + speed * Time.deltaTime);
	}
}

请添加图片描述
游标(光标)收绳

请添加图片描述
游标(光标)延伸绳

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解析诊断调查表中的各个表单

诊断调查表 1、系统级别规范2、ECU级别规范 1、系统级别规范 总体可分为5部分&#xff1a;文档相关、控制器ID和时间参数、DID资源区间、DTC资源区间和安全算法掩码。 Cover&#xff1a;项目名称、编制、校对、批准等等&#xff1b;ModificationRecord:版本更新&#xff0c;修…

阿里、字节等大厂系统测试方法的知识点总结,终于被我搞到手了

系统测试一般采取黑盒测试&#xff0c;系统测试的方法也比较多&#xff0c;其中常用的方法有&#xff1a;多任务测试、临界测试、中断测试、等价划分测试 多任务测试 多任务测试是指在非idle状态下&#xff0c;测试对象处于工作状态时&#xff0c;有新的事件发生&#xff0c;…

ruoyi-ai 基于ruoyi-plus实现AI聊天和绘画功能-后端

基于ruoyi-plus实现AI聊天和绘画功能-后端 本项目完全开源免费&#xff01; 后台管理界面使用elementUI服务端使用Java17SpringBoot3.X ruoyi-ai: 基于ruoyi-plus实现AI聊天和绘画功能-后端 实现功能 集成OpenAi API (gpt-4-vision-preview dall-e-3)接入文生图模型&#xf…

使用JavaScript(简写js)跳转页面的几种方法

目录 1.location.href2.location.assign()3.window.open()4.location.replace()5.document.URL6.history.go&#xff08;&#xff09; 前言&#xff1a; 当我们用到Javascript的时候跳转页面是必不可少的&#xff0c;今天介绍几种常见的跳转页面方法。 1.location.href 简介 …

P10 RV1126推流项目——ffmpeg输出参数初始化

前言 从本章开始我们将要学习嵌入式音视频的学习了 &#xff0c;使用的瑞芯微的开发板 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_C…

服务器经常出现自动重启怎么办

服务器自动重启是一个复杂且常见的问题&#xff0c;可能由多种原因引起。从硬件故障到软件问题&#xff0c;从电源问题到散热问题&#xff0c;每一个环节都可能成为服务器的杀手。在处理此类问题时&#xff0c;需要我们有一套完整的策略和方案&#xff0c;以便快速准确地定位并…

CNN——VGG

1.VGG简介 论文下载地址&#xff1a;https://arxiv.org/pdf/1409.1556.pdf VGGNet 是由牛津大学视觉几何小组&#xff08;Visual Geometry Group, VGG&#xff09;提出的一种深层卷积网络结构&#xff0c;他们以 7.32% 的错误率赢得了 2014 年 ILSVRC 分类任务的亚军&#xff…

2023-2024 年广东省职业院校技能大赛高职组 “软件测试”赛项竞赛规程

2023-2024 年广东省职业院校技能大赛&#xff08;高职组&#xff09; “软件测试”赛项竞赛规程 一、赛项信息 赛项名称&#xff1a;软件测试 赛项编号&#xff1a;GZ034 赛项组别&#xff1a;高职组 二、竞赛目标 软件是新一代信息技术的灵魂&#xff0c;是数字经济发展的基础…

Java 泛型深入解析

Java 中的泛型是一种强大的编程特性&#xff0c;允许我们编写更加通用和类型安全的代码。本篇博客将深入探讨 Java 泛型的各个方面&#xff0c;包括泛型类、泛型方法、泛型接口以及泛型通配符。 1. 泛型类 首先&#xff0c;让我们看一个简单的泛型类的例子。在下面的代码中&a…

云原生架构未来发展趋势,探索容器技术未来的发展趋势

云原生架构未来发展趋势&#xff0c;探索容器技术未来的发展趋势 云原生架构未来发展趋势容器技术发展趋势无处不在的计算催生新一代容器实现深入分布式云&#xff08;从多云/混合云&#xff0c;到分布式云&#xff09;云原生操作系统Kubernetes已经成为云时代的操作系统从无状…

【开源】基于JAVA语言的高校宿舍调配管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能需求2.1 学生端2.2 宿管2.3 老师端 三、系统展示四、核心代码4.1 查询单条个人习惯4.2 查询我的室友4.3 查询宿舍4.4 查询指定性别全部宿舍4.5 初次分配宿舍 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的…

10+免费图片素材/壁纸网站,搭一些图片处理工具,快收藏!

划到最后“阅读原文”——领取工具包&#xff08;超过1000工具&#xff0c;免费素材网站分享和行业报告&#xff09; Hi&#xff0c;我是胡猛夫~&#xff0c;专注于分享各类价值网站、高效工具&#xff01; 更多资源&#xff0c;更多内容&#xff0c;欢迎交流&#xff01;公 号…

计算机网络(10):下一代因特网

下一代网际协议 IPv6(IPng) 解决IP地址耗尽的措施 要解决IP地址耗尽的问题&#xff0c;可以采用以下三个措施&#xff1a; (1)采用无分类编址CIDR&#xff0c;使IP地址的分配更加合理。 (2)采用网络地址转换NAT方法&#xff0c;可节省许多全球IP地址。 (3)采用具有更大地址空…

chromium在中文用户名下无法编译的问题

新电脑没有太注意&#xff0c;起用户名的时候用了中文。 在编译chromium104的代码时&#xff0c;因为环境变量有中文导致编译失败&#xff1a; 因为我的电脑默认是使用gbk编码&#xff0c;而不是utf-8编码。 这个问题有三种解决办法&#xff1a; &#xff08;一&#xff09;把…

synchronized锁的底层原理

synchronized 锁是 Java 中用于实现线程同步的关键字。它提供了一种简单而有效的方式来确保多个线程之间的互斥访问。底层原理可以通过 Java 的内存模型和对象监视器锁&#xff08;Monitor Lock&#xff09;来理解。 Monitor结构如下&#xff1a; 在 Java 的内存模型中&#x…

微服务注册中心之Eureka

微服务注册中心之Eureka eureka 搭建集群 版本说明 Spring Boot 2.1.7.RELEASE spring-cloud-starter-netflix-eureka-server Finchley.SR2 spring-boot-starter-security 2.1.7.RELEASE pom.xml 文件 <?xml version"1.0" encoding"UTF-8"?> &l…

水稻潜在产量估算解决方案

1.背景与技术路线 统计资料表明&#xff0c;尽管我国粮食单产已由 50 年代初期的 1.2t/ha 增加到如今的 5.2t/h&#xff0c;粮食产量增加了 4 倍&#xff0c;但我国人口的增长速度与气候变化导致的农业生产的不确定性&#xff0c; 在水稻收获指数保持稳定的情况下&#xff0c;…

2397. 被列覆盖的最多行数

给你一个下标从 0 开始、大小为 m x n 的二进制矩阵 matrix &#xff1b;另给你一个整数 numSelect&#xff0c;表示你必须从 matrix 中选择的 不同 列的数量。 如果一行中所有的 1 都被你选中的列所覆盖&#xff0c;则认为这一行被 覆盖 了。 形式上&#xff0c;假设 s {c1…

LRU的设计与实现(算法村第五关黄金挑战)

146. LRU 缓存 - 力扣&#xff08;LeetCode&#xff09; 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存…

[Javaweb/LayUI/上机考试作业/开源]学生/图书/课程/仓库等管理系统六合一基础功能通用模板

展示 考试要求 给定用户表和六张图书/教师/顾客/仓库....的表&#xff08;随机给每人抽选&#xff09;&#xff0c;要求实现用户登录注册&#xff0c;异步更新&#xff0c;对物品增删改查&#xff0c;精确/模糊查询等。 环境 tomcat 9 mysql 8 java 17 项目结构 项目类图 写前…