首页 > 其他分享 >2-1. 设置人物及基本组件

2-1. 设置人物及基本组件

时间:2024-02-23 15:55:18浏览次数:29  
标签:Collider 人物 碰撞 2D 添加 设置 组件 刚体

添加刚体

在 Rigidbody 2D 上面有 Gravity Scale,这表示人物收到的重力比例是1。重力参数可以通过 Project Settings -> Physics 2D,找到 Gravity 的系数。此外物理更新的 Fixed Update 函数会进入,就是因为 Simulation Mode 设置了 Fixed Update

另外记得把人物的刚体限制给锁定住,防止人物倒下去

另外还需要记得把 Collision Detection 改为 Continuous,因为人物以后会滑铲、爬墙,会有很多动作,需要更精准的碰撞检测

有啥不懂,可以直接点击右上角的问号,打开文档

添加碰撞体

目前人物收到重力影响,会不断往下掉,因此需要用碰撞体来接住他

人物添加碰撞体

人物自身需要添加 Capsule Collider 2D,调整碰撞体的时候,可以先点击编辑点,在按住 alt 键,这样就能以中心点调整碰撞体大小

平台添加碰撞体

平台需要添加 Tilemap Collider 2D,添加完毕之后,可以看到每个各自都有方形的碰撞体,这样效率太低了

我们需要把这些碰撞体统一成一个碰撞体,所以再添加 Composite Colldier 2D,并且勾选 Tilemap Collider 2D 上面的 Used By Composite。添加 Composite Collider 2D 会自动添加一个 Rigidbody 2D 上去,因此需要把刚体类型改为 static 防止刚体掉下去

项目相关代码

代码仓库:https://gitee.com/nbda1121440/2DAdventure.git

标签:20240223_1537

标签:Collider,人物,碰撞,2D,添加,设置,组件,刚体
From: https://www.cnblogs.com/hellozjf/p/18029751

相关文章

  • 打造纯Lua组件化开发模式:Unity xLua框架详解
    在传统的Unity开发中,通常会使用C#来编写游戏逻辑和组件。但是,随着Lua在游戏开发中的应用越来越广泛,我们可以将游戏逻辑和组件完全用Lua来实现,实现纯Lua的组件化开发模式。这样做的好处是可以更加灵活地修改游戏逻辑,而不需要重新编译C#代码。 3.实现步骤对啦!这里有个游戏开......
  • 文件自动拷贝到桌面及设置桌面显示此电脑
    uname="$env:USERPROFILE"$uname=$uname.Substring($uname.length-8)$checkpath=test-path\\xx.xx.xxx.xxx\xx\xx\*.lnkif($checkpath-eq"True"){copy-item\\xx.xx.xxx.xxx\xx\xx\*.*-destination\\xxx\xx$\$uname......
  • 04. 场景绘制和叠层设置
    将素材中的Forest-1进行切割spritemode改为Multiplepixelperunit改为16FilterMode改为Point(nofilter)Compression改为None切割图片的时候,按大小16x16进行切割,pivot改成中间创建瓦片调色盘打开Window->2D->TilePalette创建新的调色盘,把调色......
  • Vue动态组件
    components简介在不同组件之间进行动态切换Vue的元素加一个特殊的【is】属性来实现多个组件使用同一个挂载点,之后动态在各个组件之间切换内置组件keep-alivekeep-alive动态组件默认每次切换都会销毁组件并重新创建,这样会影像性能使用keep-alive组件缓存非活动组件,可以保留......
  • Rocky9和CentOSStream9怎么设置固定IP地址
    Rocky9和CentOSStream9设置固定IP地址和CentOS不一样设置设置以下文件#cat/etc/NetworkManager/system-connections/ens3.nmconnection[connection]id=ens3uuid=322d81cf-5218-304d-b537-ddbb2a0eed07type=ethernetautoconnect-priority=-999interface-name=ens3times......
  • ssts-hospital-web-master项目实战记录十:master-*.vue组件实现
    记录时间:2024-02-23Master_Basic.html<!DOCTYPEhtml><htmlxmlns="http://www.w3.org/1999/xhtml"><head>  <title>主页</title>  <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"......
  • ssts-hospital-web-master项目实战记录九:父组件App.vue给子组件main-page*.vue传值ter
    记录时间:2024-02-23一、App.vue详见:App.vue组件实现 【使用“文心一言”提取组件传值逻辑说明和代码】在Vue3中,组件传值通常涉及到props、emits、slots和组件的引用。在提供的代码中,主要关注点是动态组件的渲染和通过props传递数据。下面是对组件传值逻辑的说明和代码......
  • ssts-hospital-web-master项目实战记录八:App.vue组件实现
    记录时间:2024-02-23App.vue<scriptsetuplang="ts">import{defineComponent,ref,computed,onMounted,onUnmounted}from'vue'importMainPage1from'@/views/main-page/main-page1.vue'importMainPage2from'@/views......
  • vue3+elment-plus项目,el-diglog的按钮,内部是el-form的子组件,那么保存时,如何触发子组件
    问题:el-diglog的按钮,如何触发内部的form表单提交el-dialog是父组件,cengji是子组件代码如下:<el-dialogv-model="dialogVisible"title="层级结构管理"width="1000"><cengji:tableId="tableId"/><template#footer>......
  • 关于uni-easyinput组件的获焦和失焦
    问题描述此组件的获焦和失焦事件,在第一次执行获焦方法后,主动点击失焦。然后再执行获焦方法,会发现本次的获焦方法未生效。流程如下<uni-easyinputref="inputElem"v-model="value"/>constinputElem=ref(null)//step1、第一次执行获焦方法。结果:生效,成功获焦inputElem.va......