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

这篇具有很好参考价值的文章主要介绍了unity愤怒的小鸟学习制作(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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


小鸟的飞出

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

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

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

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

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

可以通过小鸟是否加入动力学进行修改,这样速度就不会太大(讲真,没怎么听懂)
unity愤怒的小鸟学习制作(二),unity,unity,学习

也就是,先修改成:
unity愤怒的小鸟学习制作(二),unity,unity,学习

然后再将脚本修改成:

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;
    }
}




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

unity愤怒的小鸟学习制作(二),unity,unity,学习
这里的Damping Radio就是阻尼系数,范围是0-1,系数越大,弹簧的弹力效果越不明显

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

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

也就是在Hierachy空白处右键点击,选择创建空物体
unity愤怒的小鸟学习制作(二),unity,unity,学习
然后再将空物体归零

unity愤怒的小鸟学习制作(二),unity,unity,学习
因为空物体要存放所有需要的环境之类的,所以重命名为env

接下来找到需要的主题,比如这个第一个主题,点击之后,在Spite Mode 这里,将Single改成Mutiple,然后点击下方的Apply
unity愤怒的小鸟学习制作(二),unity,unity,学习

完成Apply之后点击Sprite Editor进行裁剪
unity愤怒的小鸟学习制作(二),unity,unity,学习
虽然视频里面点击一下Trim就切割完成了,但是我没成功,就只好手动切割了,切割完成就点击Apply

unity愤怒的小鸟学习制作(二),unity,unity,学习
然后将颜色较深的这个切割好的图片拖到上面

unity愤怒的小鸟学习制作(二),unity,unity,学习
然后给图片添加一个碰撞盒
unity愤怒的小鸟学习制作(二),unity,unity,学习

unity愤怒的小鸟学习制作(二),unity,unity,学习
然后编辑碰撞盒
unity愤怒的小鸟学习制作(二),unity,unity,学习

unity愤怒的小鸟学习制作(二),unity,unity,学习
将盒子向下拉一点,再将这个图片放到env里面

unity愤怒的小鸟学习制作(二),unity,unity,学习
unity愤怒的小鸟学习制作(二),unity,unity,学习
然后不断复制粘贴拼接图片,在Scence里面放好小鸟的地面,如下:
unity愤怒的小鸟学习制作(二),unity,unity,学习
尝试运行,发现小鸟飞的太快了,没有阻力

unity愤怒的小鸟学习制作(二),unity,unity,学习
修改这个Angular Drag,因为这个值相当于空气阻力的一种,将其放大,测试,发现还可以

unity愤怒的小鸟学习制作(二),unity,unity,学习
挑选一只猪,将其拖上去,然后摆放好位置

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

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

记得修改参数

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

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


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

public class Pig : MonoBehaviour
{
    // Start is called before the first frame update
    
    public 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愤怒的小鸟学习制作(二),unity,unity,学习
运行,感觉还不错

今日就到这里吧文章来源地址https://www.toymoban.com/news/detail-556424.html

到了这里,关于unity愤怒的小鸟学习制作(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python毕设分享 愤怒的小鸟游戏设计与实现 (源码)

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 愤怒的小鸟游戏设计与实现 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:4分 项目获取: https://gitee.com/sinonfin/syst

    2024年02月05日
    浏览(43)
  • C++---状态压缩dp---愤怒的小鸟(每日一道算法2023.4.19)

    注意事项: 难度警告!这题在NOIP中也算偏难的题,量力而行。 本题为\\\"状态压缩dp—最短Hamilton路径\\\"的扩展题,建议先阅读这篇文章并理解。 本题是\\\"重复覆盖问题\\\"可以使用\\\"Dancing Links\\\"做,但我们这里是用的状态压缩dp来写。 题目: Kiana 最近沉迷于一款神奇的游戏无法自拔。

    2023年04月23日
    浏览(35)
  • Python版经典小游戏愤怒的小鸟源代码,基于pygame+pymunk

    Python版经典小游戏愤怒的小鸟源代码,基于pygame+pymunk 程序依赖:pygame 2.0.1, pymunk 5.5.0 直接运行main.py 完整代码下载地址:Python版经典小游戏愤怒的小鸟源代码 tool.py 完整代码下载地址:Python版经典小游戏愤怒的小鸟源代码

    2024年02月16日
    浏览(55)
  • 【Unity项目实战】手把手教学:飞翔的小鸟(6)添加障碍

            承接上一篇:【Unity项目实战】手把手教学:飞翔的小鸟(5)背景滚动,我们已经让主角在停止不动的情况下,移动背景图,使得主角小鸟像是自己往前移动了一样,接下来我们将继续往下,讲解如何添加障碍。         将障碍物素材(拉两个)拖拉到主界面中

    2024年02月09日
    浏览(46)
  • Unity学习-逐帧图集动画制作

    首先在文件部分创建一个Sprite Library Asset 然后点击创建出来的文件 点下面的加号添加对应的图 添加完成之后点一下Apply 然后新建一个物体 添加这三个组件 其中SpriteLibrary里面 把你刚刚创建的图集文件拉过来 Sprite Resolver选择对应的动作和图片 然后开始制作动画 Animation创建一

    2024年01月23日
    浏览(38)
  • Unity学习记录:制作双屏垃圾分类小游戏

    要实现的功能 游戏操作 在规定时间内,垃圾通过拖拽进入正确垃圾桶的容器,垃圾在这里消失,飞入第二个屏上对应垃圾桶的位置并实现加分和加时间的效果,垃圾拖拽进入不正确的垃圾桶,垃圾会返回到原来的位置,同时,相应的时间也会减少 胜利和失败的条件: 胜利:

    2024年02月03日
    浏览(54)
  • 【Unity学习】制作一个可滑动的公告栏

    1.新建Image组件做公告底板(Note) 在Canvas组件(画布)中新建一个Image组件(图片)做公告底板,并在组件属性栏中设置合适的图片大小、颜色及透明度  2.制作公告图标(Title ,可选) 在1建的图片组件(Note)下新建一个image组件做公告标题底图,再在该底图下新建文本,拉伸拖到

    2024年02月12日
    浏览(85)
  • Unity学习笔记(7) Unity2D骨骼动画制作流程

    用骨骼动画最大的好处就是方便之后做换装系统。 无论对3Dor2D游戏都是这样的。 这篇博文记录一下2D骨骼动画的制作流程,参考b站麦扣的系列教程: https://space.bilibili.com/370283072/channel/seriesdetail?sid=211996 用PS做一个将人物各个部件(骨骼)都分解开来的人物模型。 导出时注意

    2023年04月09日
    浏览(58)
  • 【Unity AR】<PokemonGo> AR精灵制作学习记录

        《宝可梦GO》(pokemonGo)是一款能对现实世界中出现的宝可梦进行探索捕捉、战斗以及交换的游戏。玩家可以通过智能手机在现实世界里发现宝可梦,进行抓捕和战斗。玩家作为宝可梦训练师抓到的宝可梦越多会变得越强大,从而有机会抓到更强大更稀有的宝可梦。本次

    2024年04月28日
    浏览(47)
  • Unity学习记录4——视频进度条制作,视频倍速、快进及后退

    1.使用AVPro Video插件,进行制作 2.效果演示     3.代码

    2024年02月03日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包