• unity随记


    对于tilemap ,需要设置碰撞体的话应该为其选择专用的tilemap collider2D (假设是2d游戏)。注意,直接给对象tilemap加会导致整张地图都无法移动,如果为部分地图设置碰撞体,需要在资源里的rule tile(看自己用的是什么瓦片地图)中,针对不同的砖块,不需要碰撞的collider type从sprite改成none。

     另:rule override tile可以让一套瓦片继承另一套瓦片的拼接规则,但是他们的碰撞体设置也会被继承。如果需要让瓦片组B的碰撞体能单独设置,需要使用advanced rule override tile。

    此外,每个瓦片都是一个碰撞体,存在微小的间隙。为了减少计算量、防止bug;给瓦片地图设置碰撞体时,在rigidbody中勾选used by composise,type选择static,并增加一个composite collider。这样一来i,一堆碰撞体就会被合并成一个大的碰撞体。

    --------------------------

    碰撞体collider组件里有一个选项trigger,即触发器。打开触发器功能,意味着碰撞体发生碰撞时,只记录发生了碰撞,但不阻止移动。这就意味着对象B可以穿过刚体A,但触发器会启动。

    触发器有三种方法:进入(enter)、停留(stay)和离开

    enter只在物体B进入物体A碰撞体范围时触发一次,stay则是进入后每帧触发一次(需要设置slppeing mode为never sleep,不然物体停止移动时会进入休眠,不再触发)

    在使用了触发器的物体上,可以用

    void OnTriggerEnter2D(Collider other)   这个方法来写发生触发时的行为,other就是碰到携带当前脚本对象的那个碰撞者。

    -------------------------------------

    如果不勾选触发器,则二者碰撞时可以使用对应的碰撞方法。

    如:OnCollisionEnter2D(Collision2D other)  

  • 相关阅读:
    pytorch实现rnn并且对mnist进行分类
    python中的list按照某一列进行排序的方法
    pytorch实现style transfer
    Pytorch基本变量类型FloatTensor与Variable
    Linux上统计文件夹下文件个数以及目录个数
    python调用caffe实现预测
    python调用caffe环境配置
    JS实现唤起手机APP应用,如果本地没有则跳转到下载地址
    PHP开发中使用的工具
    Linux安装redis服务
  • 原文地址:https://www.cnblogs.com/namezhyp/p/16254075.html
Copyright © 2020-2023  润新知