Unity:我将如何创建一个启动系统?

时间:2015-06-07 16:10:01

标签: unity3d

我想在我的2d平台电脑中实现一个上电系统,但不是只提供额外的速度或健康补充的电源,我的电源将像完全不同的角色,具有不同的精灵,大小和能力(例如反转重力,射击激光,爬墙等。

在我想要让玩家换到不同的电源的那一刻。有谁知道我怎么能做到这一点?我想在玩家接触电源时摧毁玩家,然后在新的能力中产生一个新玩家,但我不确定。

2 个答案:

答案 0 :(得分:0)

嗨Zak如果你想只销售字符,我认为你需要为Resources文件夹中的每个字符保留预制件。当玩家购买角色时,您只需要替换当前角色的预制路径,并在需要时从资源中加载它。

对于攀爬或重力倒车等动力装备,您需要为每个通电编写脚本,并在玩家购买时附加到当前角色。您可以管理如下所示的电源UPS。

abstract class PowerUp : MonoBehaviour
{
    public void activate();
}

class GravityRevert : PowerUp 
{
private Character character_;
void Awake()
{
    character_ = getComponent<Character>();
}

public void activate()
{
    if(character_.gravity > 0)
         character_.gravity = -character_.gravity;
}

}

如果你想卖精灵。您需要在Resources文件夹中保留精灵,当玩家购买布料时,您只需要替换当前角色的布料路径。

答案 1 :(得分:0)

我想说最有效的方法是使用事件系统;

PowerUpScriptIdea:powerup内部会有一个OnTriggerEnter()方法,如果一个对象发生碰撞,这个方法会检查它是否是播放器,如果是,则隐藏/破坏上电,但在此之前,发送一条消息/向玩家发送已加电的事件。

PlayerScriptIdea:将有与事件通电相对应的powerup()方法,一旦调用该事件,玩家将获得速度+ = 200,或者跳跃+ = 10等等。

如果你想节省内存,而不是破坏通电,请隐藏通电的meshrenender,然后将其移动到它出现的下一个位置等,这样你就可以重复使用相同的通电对象。