XY轴横版游戏中,两个角色碰撞时受力会互相撞飞。简单是思考以后想到两个办法。
1、重写碰撞(没研究过)
2、使用Oncollisionenter改变受力
此效果没有撞飞效果,但持续移动还是可以可以把角色缓慢推开。
第二种就是
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Oncollisionenter : MonoBehaviour
{
private Rigidbody2D m_rigidbody;
private void Start()
{
m_rigidbody = this.GetComponent<Rigidbody2D>();
}
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("离开碰撞");
}
}
也可以达到此效果,目前暂且使用吧