【Uinity】Scriptable Object的作用理解

所有理解仅为个人理解;

Scriptable Object的一般用法:

        在游戏中,我们可能会设计很多不一样的道具,而这些道具往往都具有相同的几个属性,特别是在卡牌游戏或者是Rouge类游戏中,为了方便管理游戏道具,可以使用Scriptable Object来把道具归类为一种共用属性的游戏对象,只需要更改每一个道具的对应属性即可实现多种道具的区分。

下面以常规卡牌游戏的卡牌道具为例,设计卡牌具有攻击力、生命值、消耗花费等属性;

1、编写卡牌类脚本,用于储存卡牌的属性信息,并且可以通过create来创建一个独立的卡牌道具:

using UnityEngine;

[CreateAssetMenu(menuName = "Card")]

public class Card : ScriptableObject
{
    public string cardName;
    public int damagePoint;
    public int healthPoint;
    public int costPoint;

    public Sprite sprite;
    

    public enum CardType
    {
        RED,
        BLUE,
        GREEN
    }
    public CardType cardType;
   
}

2、在Project面板中,右键Create新建一个Card对象,并在Inspector栏中修改其具体属性参数。

3、对需要装载卡牌属性的游戏对象,添加一个脚本来接收上一步的Card类对象:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CardObject : MonoBehaviour
{
    public Card card;
}

 4、最后就是对这个卡牌属性的引用:

    Card cardObject;

    private void Start()
    {
        cardObject = this.GetComponent<CardObject>().card;
    }

个人认为的优势:当具有大量的同属性类型道具时,使用脚本化对象可以便于我们在后期进行管理和数值调整,并且可以让整个工作流程清晰明了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值