unity中移动方案--物理渲染分层

一、三种基本移动方案

        unity中的移动分为Transform和Rigidbody以及CharacterController,其中CharacterController功能完善,已经可以避免了穿墙,并实现了贴墙走等情况,需要结合性能考虑选择不同的方式。

1.使用transform,直接修改位置,无视碰撞

    1.transform.position

    2.transform.Translate

2.使用MovePosition /rigidbody.position会出现按住移动按钮,当移动速度过大的时候,顶着墙会出现模型挤到墙体中的情况

    1.rigidbody.velocity

    2.rigidbody.MovePosition /rigidbody.position

使用velocity则不会出现穿墙的情况

注意:

1.如果希望贴墙斜着走使用velocity,但不要锁住Rigidbody的Y轴旋转,当速度较大的时候,离开墙的时候,Rigidbody会出现类似陀螺一样继续旋转的情况,此时可以将角速度设置为Vector3.zero。

2.如果需要实现类似冲刺的功能,使用Rigidbody在快速冲刺后,如果碰到墙,还会出现弹飞的情况,记得在冲刺结束后将velocity,设置为Vector3.zero。

rigidbody.angularVelocity = Vector3.zero

二、顶着墙的时候,鬼畜碰撞

      这是因为如果在Update中修改了位置,unity会在FixedUpdate中进行物理检测,矫正位置,会出现    进入墙体内-->被物理系统挤出墙体-->进入墙体内-->被物理系统挤出墙体 的情况

为了避免这种情况,通常需要在FixedUpdate中设置物理位置

三、物理移动和渲染分层处理

      我们项目中为了保证FixedUpdate保持固定时间执行,且不会受到帧率影响,在Update的循环中,根据固定时长,实现了项目自定义的FixedUpdate函数,进行逻辑循环,由于unity中的物理计算是在自身的FixedUpdate函数内,因此要在需要的时间周期内(即移动指令设置后),手动调用物理模拟

Physics.SyncTransforms();
Physics.Simulate(fixedDeltaTime);

       为了保证移动在固定时间间隔内稳定,且性能、帧率可控,在FixedUpdate中实现物理层移动,待物理系统矫正位置后(即上述代码执行后),在LateUpdate中插值控制表现层的移动,从而模拟跟随物理层的移动。

       注意事项该方案其实是渲染层追物理层,因此存在一个FixedUpdate的时间间隔,如果速度过大,或者FixedUpdate时间间隔过大,会出现移动的过程中,表现上差一个FixedUpdate时间间隔的距离差异!静止中位置一致。

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

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

相关文章

鳄鱼指标的3颜色线都代表什么?澳福官网一段话明白了

投资者一直在使用鳄鱼指标进行交易,但是对指标上面的3种颜色的K线都代表什么不明白?直到看到澳福官网一段话才明白,原来这么简单! 鳄鱼指标,这一工具是由三条移动平均线组合而成。具体来说,蓝线&#xff0…

Spring Boot 3系列之-启动类详解

Spring Boot是一个功能强大、灵活且易于使用的框架,它极大地简化了Spring应用程序的开发和部署流程,使得开发人员能够更专注于业务逻辑的实现。在我们的Spring Boot 3系列之一(初始化项目)文章中,我们使用了Spring官方…

桶装水订水系统水厂送水小程序开发;

桶装水小程序正式上线,支持多种商品展示形式,会员卡、积分、分销等功能; 开发订水送水小程序系统,基于用户、员工、商品、订单、配送站和售后管理模块,对每个模块进行统计分析,简化了分配过程,提…

【教3妹学编程-算法题】最大单词长度乘积

3妹:哇,今天好冷啊, 不想上班。 2哥:今天气温比昨天低8度,3妹要空厚一点啊。 3妹 : 嗯, 赶紧把我的羽绒服找出来穿上! 2哥:哈哈,那倒还不至于, 不过气温骤降&…

【简朴PlainApp】通过浏览器就能管理手机文件的开源利器

简朴PlainApp 简朴是一个开源应用,允许您通过网络浏览器管理您的手机。您可以通过安全、易于使用的网络界面从桌面访问文件、视频、音乐、联系人、短信、通话记录等等! 这对于手机上文件较多的朋友来说,从任意电脑上管理手机文件的需求还是挺…

详解IPD需求分析工具$APPEALS

够让企业生存下去的是客户,所以,众多企业提出要“以客户为中心”,那如何做到以客户为中心?IPD中给出的答案是需求管理。 需求管理流程,是IPD(集成管理开发)体系中的四大支撑流程之一&#xff0…

【源码解析】Spring Bean定义常见错误

案例1 隐式扫描不到Bean的定义 RestController public class HelloWorldController {RequestMapping(path "/hiii",method RequestMethod.GET)public String hi() {return "hi hellowrd";}}SpringBootApplication RestController public class Applicati…

基于AOSP源码Android-10.0.0_r41分支编译,framework开发,修改系统默认字体大小

文章目录 基于AOSP源码Android-10.0.0_r41分支编译,framework开发,修改系统默认字体大小 基于AOSP源码Android-10.0.0_r41分支编译,framework开发,修改系统默认字体大小 主要修改一个地方就行 代码源码路径 frameworks/base/co…

python df.apply()函数

DataFrame.apply(func, axis0, rawFalse, result_typeNone, args(), by_row‘compat’, kwargs) 沿df的轴应用函数 func:对每行或者每列应用的函数axis{0 or ‘index’, 1 or ‘columns’}, default 0 0是列,1是行 rawbool, default False result_type**{‘expand…

单通道低压 H 桥电机驱动芯片AT9110H 兼容L9110 马达驱动芯片

H桥直流电机驱动电路是一种用于控制直流电机运转的电路,其主要特点是可以实现正反转控制,控制电机转速和方向,同时也具有过流保护功能。 H桥电路由四个功率晶体管和一些辅助电路组成,其中两个晶体管用于控制电机正转,…

【Linux】Nignx及负载均衡动静分离

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《微信小程序开发实战》。🎯&#x1f3a…

BGF-YOLO | 增强版YOLOV8 | 用于脑瘤检测的多尺度注意力特征融合

基于You Only Look Once(YOLO)的目标检测器在自动脑瘤检测中展现出卓越的准确性。在本文中,我们开发了一种新的BGF-YOLO架构,通过将双层路由注意力(BRA)、广义特征金字塔网络(GFPN)和第四检测头整合到YOLOv8中来实现。BGF-YOLO包含了一个注意力机制,用于更加关注重要的…

下载树莓派对应的64位Ubuntu系统步骤

说点废话:因为ros2需要安装在64位Ubuntu上面,所以安装64位最合适; 第一步打开https://cn.ubuntu.com/ 网站;选择下载--->iot----> 选择这个镜像文件下载。我觉得镜像文件是img格式的,跟iso文件区别是&#xff…

【Linux】 JumpServer 堡垒机远程访问

文章目录 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpS…

基于北方苍鹰算法的无人机航迹规划-附代码

基于北方苍鹰算法的无人机航迹规划 文章目录 基于北方苍鹰算法的无人机航迹规划1.北方苍鹰搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用北方苍鹰算法来优化无人机航迹规划。 …

VERT900 Antenna

782773-01 VERT900 Vertical Antenna (824-960 MHz, 1710-1990 MHz) Dualband Includes one VERT900 824 to 960 MHz, 1710 to 1990 MHz Quad-band Cellular/PCS and ISM Band omni-directional vertical antenna, at 3dBi Gain.

LazyVim: 将 Neovim 升级为完整 IDE | 开源日报 No.67

curl/curl Stars: 31.5k License: NOASSERTION Curl 是一个命令行工具,用于通过 URL 语法传输数据。 核心优势和关键特点包括: 可在命令行中方便地进行数据传输支持多种协议 (HTTP、FTP 等)提供丰富的选项和参数来满足不同需求 kubernetes/ingress-n…

Python unittest单元测试框架 TestSuite测试套件

TestSuite 测试套件简介 对一个功能的验证往往是需要很多多测试用例,可以把测试用例集合在一起执行,这就产生了测试套件TestSuite 的概念,它是用来组装单个测试用例,规定用例的执行的顺序,而且TestSuite也可以嵌套Tes…

【hcie-cloud】【1】华为云Stack解决方案介绍、华为文档获取方式 【上】

文章目录 华为文档获取方式前言云计算发展背景国家政策、社会发展驱动数字经济开启新时代深化数字化转型提升效率,国家数字主权云进入落地阶段从Cloud-Based到Cloud-Native,两种模式长期并存适合政企智能升级的云华为云Stack,政企智能升级首选…

如何利用AppScan扫描H5页面,进行安全测试?

前期项目组接触的都是Web安全测试,今天做安全测试的时候,有一个项目刚好有H5页面,用以前那种AppScan内置浏览器的探索方式是不行的,研究了下,可以使用外部设备进行探索。 AppScan有两种手动探索方式,一种是…