当前位置: 首页 > news >正文

unity愤怒的小鸟学习制作(二)

终于又开始了啦啦啦,我有一个自己的相机了,真开心,诶嘿

视频链接和素材如下:视频


小鸟的飞出

想要让小鸟在拉开弹弓之后能飞出去,就必须让这个组件失活,如下

在这里插入图片描述

所以我们更改脚本内容,加入:

 private SpringJoint2D sp;private void Awake(){sp = GetComponent<SpringJoint2D>();}private void OnMouseUp()//当鼠标抬起就会调用该函数{isClick = false;sp.enabled = false;}

然后就可以看到小鸟飞出去的速度很大,需要修改。

可以通过小鸟是否加入动力学进行修改,这样速度就不会太大(讲真,没怎么听懂)
在这里插入图片描述

也就是,先修改成:
在这里插入图片描述

然后再将脚本修改成:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Bird : MonoBehaviour
{//要实现当鼠标一直按下时,小鸟的位置跟随鼠标的位置private bool isClick = false;public Transform rightPos;public float maxDis = 3;//最大距离是3米private SpringJoint2D sp;private Rigidbody2D rg;private void Awake(){sp = GetComponent<SpringJoint2D>();rg = GetComponent<Rigidbody2D>();}private void OnMouseDown()//当鼠标按下就会调用该函数{isClick = true;rg.isKinematic = true;//开启动力学}private void OnMouseUp()//当鼠标抬起就会调用该函数{isClick = false;rg.isKinematic = false;Invoke("Fly", 0.1f);}private void Update()//刷新{if (isClick)//鼠标一直按下,进行位置的跟随{transform.position = Camera.main.ScreenToWorldPoint(Input.mousePosition);//需要把小鸟的Z轴减去主摄像机的Z轴transform.position -= new Vector3(0, 0, Camera.main.transform.position.z);//保证z轴数值为0//transform.position += new Vector3(0,0,10);if (Vector3.Distance(transform.position, rightPos.position) > maxDis)//大于最大长度{Vector3 pos = (transform.position - rightPos.position).normalized;//单位化向量pos *= maxDis;//最大长度的向量transform.position = pos + rightPos.position;}}}//专门为了小鸟飞出写的函数void Fly(){sp.enabled = false;}
}

这样基本就可以了,但是如果需要微调的话,可以调节以下参数:

在这里插入图片描述
这里的Damping Radio就是阻尼系数,范围是0-1,系数越大,弹簧的弹力效果越不明显

小鸟和猪、木头的碰撞(死或者受伤)

因为小鸟飞出之后需要有一个平面来接住他,所以要新建一个空物体

也就是在Hierachy空白处右键点击,选择创建空物体
在这里插入图片描述
然后再将空物体归零

在这里插入图片描述
因为空物体要存放所有需要的环境之类的,所以重命名为env

接下来找到需要的主题,比如这个第一个主题,点击之后,在Spite Mode 这里,将Single改成Mutiple,然后点击下方的Apply
在这里插入图片描述

完成Apply之后点击Sprite Editor进行裁剪
在这里插入图片描述
虽然视频里面点击一下Trim就切割完成了,但是我没成功,就只好手动切割了,切割完成就点击Apply

在这里插入图片描述
然后将颜色较深的这个切割好的图片拖到上面

在这里插入图片描述
然后给图片添加一个碰撞盒
在这里插入图片描述

在这里插入图片描述
然后编辑碰撞盒
在这里插入图片描述

在这里插入图片描述
将盒子向下拉一点,再将这个图片放到env里面

在这里插入图片描述
在这里插入图片描述
然后不断复制粘贴拼接图片,在Scence里面放好小鸟的地面,如下:
在这里插入图片描述
尝试运行,发现小鸟飞的太快了,没有阻力

在这里插入图片描述
修改这个Angular Drag,因为这个值相当于空气阻力的一种,将其放大,测试,发现还可以

在这里插入图片描述
挑选一只猪,将其拖上去,然后摆放好位置

给这只猪加一个碰撞盒和一个Rigidbody2D

在这里插入图片描述

记得修改参数

在这里插入图片描述

现在开始给猪一个脚本,写关于他的碰撞死亡


using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Pig : MonoBehaviour
{// Start is called before the first frame updatepublic float maxSpeed = 10;public float minSpeed = 5;private SpriteRenderer render;public Sprite hurt;private void Awake(){render = GetComponent<SpriteRenderer>();}private void OnCollisionEnter2D(Collision2D collision){//相对速度print(collision.relativeVelocity.magnitude);if (collision.relativeVelocity.magnitude > maxSpeed)//直接死亡{Destroy(render);}else if(collision.relativeVelocity.magnitude > minSpeed&& collision.relativeVelocity.magnitude < maxSpeed){render.sprite = hurt;}}
}

然后再将hurt的对象变为小猪受伤的图片,104号

在这里插入图片描述
运行,感觉还不错

今日就到这里吧

相关文章:

unity愤怒的小鸟学习制作(二)

终于又开始了啦啦啦&#xff0c;我有一个自己的相机了&#xff0c;真开心&#xff0c;诶嘿 视频链接和素材如下&#xff1a;视频 小鸟的飞出 想要让小鸟在拉开弹弓之后能飞出去&#xff0c;就必须让这个组件失活&#xff0c;如下 所以我们更改脚本内容&#xff0c;加入&#…...

干外包3年,彻底寄了...

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了6年的功能测试&…...

软考高项论文范文(三)

论信息系统项目的沟通管理 【摘要】&#xff08;该摘要共313个字符&#xff09; 本文讨论了ⅹⅹ省社保系统民政统一软件开发项目的沟通管理。该项目是在国家大社会保险政策指导下于2018年10月份正式启动的。该系统为用户提供了优抚安置、救灾救济等十大主要业务功能。在本文中…...

浅谈谈谈OTA召回2023

近日&#xff0c;国家市场监督管理总局发布特斯拉召回公告&#xff0c;一下子掀起了互联网热议&#xff0c;这次召回的范围是在2019年1月12日至2023年4月24日期间国内销售特斯拉汽车&#xff08;含国产和进口共计110万辆车&#xff09;&#xff0c;在这个召回公告中有两点值得关…...

【GDI+】旋转文本/斜体字

一、需求 想要绘制如下所示的斜体字&#xff0c;45度 二、分析&思路 Graphics类有个 RotateTransform方法&#xff0c;可以传入任意角度的值来旋转画板。但是这个方法的旋转中心是画板的左上角&#xff0c;所以直接单单用这个方法不能满足我们的需求。此外&#xff0c; G…...

python3 面试题总结

Python global 语句的作用lambda 匿名函数好处Python 错误处理Python 内置错误类型简述 any() 和 all() 方法Python 中什么元素为假&#xff1f;提高 Python 运行效率的方法Python 单例模式为什么 Python 不提供函数重载实例方法/静态方法/类方法__new__和 __init __方法的区别…...

select poll epoll有什么区别

select/poll select 实现多路复用的方式是&#xff0c;将已连接的 Socket 都放到一个文件描述符集合&#xff0c;然后调用 select 函数将文件描述符集合拷贝到内核里&#xff0c;让内核来检查是否有网络事件产生&#xff0c;检查的方式很粗暴&#xff0c;就是通过遍历文件描述…...

Java基础面试题突击系列1

&#x1f469;&#x1f3fb; 作者&#xff1a;一只IT攻城狮 &#xff0c;关注我不迷路 ❤️《java面试核心知识》突击系列&#xff0c;持续更新… &#x1f490; 面试必知必会学习路线&#xff1a;Java技术栈面试系列SpringCloud项目实战学习路线 &#x1f4dd;再小的收获x365天…...

go-zero和dtm分布式事务实现

go-zero是一个基于Go语言的微服务开发框架&#xff0c;而DTM&#xff08;Distributed Transaction Manager&#xff09;是一个分布式事务管理器&#xff0c;用于实现跨多个微服务的分布式事务。 下面是使用go-zero和DTM实现分布式事务的基本步骤&#xff1a; 安装和配置DTM&am…...

Springboot +Flowable,会签、或签简单使用(一)

一.简介 **会签&#xff1a;**在一个流程中的某一个 Task 上&#xff0c;这个 Task 需要多个用户审批&#xff0c;当多个用户全部审批通过&#xff0c;或者多个用户中的某几个用户审批通过&#xff0c;就算通过。 例如&#xff1a;之前的请假流程&#xff0c;假设这个请假流程…...

银行面试中的即兴演讲技巧,你了解吗

面试的主要形式有无领导小组讨论、结构化和半结构化面试&#xff0c;一些银行还会出现辩论赛、角色扮演、即兴演讲等形式&#xff0c;今天小编就来聊一聊面试中的即兴演讲&#xff0c;从如信银行考试中心了解到&#xff1a; 简单来说即兴演讲就是在特定情境下&#xff0c;自发或…...

基于LT6911UXC的LVDS视频接口调试经验

文章目录 概要整体架构流程技术名词解释技术细节小结概要 项目方案采用龙讯半导体LT6911系列 整体架构流程 CPU主芯片采用飞腾,显卡采用GP102,由于项目需要LVDS接口,GP102的HDMI口输出后经过LT6911UXC转成LVDS输出 在本方案中有两种显示屏;一个是10.4寸,一个是15.6寸。…...

【C++】OpenMP简介

一、背景知识 1、program作用 #pragma 是 C 和 C 语言中的一个预处理指令。它主要用于向编译器发送特定的信息或者指示&#xff0c;以便控制编译过程。#pragma 通常与编译器特定的选项或功能一起使用&#xff0c;因此它的具体行为和实现可能因不同的编译器而有所不同。 #pra…...

Unity HybridCLR 热更工具学习日记(一)

目录 导入HybridCLR包、安装设置相关选项 导入HybridCLR包 先找到HybridCLR包的git地址&#xff1a;https://github.com/focus-creative-games/hybridclr 复制包的http地址&#xff0c;打开unity - window - package Manager&#xff1b;点击左上角的 选择Add Package for…...

内网渗透(七十五)之域权限维持之DCShadow

DCShadow 2018年1月24日,在BlueHat安全会议上,安全研究员Benjamin Delpy 和 Vincent Le Toux 公布了针对微软活动目录域的一种新型攻击技术------DCShaow。利用该攻击技术,具有域管理员权限或企业管理员权限的恶意攻击者可以创建恶意域控,然后利用域控间正常同步数据的功能…...

JAVA日常练习—习题5

1.机器人类及其子类 设计一个机器人的抽象类&#xff0c;具有质量&#xff08;double&#xff09;、名字&#xff08;String&#xff09;等属性&#xff1b;具有设置属性值方法和获得并打印属性值的方法&#xff0c;还有一个运动的抽象方法move()。设计电动汽车类和飞行器类&a…...

nuitka打包python的PyQt5成exe可执行文件

使用nuitka打包python的PyQt5 可以打包多文件,也可以打包单文件。 使用的python版本是3.8.10 1、下载gcc 方式1:可以到网站下载,点我跳转 方式2:可以直接去网盘下载,点我跳转 提取码:8888 网盘里面也有python3.8.10的安装包,下载后直接安装即可。 下载64位 win…...

数据(安全)治理面临的挑战和机遇

数据治理,数据安全治理面临的挑战就是该市场的机遇,国内外相关实践和成功的商业案例是存在的,国内目前实施主要不在考虑主体数据或另开一个新项目进行数据采集,清洗,展示,但很少有真正的通过深度学习工具提升企业运营效能,正如我上一篇(湖仓智能应用简论-数据驱动设计_…...

Java后端入职第三天,使用CompletableFuture优化查询接口

一、需求背景 相信大家入职到一个新公司(xinkeng),一般都会被分配去解决千古难题(caipigu),这些问题大概率很多不想去解决,并且代码很多复杂,各种套娃。领导为检验新人的能力,就会去让新人去解决这种问题,一方面可以了解业务代码,还能顺手把没人愿意做的事做了。但…...

卷积神经网络实例

文章目录 1. 数据输入2. 创建卷积模型并训练3. 超参数选择 卷积神经网络(CNN)主要由卷积层(Convolutional Layer)、池化层(Pooling Layer)、激活层(Activation Layer)和全连接层(Fully-connected Layer)组成。 卷积层(Convolutional Layer)&#xff1a;卷积层是CNN的核心组成部…...

使用Alpine配置WSL ssh门户抗

1. 哑铃图是什么&#xff1f; 哑铃图&#xff08;Dumbbell Plot&#xff09;&#xff0c;有时也称为DNA图或杠铃图&#xff0c;是一种用于比较两个相关数据点的可视化图表。 它源于人们对更有效数据比较方式的持续探索。 在传统的时间序列比较中&#xff0c;我们通常使用两条折…...

STM32F429开发实战:手把手教你开启FPU并验证性能提升(含Lazy Stacking详解)

STM32F429开发实战&#xff1a;FPU性能优化与Lazy Stacking深度解析 在嵌入式系统开发中&#xff0c;浮点运算性能往往是制约算法实时性的关键瓶颈。STM32F429作为Cortex-M4内核的代表性产品&#xff0c;其内置的浮点运算单元(FPU)能显著提升计算效率——但前提是开发者必须正确…...

M2FP镜像部署全攻略:无需配置,CPU环境也能稳定运行

M2FP镜像部署全攻略&#xff1a;无需配置&#xff0c;CPU环境也能稳定运行 你是不是也想过在自己的项目里加入“智能抠人像”或者“身体部位识别”的功能&#xff1f;比如&#xff0c;让用户上传一张合照&#xff0c;系统就能自动把每个人的头发、衣服、裤子、皮肤等不同部位用…...

FastAPI单元测试实战:别等上线被喷才后悔,TestClient用对了真香!滔

正文 异步/等待解决了什么问题&#xff1f; 在传统同步I/O操作中&#xff08;如文件读取或Web API调用&#xff09;&#xff0c;调用线程会被阻塞直到操作完成。这在UI应用中会导致界面冻结&#xff0c;在服务器应用中则造成线程资源的浪费。async/await通过非阻塞的异步操作解…...

MinerU智能文档服务一文详解:如何用自然语言指令替代传统OCR工具

MinerU智能文档服务一文详解&#xff1a;如何用自然语言指令替代传统OCR工具 你是不是还在为处理PDF报告、扫描文件或者截图里的文字而头疼&#xff1f;是不是觉得传统的OCR工具用起来特别麻烦——先要上传文件&#xff0c;然后等它识别&#xff0c;最后还得手动整理格式&…...

UDOP-largeGPU利用率提升:懒加载+推理缓存降低峰值显存占用

UDOP-large GPU利用率提升&#xff1a;懒加载推理缓存降低峰值显存占用 1. 引言&#xff1a;当大模型遇上显存瓶颈 如果你部署过大型AI模型&#xff0c;大概率遇到过这个头疼的问题&#xff1a;模型加载时&#xff0c;显存瞬间被占满&#xff0c;GPU利用率却低得可怜。这就像…...

从零备份到量产部署:RK3588文件系统迁移全流程指南(含Ubuntu/Debian/麒麟系统适配)

从零备份到量产部署&#xff1a;RK3588文件系统迁移全流程指南&#xff08;含Ubuntu/Debian/麒麟系统适配&#xff09; 1. 企业级文件系统迁移的核心挑战 在RK3588芯片组的量产部署中&#xff0c;文件系统迁移往往成为最耗时的环节。我曾亲历一个汽车电子项目&#xff0c;团队花…...

别再只用connectWifi了!微信小程序连接Wi-Fi的完整避坑指南(附getConnectedWifi实战代码)

微信小程序Wi-Fi连接全链路实战&#xff1a;从API陷阱到高可靠解决方案 每次看到connectWifi返回success却无法上网&#xff0c;或是onWifiConnected回调永远空数据时&#xff0c;作为开发者的你是否想砸键盘&#xff1f;微信小程序Wi-Fi模块的API设计就像个布满暗礁的航道——…...

ATCODER ABC C题解云

这&#xff0c;是一个采用C精灵库编写的程序&#xff0c;它画了一幅漂亮的图形&#xff1a; 复制代码 #include "sprites.h" //包含C精灵库 Sprite turtle; //建立角色叫turtle void draw(int d){ for(int i0;i<5;i)turtle.fd(d).left(72); } int main(){ …...

【MQTT】MQTTX 脚本功能进阶:用JavaScript构建自动化测试场景

1. MQTTX脚本功能深度解析 MQTTX作为EMQ开源的MQTT 5.0测试客户端&#xff0c;其脚本功能自v1.4.2版本引入后&#xff0c;已经成为物联网开发者的"瑞士军刀"。不同于基础教程中演示的简单数据转换&#xff0c;脚本功能真正的威力在于构建完整的自动化测试流水线。想象…...