您的位置:首页 > 移动开发 > Unity3D

Unity学习笔记四 - Survival Shooter Tutorial

2016-04-24 18:01 549 查看
脚本CameraFollow  绑定在主摄像机上,targetObject = Player

void Start()
    {
        offset = transform.position - target.position;
//取得开始时玩家位置到主摄像机位置向量值
    }

    void FixedUpdate()
    {
        Vector3 targetCamPos = target.position + offset;
//每隔一个时间间隔,玩家位置+开始是玩家都主摄像机的向量,就是玩家和摄像机相对位置固定
        transform.position = Vector3.Lerp (transform.position, targetCamPos,smoothing * Time.deltaTime); 
//摄像机从当前平滑的向目标点移动,理论上就是一帧一帧的趋近目标目标位置
    }

脚本PlayerHealth.cs

   
void Update ()
    {
        if(damaged)
        {
            damageImage.color = flashColour; 
//每次受到伤害时,把盖住屏幕的图片颜色设为flashColour
        }
        else
        {
            damageImage.color = Color.Lerp (damageImage.color, Color.clear, flashSpeed * Time.deltaTime);
//由于在Update中,每帧图片向透明渐变
        }
        damaged = false;
    }

    public void TakeDamage (int amount)
    {
        damaged = true; 
//没进入这个函数,下帧进行下盖住屏幕的颜色覆盖

        currentHealth -= amount;
//减少当前血量

        healthSlider.value = currentHealth;
//设置滚动条的值

        playerAudio.Play (); 
//播放绑定的音乐

        if(currentHealth <= 0 && !isDead)
//当前血量小于0,角色还没死亡
        {
            Death ();  //执行死亡函数
        }
    }

    void Death ()
    {
        isDead = true;
//死亡状态设为true

        playerShooting.DisableEffects ();
//PlayerShooting脚本中对应函数,使枪的射线和发光都消失

        anim.SetTrigger ("Die");
//触发anystate到死亡状态的变化

        playerAudio.clip = deathClip; 
//把playerAudio中的音乐片段设为deathClip中音乐段
        playerAudio.Play ();
//播放

        playerMovement.enabled = false;
//禁用playerMovement脚本
        playerShooting.enabled = false;
//禁用playerShooting脚本
    }

    public void RestartLevel ()
    {
        SceneManager.LoadScene (0);
//回到scene0的状况
    }

其中RestartLevel
调用的位置 在Player模型的death动画事件中,最后位置,就是执行完death动画会调用,重置游戏

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息