【Unity植物大战僵尸】太阳花功能基本完善(八)

目录

15、太阳功能优化和完善

测试


15、太阳功能优化和完善

修复:植物拖拽到网格外能够种植的问题

解决:只要鼠标位置与网格位置小于1.5时才能够触发点击的判断,就可以解决了

补充:植物种植后可以冷却

补充:拖拽时右键取消

改进:阳光动画优化(上升下降不是匀速态)

改进:太阳花出花时变红(伪特效)

在SunFlower.cs中更新代码

……
public class SunFlower : MonoBehaviour
{
    ……
    // 太阳花变红时所需要的时间
    private float goldWantTime = 1.5f;
    ……
    
    // 查找自身相关组件
    private void Find()
    {
        ……
    }
    
    // 创建时的初始化
    public void InitForCreate(bool inGrid)
    {
        ……
    }
    
    // 放置植物的初始化
    public void InitForPlace()
    {
        ……
    }
    
    // 创建阳光
    private void CreateSun()
    {
        StartCoroutine(DoCreateSun());
    }
    IEnumerator DoCreateSun()
    {
        float currTime = 0;
        currTime += 0.05f;
        float lerp;
        while (currTime < goldWantTime)
        {
            yield return new WaitForSeconds(0.05f);
            lerp = currTime / goldWantTime;
            currTime += 0.05f;
            // 实现一个从白到红的插值计算,lerp为0就是白色(原色),如果为1就是Color(1,0.6f,0)
            spriteRenderer.color = Color.Lerp(Color.white, new Color(1,0.6f,0),lerp);
        }
        // 恢复原来的附加色(白色)
        spriteRenderer.color = Color.white;
        // 父物体选择自身
        Sun sun = Instantiate(GameManager.instance.GameConf.Sun, transform.position, Quaternion.identity,
            transform).GetComponent<Sun>();
        // 生成阳光后跳跃
        sun.JumpAnimation();
    }
}

测试

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~Lomiss~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值