2月6日开发日志
1、添加了宝石道具
方法
宝石动效是通过代码写的,给宝石添加collider2d并设置为tigger,当玩家触碰到宝石时销毁即可
using UnityEngine;
public class starmove : MonoBehaviour
{
float i,targetposition, startposition;//i取值,targetposition是目标位置,startposition是初始位置
public float speed = 0.1f;//移动速度
public Transform target;
bool moveup=true;
void Start()
{
startposition= transform.position.y;
i = startposition;
targetposition = target.position.y;
Destroy(target.gameObject);
}
void Update()
{
if (moveup)//开始时朝目标位置移动
{
i += speed * Time.deltaTime;
transform.position = new Vector2(transform.position.x, i);
if (i > targetposition)
{
moveup =false;
}
}
else //到达目标位置后朝初始位置移动
{
i -=speed * Time.deltaTime;
transform.position = new Vector2(transform.position.x, i);
if (i < startposition)
{
moveup = true;
}
}
}
}
2、完善了任务系统
方法
玩家收集到宝石后会添加到任务菜单中,当集齐宝石后即可领取奖励,宝石未集齐前无法点击领取
部分代码
if (task.activeInHierarchy)//任务菜单打开时判断是否领取奖励
{
walk = false;
GameObject star = GameObject.Find("Canvas/Task/Collect task/Viewport/Content/Collect task-p/Text/Textnum");
star.GetComponent<Text>().text = string.Format("{0:d}/10", starnum);
if (starnum == 10)
{
if (i == 0)
{
GameObject state = GameObject.Find("Canvas/Task/Collect task/Viewport/Content/Collect task-p/Text/state");
state.GetComponent<Button>().enabled = true;//可以领取时打开button功能
state.GetComponent<Text>().text = "领取奖励";
i++;
}
}
}
完成主线任务npc会给玩家点赞,方法是做了个预制件当任务完成时生成游戏对象,延迟1秒后销毁该对象
总结
任务系统是游戏开发中逻辑比较复杂的,很容易出现bug。
游戏玩法很重要,没有好的玩法,游戏也只是华而不实。