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动画会调用,重置游戏
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动画会调用,重置游戏
相关文章推荐
- 我是运营,我没有假期
- 肯特·贝克:改变人生的代码整理魔法
- 你应该学习哪种编程语言?
- 每个 Linux 游戏玩家都绝不想要的恼人体验
- 在 Fedora 上使用 Steam play 和 Proton 来玩 Windows 游戏
- [转]我们需要一种其他人能使用的编程语言
- Steam 让我们在 Linux 上玩 Windows 的游戏更加容易
- 如何使用 Steam Play 在 Linux 上玩仅限 Windows 的游戏
- 新一代iPad适配应用之游戏篇
- DB2编程序技巧(1)
- DB2编程序技巧 (四)
- 女人VS编程_国庆快乐
- DB2编程序技巧 (六)
- DB2编程序技巧 (三)
- DB2编程序技巧 (九)
- DB2编程序技巧 (七)
- DB2编程序小小技巧
- DB2编程序技巧 (五)
- VB实现的《QQ美女找茬游戏》作弊器实例
- DB2编程序技巧 (一)