2月4日开发日志
1、优化了任务菜单 还加了个领取奖励的功能
方法
1、任务菜单
就是做了两个Scroll View,然后通过点击“当前任务”或者“收集任务”来打开关闭对应的Scroll View,再改变字体颜色做个视觉效果
下面是代码
public void NowTask()
{
GameObject nowtask = GameObject.Find("Canvas/Task/Now task");
GameObject collecttask = GameObject.Find("Canvas/Task/Collect task");
nowtask.SetActive(true);
collecttask.SetActive(false);
nowtaskb.color= Color.white;
}
public void CollectTask()
{
GameObject nowtask = GameObject.Find("Canvas/Task/Now task");
GameObject collecttask = GameObject.Find("Canvas/Task/Collect task");
nowtask.SetActive(false);
collecttask.SetActive(true);
nowtaskb.color = Color.gray;
collecttaskb.color = Color.white;
}
}
2、领取奖励并更换皮肤
用到了animator layer,重新做了一套动画,点击领取后通过更改图层权重来播放新动画,然后把Button“领取奖励”的Text更改成“已领取”
下面是代码
public void Changeanim()//领取奖励并更换皮肤
{
_playeranimator.SetLayerWeight(1, 1);
GameObject state = GameObject.Find("Canvas/Task/Collect task/Viewport/Content/Collect task-p/Text/state");
state.GetComponent<Text>().text = "已领取";
}
遇到的问题
因为我将“收集任务”的字体设置成了灰色且没有设置任务菜单优先显示“当前任务”,所以会出现两个Button都为灰色的情况(今天unity崩溃又重做一边T-T)
解决方法
将“收集任务”对应的Text也改成白色,然后加上脚本,当游戏开始时将Text设置为灰色即可
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class gray : MonoBehaviour
{
Text collect;
//在游戏开始时将文本设置为灰色
void Start()
{
collect= GetComponent<Text>();
collect.color= Color.gray;
}
}
总结
玩家喜欢氪皮肤是有理由的,新皮肤给人新游戏的感觉哈哈