Unity中传送带的实现

早上看到传送带感觉还挺有意思 简单实现下

效果如下(录制一秒2帧 实际十分平滑):

rigbody.position+=

我们来看下当传送带进行position位移会发生什么

rigbody.Moveposition()

首先看下官方文档2018.4

public void MovePosition (Vector3 position);
//描述 将刚体移动到 /position/。使用 Rigidbody.MovePosition 移动刚体,符合刚体的插值设置。如果在刚体上启用了刚体插值,则调用 Rigidbody.MovePosition 会导致在渲染的任意中间帧中的两个位置之间平滑过渡。若要在每个 FixedUpdate 中连续移动刚体,则应使用该方法。若要将刚体从一个位置传送到另一个位置,并且不渲染任何中间位置,请改为设置 Rigidbody.position。如果将刚体的 isKinematic 设置为 false,则其以不同的方式工作。 它的工作方式类似于 transform.position=newPosition 并传送对象 (而不是平滑过渡)。

简单来说 对于运动学刚体,它基于刚体的运动应用摩擦力。这个让你模拟刚体位于移动平台之上的情况。如果你想其他的刚体与运动学刚体交互,你需要在FixedUpdate函数中移动它

看下只使用MovePosition 效果 传送带为 isKinematic=true;

简单总结

当我们使用MovePosition时 传送带与方块之运动基于刚体的摩擦力(材质中摩擦力设置为0 则不会出现第二个效果)

传送时运送物体相对于传送动,如果我们在使用MovePosition后重新将传送带位置置为上一帧的位置 就实现了物体相对传送带位移的效果

传送带代码如下需要手动设置方向 方块不需要添加脚本 只需要添加刚体即可

using UnityEngine;
public class Conceyor : MonoBehaviour
{public Vector3 direction=Vector3.right;//传送带传送方向public float movespeed=1f;//传送速度 速度过快会飞出去private Rigidbody _rig;void Start(){_rig = GetComponent<Rigidbody>();}void Update(){}private void FixedUpdate(){Vector3 pos = _rig.position;Vector3 temp = -direction.normalized * movespeed * Time.fixedDeltaTime;//实际移动方向与direction相反这里取反_rig.position += temp;_rig.MovePosition(pos);}
}

Unity中传送带的实现相关推荐

  1. 学习在Unity中创建一个动作RPG游戏

    游戏开发变得简单.使用Unity学习C#并创建您自己的动作角色扮演游戏! 你会学到什么 学习C#,一种现代通用的编程语言. 了解Unity中2D发展的能力. 发展强大的和可移植的解决问题的技能. 了解 ...

  2. 学习用C#在Unity中创建一个2D Metroidvania游戏

    学习用C#在Unity中创建一个2D Metroidvania游戏 你会学到: 构建2D Unity游戏 用C#编程 玩家统计,水平提升,米尔和远程攻击 敌方人工智能系统 制定级别和级别选择 Lear ...

  3. 在Unity中制作4种不同的游戏

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:8.6 GB 含课程素材 |时长:15h ...

  4. 学会在Unity中创建一个Match-3益智游戏 Learn To Create a Match-3 Puzzle Game in Unity

    MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:48场讲座(6h 38m) |大小解压后:2.8 G ...

  5. Unity中创建本地多人游戏完整案例视频教程 Learn To Create A Local Multiplayer Game In Unity

    Unity中创建本地多人游戏完整案例视频教程 Learn To Create A Local Multiplayer Game In Unity MP4 |视频:h264,1280x720 |音频:A ...

  6. C#开发Unity游戏教程之Unity中方法的参数

    C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号"( )",有意义吗?看起来最 ...

  7. Unity中制作游戏的快照游戏支持玩家拍快照

    Unity中制作游戏的快照游戏支持玩家拍快照 有些游戏支持玩家"拍快照",也就是将游戏的精彩瞬间以图片的形式记录下来的功能.这个功能比较有趣,而且以后的用途也会很广,为此本节打算介 ...

  8. 如何在Unity中添加三维空间声音Spatial Sounds

    hololens的声音模块是头戴环上,靠近耳朵上方的一个红色的模块,三维空间声音感效果还不错,本文主要讲述如何在项目中使用空间声音特性.我们主要讲述必须的插件组件和unity声音组件和属性的设置来确保 ...

  9. unity项目源码_在Unity中使用protobuf

    Protocol Buffers (通常简称为protobuf) 是Google开发的一种格式,这种格式与开发语言无关.与运行平台无关,用于序列化结构数据,并且很容易扩展.这种格式可以用于通信协议.数 ...

最新文章

  1. Django1.7开发博客
  2. wmi接口如何通过Win32_Volume类修改盘符
  3. DB2 常用命令小结
  4. 101次从入门到放弃,终于找到一个数据分析利器!
  5. JimuReport积木报表——分组报表怎么做
  6. CentOS切换运行级别 图形模式/命令行模式
  7. 【Leetcode】Python实现字符串转整数 (atoi) - 详细备注,保证小白看懂
  8. html把多个div做成块,HTML块
  9. 榛子云短信-微信小程序60秒倒计时插件
  10. Python微信爬虫_00
  11. Python实现:超分子化学的建模------如何操控客体分子穿过主体分子和计算该过程能量变化(高斯(Gauss)输入文件为例,一键批量处理)
  12. Dev-cpp5.11下载
  13. apimanager-wso2-OKD-deploy
  14. GPU通用计算与CUDA
  15. 函数编程之Function
  16. JS基础 Set 用于存储任何类型的唯一值
  17. 请求与通配符 mime 映射相匹配。请求映射到静态文件处理程序。如果有不同的前提条件,请求将映射到另一个处理程序。...
  18. Ajax异步请求之设置Content-Type
  19. DP DD VTL 备份 NBU
  20. 2016-2017年江苏省留学生创业优惠政策及创业补贴

热门文章

  1. 编写代码实现:模拟用户登入情景
  2. Netty —— Netty 模型
  3. android内嵌套cocos2dx,Cocos2dx项目嵌入到Android原生项目中
  4. Mysql使用大全(MySQL架构与存储引擎 、事务 、业务设计 、索引 、数据结构 、执行计划 、数值类型)
  5. 吴以岭委员:中药企业创新风险大 必须迎难而上
  6. Spring Boot 9 :详细描述Spring Boot + Vue项目部署过程:Centos为例(重点)
  7. 瑞幸点燃导火索,兄弟公司神州租车迎大变局
  8. 莪的拽、像省田各号①样没尽頭队——需求改进原型设计
  9. 美图php面试题目,据说是雅虎的一份PHP面试题附答案
  10. A2P模式下的e租宝是否值得投资