创新项目实训实践笔记-9

物品展示部分

3-实体操控物体弹出

思路介绍

刚开始的时候,我想的是,使用一个button来控制物体的弹出和回收,将button命名为display,点击button后物体会弹出,同时修改button的text为back,再次点击button即可回收物品。这样想来,其实比较好实现,也比较方便,但是如果每一个类似的功能都使用按钮来控制,一方面会早场界面中存在大量按钮,导致界面杂乱无章;另一方面总是使用一个技术来实现,并不能很好的达到学习的目的。因此,我决定把弹出和回收的方法使用滑动手机的方式实现,恰逢队友实现了开窗和关窗的功能,我决定将该功能整合进队友的代码中,实现开窗后,物体弹出,关窗后,物体回收,这样可以简化用户的操作,也可以使得用户的观感提升。

脚本实现

首先我们阅读一下队友的代码

if (fingerSegmentX > 0)
                {
                    Debug.Log("right");
                    //开窗操作
                    if (!windowState)
                    {
                        if (anim.isPlaying == false) //判断该动画是否正在播放
                        {
                            anim[animName].speed = 1;
                            anim.Play(animName); // 播放动画
                            windowState = !windowState; // bool值取反
                        }
                    }
                }
                else
                {
                    Debug.Log("left");
                    //关窗操作
                    if (windowState)
                    {
                        if (anim.isPlaying == false) //判断该动画是否正在播放
                        {
                            // 设置开始播放的时间为最后的时刻,默认是从0s开始播放的
                            anim[animName].time = anim[animName].length;
                            anim[animName].speed = -1;
                            anim.Play(animName); // 播放动画
                            windowState = !windowState; // bool值取反
                        }
                    }
                }

在这一部分,实现了开窗和关窗的逻辑,因此我们要在这里整合我们的代码。
首先,要实现这一操作,就需要获取到上一篇博客中我们完成的脚本中的两个flag的值,以便进行修改,因此我们创建一个gameobject

private GameObject item;

在start方法中对其进行赋值

item = GetComponent<change_items>().nowItem;

然后在开窗部分修改其flag1的值为true

if (fingerSegmentX > 0)
                {
                    Debug.Log("right");
                    //开窗操作
                    if (!windowState)
                    {
                        if (anim.isPlaying == false) //判断该动画是否正在播放
                        {
                            anim[animName].speed = 1;
                            anim.Play(animName); // 播放动画
                            windowState = !windowState; // bool值取反
                            item.GetComponent<display_item>().flag1 = true;
                        }
                    }
                }

然后在关窗部分修改其flag2的值为true

 else
                {
                    Debug.Log("left");
                    //关窗操作
                    if (windowState)
                    {
                        if (anim.isPlaying == false) //判断该动画是否正在播放
                        {
                            // 设置开始播放的时间为最后的时刻,默认是从0s开始播放的
                            anim[animName].time = anim[animName].length;
                            anim[animName].speed = -1;
                            anim.Play(animName); // 播放动画
                            windowState = !windowState; // bool值取反
                            item.GetComponent<display_item>().flag2 = true;
                        }
                    }
                }

这样就可以在开窗关窗时实现物体的弹出和回收操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值