一:演示视频 二:代码实现 using UnityEngine; public class Ball : MonoBehaviour { private Rigid
一:演示视频
二:代码实现
using UnityEngine;
public class Ball : MonoBehaviour
{
private Rigidbody rigid;
private Vector3 lastDir;
public float speed = 30;
private void Awake()
{
rigid = GetComponent<Rigidbody>();
rigid.velocity = new Vector3(1, 0, 1) * speed;
}
private void LateUpdate()
{
lastDir = rigid.velocity;
}
private void OnCollisionEnter(Collision other)
{
if (other.gameObject.tag == "Wall")
{
Vector3 reflexAngle = Vector3.Reflect(lastDir, other.contacts[0].nORMal);
rigid.velocity = reflexAngle.normalized * lastDir.magnitude;
}
}
}
也可以添加
创建物理材质
修改值就可以发生反弹碰撞了
到此这篇关于Unity实现桌面反弹的示例代码的文章就介绍到这了,更多相关Unity 反弹内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Unity实现桌面反弹的示例代码
本文链接: https://www.lsjlt.com/news/127156.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0