Scanvenger游戏制作笔记(三)Unity3D创建对墙体的攻击


前言

本文章是我学习SIKI学院Scanvenger项目所做笔记,原视频请自行搜索,
材质等相关资源请微信搜索SIKI学院公众号,回复120获取。源码也在里面。
游戏引擎:Unity3D2020.3
之前的Prefabs内容

一、给墙体增加一个刚体

在这里插入图片描述

二、添加标签以便确认

在这里插入图片描述

三、脚本

// 获得自身的collider
    private BoxCollider2D collider;

void Start()
    {
        rigidbody = GetComponent<Rigidbody2D>();
        collider = GetComponent<BoxCollider2D>();
}


// 检测碰撞,首先禁用自身
            collider.enabled = false;
            RaycastHit2D hit =  Physics2D.Linecast(targetPos, targetPos + new Vector2(h, v));
            collider.enabled = true;
            if(hit.transform == null)
            {

            targetPos += new Vector2(h, v);
            restTimer = 0; // 重新计时
            }

            else
            {
                switch (hit.collider.tag)
                {
                    case "OutWall":
                        break;
                    case "Wall":
                        break;
                }
            }
restTimer = 0;		// 这个不能忘,否则一秒内清理完成	


攻击墙体,给TakeDamage的消息
在这里插入图片描述

四、Wall 的脚本

public class Wall : MonoBehaviour
{

    public int hp = 2;

    public Sprite damageSprite;// 受到攻击的图片

    // 受到攻击的时候
    public void TakeDamage()
    {
        hp -= 1;
        GetComponent<SpriteRenderer>().sprite = damageSprite;           //  获得受到攻击时候的图片,并且改变受到攻击时的墙体图片
        if (hp <= 0)
        {
            Destroy(this.gameObject);  // 墙体没血销毁
        }
    }


}

在 Damage Sprite 中放置受到伤害后的墙体
在这里插入图片描述

五、攻击动画

获得攻击动作

private Animator animator;
animator = GetComponent<Animator>();

播放攻击动画
在这里插入图片描述

系列链接

Scanvenger游戏制作笔记(一)Unity3D状态机转换
Scanvenger游戏制作笔记(二)控制玩家操作
Scanvenger游戏制作笔记(三)Unity3D创建对墙体的攻击
Scanvenger游戏制作笔记(四)Unity3D控制角色吃食物
Scanvenger游戏制作笔记(五)控制敌人的移动
Scanvenger游戏制作笔记(六)Unity3D创建游戏UI的显示
Scanvenger游戏制作笔记(七)Unity3D控制游戏的失败
Scanvenger游戏制作笔记(八)Unity3D关卡胜利条件的判断
Scanvenger游戏制作笔记(九)Unity3D创建声音

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值