【unity笔记】三、冰山碰撞变成碎块效果

一、模型准备

共需准备两个模型,一个原始模型,一个破碎后的模型。
破碎后的模型制作教程:

  1. 下载Blender 导入原始模型
  2. 在添加偏好设置中添加Cell Fracture插件,调整模型碎裂效果。
  3. 导出,保存到项目预制体文件夹。
    在这里插入图片描述

二、导入项目

将原始文件预制体拖入场景中,添加刚体,碰撞器等组件。组件属性效果根据项目自行调优。
在这里插入图片描述

三、为冰山添加自定义脚本

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

public class IceBreak : MonoBehaviour
{
    public GameObject brokenAfter; // 冰块破碎后的预制体
    public float forceMultiplier = 1.0f; // 施加给碎片的力的倍数
    public float maxRotationSpeed = 10.0f; // 碎片的最大旋转速度

    void OnCollisionEnter(Collision collision)
    {

        Debug.Log("碰到了");

        BreakIce();
        return;
    }

    //碰撞效果
    void BreakIce()
    {
        // 销毁原始冰块
        Destroy(gameObject);
        /*gameObject.SetActive(false);*/


        // 实例化破碎的冰块碎片
        if (brokenAfter != null)
        {
            // 在冰块位置实例化碎片
            GameObject pieceInstance = Instantiate(brokenAfter, transform.position, Quaternion.identity);

            //获取每个碎片子对象
            GameObject[] p = new GameObject[pieceInstance.transform.childCount];
            for (int i = 0; i < p.Length; i++)
            {
                p[i] = pieceInstance.transform.GetChild(i).gameObject;

                //为碎片添加刚体
                Rigidbody rb = p[i].AddComponent<Rigidbody>();
                rb.mass = 10000; //质量
                rb.drag = 10;    //阻力
                rb.useGravity = true; //重力
                rb.angularDrag = 2; //角阻力

                //为子对象添加Crest框架浮力脚本
                var s = p[i].AddComponent<SimpleFloatingObject>();
                s._boyancyTorque = 2f;
                s._accelerateDownhill = 0.15f;

                //添加网格碰撞器
                MeshCollider Collider = p[i].AddComponent<MeshCollider>();
                Collider.convex = true; //碰撞器形状设为凸面



                // 随机施加力和旋转速度
                Vector3 force = Random.insideUnitSphere * forceMultiplier;
                rb.AddForce(force, ForceMode.Impulse);
            }



        }
    }
}

四、效果展示

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/717147.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3d模型怎么加室外场景渲染的步骤---模大狮模型网

在进行3D模型渲染时&#xff0c;将其放置在室外场景中可以提高渲染效果和真实感。以下是将3D模型加入室外场景的步骤&#xff1a; 1. 选择合适的场景&#xff1a;首先需要选择合适的室外场景&#xff0c;例如城市街道、森林、海滩等等。选择场景时需要考虑模型的大小和比例&…

教育培训系统(FastAdmin+ThinkPHP+Unipp)

引领学习新风尚 &#x1f4da; 引言&#xff1a;教育新篇章 随着科技的不断发展&#xff0c;教育形式也在不断创新与变革。教育培训系统作为这一变革的重要载体&#xff0c;正逐渐改变着我们的学习方式。今天&#xff0c;就让我们一起探索教育培训系统的魅力&#xff0c;看看它…

Navicat和SQLynx功能比较三(数据导出:使用MySQL近千万数据测试)

数据导出的功能在数据库管理工具中是最普遍的功能之一。所以数据导出的功能稳定性和性能也是数据库管理工具是否能很好地满足应用需求的一个考虑因素。 目录 1. 整体比较 2. 示例 2.1 前置环境 2.2 Navicat导出 2.3 SQLynx导出 2.4 性能对比结果&#xff08;690万行数据&…

浙江电信联合中兴通讯取得新突破,完成融合边缘商用验证

前不久&#xff0c;浙江电信联合中兴通讯在融合边缘方面取得新突破&#xff0c;在嘉兴完成了融合边缘的商用验证&#xff0c;并发布了商用版本。接下来&#xff0c;双方在融合边缘方面正式进入商用阶段&#xff0c;有效赋能新质生产力。    随着数字经济的快速发展&#xff0…

github国内加速访问有效方法

这里只介绍实测最有效的一种方法&#xff0c;修改主机的Hosts文件&#xff0c;如果访问github网站慢或者根本无法访问的时候可以采用下面方法进行解决。 1、搜索一个IP查询网站 首先百度搜索选择一个IP查询的网站&#xff0c;这里我用下面这个网站&#xff08;如果该网站失效…

C#——类和对象详情

类和对象 类 类是一种数据结构&#xff0c;它可以包含数据成员&#xff08;常量和字段&#xff09;、函数成员&#xff08;方法、属性、事件、索引器、运算符、实例构造函数、静态构造函数和析构函数&#xff09;以及嵌套类型。类类型支持继承&#xff0c;继承是一种机制&…

【大分享04】OFD版式赋能政务服务电子文件归档和电子档案管理

关注我们 - 数字罗塞塔计划 - 本篇是参加由电子文件管理推进联盟联合数字罗塞塔计划发起的“大分享”活动投稿文章&#xff0c;来自北京数科网维技术有限责任公司&#xff0c;作者&#xff1a;张严。 PART1 政务服务电子文件归档和电子档案管理背景 政务服务是政务服务机构…

3大法则教你高效制定奖励规则(含参考案例)

在实施全民分销的过程中&#xff0c;SaaS产品方和合作伙伴推广者之间的合作关系可以用河马与牛椋鸟之间的共生关系来形容——牛椋鸟以栖息在河马背上并清理其身上的昆虫为生。这种关系对两者来说都是极其有益的&#xff1a;牛椋鸟获得了稳定的食物来源&#xff0c;而河马则有效…

在线预览多类型文件_全栈

目录 一、下载运行项目 二、项目功能 三、前端项目引用 四、文件预览样式更改 在做项目时经常用到在线预览文件&#xff0c;给大家介绍一个好用的在线预览文件项目。使用技术是后端Java&#xff0c;前端Freemarker模板。 FreeMarker 特别适应与 MVC 模式的 Web 应用&#x…

全篇创新点!图像融合9大魔改创新方案,暴力涨点

在处理复杂图像数据和提升图像质量时&#xff0c;采用图像融合的技术是个更好的选择。 这是因为&#xff1a;图像融合能够整合来自不同图像源的信息&#xff0c;为我们提供比单一图像更丰富、更全面、更高质量的图像数据。这种技术不仅减少了数据冗余&#xff0c;还增强了图像…

Excel批量删除括号里内容,帮你轻松应对!

某次&#xff0c;刘小生从系统导出的人员信息中&#xff0c;“姓名”字段信息中包含了工号信息&#xff0c;需要将“原姓名”中的“工号、括号”信息删除&#xff0c;如果一个一个删除工作量很大&#xff0c;刘小生想到可以用“通配符*”批量替换&#xff0c;解放双手&#xff…

Java小结

# Java的特点 Java是一门面向对象的编程语言。面向对象和面向过程的区别参考下一个问题。 Java具有平台独立性和移植性。 Java有一句口号&#xff1a;Write once, run anywhere&#xff0c;一次编写、到处运行。这也是Java的魅力所在。而实现这种特性的正是Java虚拟机JVM。已…

【IPython使用技巧整理】内省功能历史命令执行Shell命令运行脚本导出为其他格式

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

【PyQt5】一文向您详细介绍 self.setWindowTitle() 的作用

【PyQt5】一文向您详细介绍 self.setWindowTitle() 的作用 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普…

部署远程控制台访问服务Rttys,第三部分服务端(安装Rttys)

安装服务端Rttys之前可选先在客户端安装rtty。服务端采用GO语言实现&#xff0c;前端界面采用vue实现。 CMAKE的安装和客户端RTTY的安装请参考前两篇文章&#xff1a; Linux远程连接程序工具选型 Webssh与Rtty 部署远程控制台访问服务Rttys&#xff0c;第一部分客户端&#…

apollo配置中心入门实践

说明&#xff1a; &#xff08;如果微服务开发没有严格统一的代码开发规范&#xff0c;不建议采用apollo&#xff0c;否则只会更浪费时间在一堆配置上&#xff09; 通常情况下&#xff0c;我们无论是但模块开发&#xff0c;还是微服务多模块开发&#xff0c;都采用springboot…

3D元宇宙虚拟主播引领文旅产业迈向更加美好的未来!

随着文旅产业的蓬勃发展&#xff0c;3D数字代言人的应用正逐渐改变着传统的文旅传播方式。文旅3D数字代言人搭建编辑器的出现&#xff0c;正是满足大部分文旅产业借助数字人浪潮&#xff0c;将传统文化与现代科技完美融合的创新之举。 文旅3D数字代言人搭建编辑器不仅满足了Z世…

TQZC706开发板教程:10G光口ping测试

资源分享链接&#xff1a;https://pan.baidu.com/s/1zoUFCXx34qT8lm13YyyOxw提取码&#xff1a;k77h 调整右下角的拨码开关为↑↓↓↑↑ 从原理图中可以看出设置为156.25MHz&#xff0c;10Gige模式 启动模式设置为SD模式&#xff0c;把提供的文件复制到SD卡中&#xff0c;插上…

EasyRecovery2024汉化免费版电脑数据恢复软件下载

亲爱的小伙伴们&#xff0c;今天我要给大家分享一个超级好用的电脑数据恢复软件——EasyRecovery&#xff01;&#x1f310;✨ 相信很多人都遇到过误删文件、格式化硬盘等尴尬情况吧&#xff1f;别担心&#xff0c;有了EasyRecovery&#xff0c;这些问题都能迎刃而解啦&#xf…

树形喇叭状异形创意LED显示屏正在成为设计师们手中的神来之笔

异形创意LED显示屏以其独特的形状和强大的视觉冲击效果&#xff0c;正逐渐改变着我们的视觉体验。不同于传统的矩形、平面板状的LED显示屏&#xff0c;异形屏以其形状各异、造型奇特的特点&#xff0c;为商业显示、展览展示、文旅旅游等行业带来了全新的变化。本文将重点介绍异…