unity2d 碰撞回弹

XY轴横版游戏中,两个角色碰撞时受力会互相撞飞。简单是思考以后想到两个办法。

1、重写碰撞(没研究过)

 

2、使用Oncollisionenter改变受力

unity2d 碰撞回弹_第1张图片

 

此效果没有撞飞效果,但持续移动还是可以可以把角色缓慢推开。

 

第二种就是

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Oncollisionenter : MonoBehaviour

    private Rigidbody2D m_rigidbody;

    private void Start()
    {
        m_rigidbody = this.GetComponent();
    }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        m_rigidbody.constraints = RigidbodyConstraints2D.FreezeAll;

        Debug.Log("开始碰撞");
    }

    private void OnCollisionStay2D(Collision2D collision)
    {
        Debug.Log("持续碰撞");
    }

    private void OnCollisionExit2D(Collision2D collision)
    {
        m_rigidbody.constraints = RigidbodyConstraints2D.FreezeRotation;
        Debug.Log("离开碰撞");
    }
}

 

也可以达到此效果,目前暂且使用吧

你可能感兴趣的:(unity2d 碰撞回弹)