美文网首页
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 物理模拟物体碰撞入射与反射

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

  • Unity笔记

    Unity3D 官方文档 2D游戏的起始2 2D物理 全局设置与刚体 Unity5.6 2D物理引擎Effecto...

  • Physics Reference 2D--Physics Ma

    Physics Material 2D用于调整二维物理物体碰撞时产生的摩擦和弹跳。 Friction:碰撞器的摩擦...

  • 【Box2D】物理引擎入门001

    一、什么是Box2D Box2D是一个强大的开源物理游戏引擎,用来模拟2D刚体物体运动和碰撞,由Erin Catt...

  • Android--利用Box2d重力引擎打造小球碰撞效果

    Box2d是一个强大的开源物理游戏引擎,使用c/c++编写,用来模拟2D的物体运动和碰撞。Box2D内部集成了大量...

  • 物体设置专题

    物品设置 遮挡效果 添加 box collider 2d 有碰撞效果 要想一个物体有物理效果需要添加Rigidbo...

  • 如何优化.so mmap内存占用

    1)如何优化.so mmap内存占用 2)模拟器下物理碰撞失效 3)Unity RenderTexture的释放在...

  • SceneKit 物理碰撞

    前言 SceneKit使用SCNPhysicsWorld来管理这种物理模拟,让物体的碰撞、连接、掉落等具有真实感。...

  • 渲染

    Intensity = Material (Light, Eye) 渲染模型 光照模型(模拟入射光)和反射模型(光...

  • 反射率

    其实真实世界的物体本身谈不上颜色, 它只是在反射, 而入射光乘以反射率决定了我们看到的样子。 黑色的物体代表反射率...

网友评论

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

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