Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(207评价)
优惠后 ¥1899.00优惠前 ¥2499.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

[零基础入门 unity2D Roguelike拾荒者] 角色与物体之间的碰撞检测未实现
Mrite发起了问答2020-09-02
4
回复
497
浏览

在给外围墙与墙添加BoxCollider2D,给角色添加了BoxCollider2D与刚体并按照课程编写了代码,角色依然会穿出围墙。

(使用的Unity版本为2019.2.8f1)

角色的监视面板如下:

围墙的监视面板如下:

相关代码:

//检测
            collider.enabled = false;  //先把自身collider禁用,避免与自身发生碰撞
            RaycastHit2D hit = Physics2D.Linecast(targetPos, targetPos + new Vector2(h, v));
            collider.enabled = true;   
            if(hit.transform == null)
            {
                targetPos += new Vector2(h, v);
                restTimer = 0;
            }
            else
            {
                switch(hit.collider.tag)
                {
                    case "OutWall":
                        break;
                    case "Wall":
                        break;
                }
            }


private Rigidbody2D rigidbody;
private BoxCollider2D collider;

void Start()
    {
        rigidbody = GetComponent<Rigidbody2D>();
        collider = GetComponent<BoxCollider2D>();
    }

float h = Input.GetAxisRaw("Horizontal");
float v = Input.GetAxisRaw("Vertical");



所有回复
  • 老师_Trigger • 2020-09-02

    同学你好,把刚体设置成Dynamic模式

    • Mrite • 2020-09-02

      Dynamic模式也不行,老师。我之前就是使用了Dynamic模式失败了才调整为Kinematic模式的。结果还是不行,角色依旧会冲出界面。

      (0) 回复
    • 老师_Trigger • 2020-09-03

      回复 @ Mrite: 看一下是否在同一个平面,检查一下Z轴,还不行工程打包发老师邮箱1925774628@qq.com,老师帮忙看看,发完在这边回复一下老师,标注问题和使用的版本

      (0) 回复
    • Mrite • 2020-09-04

      回复 @ 老师_Trigger: 老师,问题解决了。围墙我设成BoxCollider了,应该是BoxCollider2D,而且自己设的sortlayer也不在同一层次。

      (0) 回复
    还有-2条回复,点击查看
    你还没有登录,请先登录或注册!
发表回复
你还没有登录,请先 登录或 注册!