【Unity】My First Game_06

音效Audio

  1. Add Component -> Audio Source

  2. Audio Source部件中添加AudioClip,设置好各选项

    • 背景音乐可以选择“Play On Awake”和“Loop”
    • 触发类的音乐就不勾选
  3. 为Enemy死亡时添加一个音效后,打开Enemy.cs,添加代码:

    protected AudioSource deathAudio;
    
    public void JumpOn()
    {
        deathAudio.Play();//播放deathAudio
    
        anim.SetTrigger("death");
    }
    
  4. 为角色添加一个起跳音效,打开PlayerConroller.cs,添加代码:

    [SerializeField]private AudioSource jumpAudio;
    
    void Movement()
    {
      …………
      //角色跳跃
      if (Input.GetButtonDown("Jump") && coll.IsTouchingLayers(ground))
      {
          rb.velocity = new Vector2(rb.velocity.x, jumpForce * Time.deltaTime);
          jumpAudio.Play();//播放音效
          anim.SetBool("jumping", true);
      }
    }
    

    并在Player的Script组件中选择jumpAudio

  5. 还可以添加受伤音效等等

对话框Dialog

  1. Hierarchy窗口中的Canvas对象中Create -> UI -> Panel

  2. 在Inspector窗口中的Rectangle Transform组件中设置Anchor Preset等参数

  3. Panel对象中Create -> UI -> Text,并设置好Text组件中的各个参数

  4. 在house中添加Box Collider 2D,并调整到door的位置,并且选上Is Trigger

  5. 为Player添加一个tag,命名为“Player”

  6. 为house添加一个Script,并添加代码:

    public GameObject enterDialog;
    
    private void OnTriggerEnter2D(Collider2D collision)//碰撞门显示
    {
        if (collision.tag == "Player")
        {
            enterDialog.SetActive(true);
        }
    }
    
    private void OnTriggerExit2D(Collider2D collision)//离开门关闭
    {
        if (collision.tag == "Player")
        {
            enterDialog.SetActive(false);
        }
    }
    

    并在house中选择需要的EnterDialog

  7. 为EnterDialog添加一个Enter的动画,在Animation窗口中选择“Preview

  8. 第一帧调整对话框和文字不透明度为0,在第n帧调整不透明度(自行调整),然后关闭Preview,即可形成动画

趴下效果

  1. 正常添加crouching的动画效果run- > crouchcrouch -> fallidle <-> crouch,并在Animation窗口中设置好各个参数设置,在PlayerControlelr.cs中添加代码:

    void Crouch()//在Movement方法中调用该方法
    {
        if (Input.GetButton("Crouch"))
        {
            anim.SetBool("crouching",true);
            Discoll.enabled = false;//取消使用Box Collider 2D碰撞体
        }
        else if (Input.GetButtonUp("Crouch"))
        {
            anim.SetBool("crouching",false);
            Discoll.enabled = true;
        }
    }
    
  2. 在PlayerControlelr.cs中添加代码:

    [SerializeField]private Collider2D Discoll;
    

    在inspector窗口中将Player的Box Collide 2D选进Discoll

  3. 为Player添加Empty,命名为ceiling,调整ceiling位置为蹲下后最高点,在PlayerControlelr.cs中添加代码:

    [SerializeField] private Transform ceilingCheck;
    

    将Player中的ceiling拖进inspector窗口中的ceilingCheck

  4. 修改Crouch()方法:

    void Crouch()
    {
        //OverlapCircle判断附近是否有图层,参数:点的位置,范围,判断的图层
        if (!Physics2D.OverlapCircle(ceilingCheck.position,0.2f,ground))
        {
            if (Input.GetButtonDown("Crouch"))
            {
                anim.SetBool("crouching",true);
                Discoll.enabled = false;
            }
            else if (Input.GetButtonUp("Crouch"))
            {
                anim.SetBool("crouching",false);
                Discoll.enabled = true;
            }
        }
    }
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值