美文网首页
Unity 2d 物理模拟物体碰撞入射与反射

Unity 2d 物理模拟物体碰撞入射与反射

作者: MFGame | 来源:发表于2018-08-09 13:48 被阅读0次

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

    public class PlayerControl : MonoBehaviour
    {

    private Rigidbody2D rigidbody2D;
    private Vector2 m_preVelocity = new Vector2(4, 0);
    // Use this for initialization
    void Start()
    {
        rigidbody2D = transform.GetComponent<Rigidbody2D>();
    
    }
    
    // Update is called once per frame
    void Update()
    {
    
    }
    private void OnMouseDown()
    {
        rigidbody2D.AddForce(new Vector2(1, 0) * 200);
    }
    
    public void OnCollisionEnter2D(Collision2D other)
    {
        ContactPoint2D contactPoint = other.contacts[0];//获取接触点
        Vector2 newDir = Vector2.zero;
        Vector2 curDir = transform.TransformDirection(Vector2.right);
        newDir = Vector2.Reflect(curDir, contactPoint.normal);//计算反射角
        Quaternion rotation = Quaternion.FromToRotation(Vector2.right, newDir);
        transform.rotation = rotation;
        rigidbody2D.velocity = newDir.normalized * m_preVelocity.x / m_preVelocity.normalized.x;
    }
    

    }

    相关文章

      网友评论

          本文标题:Unity 2d 物理模拟物体碰撞入射与反射

          本文链接:https://www.haomeiwen.com/subject/nugqbftx.html