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

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


上一篇博客我们已经有了相关的思路构思,同时已经完成了对于点击方法的编写以及按钮的创建,这次我们将实现切换物体并且完善这个功能

切换物体实现-2

脚本编写

在我们之前提到的窗户预制体file中加入一个脚本,命名为change_items
在这里插入图片描述
设定变量

    public GameObject allitem;//所有item的父物体
    public GameObject[] items;//用于存储展品的数组
    public GameObject button_control;//按钮
    int N=3;//展品总数
    int num;//当前展品
    int oldnum;//上一个展品

然后在Start方法中将变量初始化

void Start()
    {
        button_control=GameObject.Find("Button_click_manager").gameObject;
        oldnum = 0;
        num = 0;
        //N = allitem.transform.childCount;
        items = new GameObject[N];
        for(int i=0;i< allitem.transform.childCount; i++)
        {
            items[i] = allitem.transform.GetChild(i).gameObject;
        }
    }

这里我使用的方法是在unity中对刚刚提到的allitem变量进行赋值,在Start方法中将allitem的子物体按顺序放入刚刚新建的数组items中,以便使用

void Update()
    {
        num = button_control.GetComponent<click_control>().click_num;
        if (oldnum != num)
        {
            items[oldnum % N].SetActive(false);
            items[num % N].SetActive(true);
            oldnum = num;
        }
    }

在update方法中放入时刻检测上次我们创建的物体button_control中的组件click_control中的click_num的值并赋给num,一旦发现与现在展示的物体编号不同,即oldnum != num,便使上一个物体失活并激活下一个将要展示的物体。即可做到物体切换。

改进思路

可以看到我在Start方法中注释了一个语句,用于在脚本内获取子物体的值而非外部修改N的值,这样可以不需要在每次添加物体后手动修改N的值,而是可以自动化的统计展品的数量。

©️2020 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值