标签:
最近在跟着视频学做,很简单的demo
就是这个了,看过的人都知道,官方的。刚刚四级的我只能找点国内重制的看了
现在想做的效果就是受到伤害时会变红,让后慢慢平滑过渡到白色
在update方法中如下
void Update() {
//鼠标左击模拟受到伤害 if( Input.GetMouseButtonDown(0)) { TakeDamage(30f); } //颜色变白 bodyRenderer.material.color =Color.Lerp(bodyRenderer.material.color, Color.white, smooth * Time.deltaTime); }
当然,在TakeDamage方法中会将颜色变红。 至此都毫无问题
现在想在颜色回复白色时添加判断优化点,思路就是判断当前颜色为红色才变白,很简单 加if
void Update() { if( Input.GetMouseButtonDown(0)) { TakeDamage(30f); } if(bodyRenderer.material.color.Equals(Color.red)) { bodyRenderer.material.color = Color.Lerp(bodyRenderer.material.color, Color.white, smooth * Time.deltaTime); } }
运行,然后就:
死活不变白了,
开断点调试
具体过程不赘述,反正后来颜色变成图中所示,系统red颜色的RGB是
至此明白了,Color.Lerp 是逐渐变色,所以虽然看上去是红色,但和红色有区别,所以无法触发变色
将条件判断为不是白色
void Update() { //鼠标左击模拟受到伤害 if( Input.GetMouseButtonDown(0)) { TakeDamage(30f); }
//判断条件设置为不是白色 if(!bodyRenderer.material.color.Equals(Color.white)) { //颜色变白 bodyRenderer.material.color = Color.Lerp(bodyRenderer.material.color, Color.white, smooth * Time.deltaTime); } }
本人做.net,机缘巧合之下接触unity,感觉挺有意思,个人认为这和做程序开发有一定异同,现在还在熟悉api阶段,掌握好工具才能做出好东西啊
总结一下:
1.断点调试一定要掌握,不过unity的调试有所不同,他是每一帧调用一次,想了解具体可以看看我正在研究的unity生命周期
2.初学最好找一些现成的例子,推荐官方的,质量好,包齐全,而且免费,不要让模型什么的扰乱学习的心态。
3.前段时间看到园子里的一篇文章,说的是要思考,学东西是要想一想,可能想不明白,但如果看到脚本copy过来运行下就算掌握,
可能自己做时就什么都不会。
标签:
原文地址:http://www.cnblogs.com/ben1992/p/4185579.html