游戏数据保存的种类、区别和联系以及使用技巧以及脚本的用法

游戏数据保存的种类、区别和联系以及使用技巧

静态类的成员变量和成员方法一定要是public static类型的,但静态方法中局部变量可以为非静态的;         类中的可以嵌套类,一层一层这样下去:相关联的参量可以声明在同一个类里面, 数据管理的思路:游戏中的数据应该尽量放在一个脚本中去,方便管理和维护;这些游戏中的参数变量应该根据使用的位置的不同,而被生声明不同的静态类中,并且为了方便管理,把相关的类声明在同一类下面,形成层级管理关系,这样的话,可以声明不同的类,及时类已经被声明过了,如:可以在Global下的Consts下面的Battle类中声明Time类;静态类下面的类也是静态的;

2.Scripts在项目中的几种存在方式

   (1).常见的存在方式:   Scripts继承自MonoBehaviour,这么做常常是为了使用Mono框架下面的方法以及Mono框架中固定的方法执行顺序,例如Awake 和Start方法在在需要做初始化的场合,这些是很有用的;  可以参考Umeng的Unity插件,其中的MobclickAgent.cs脚本是在游戏中统计用的工具脚本,其中的方法都是静态的方法的方法,就这一点来说完全可以不用继承Mono,但是为了使用其中的Start方法,还是继承了Mono框架;这种脚本在游戏场景中是要作为物体的一个组件被引用的,意味着在层次视图可以搜到这个组件名字。(这就意味着游戏游戏中的一定要至少添加一次此脚本才能使此脚本下面的方法变量等,不然即使调用了但不添加的话,脚本中的方法也是不会起作用的)例如.在统计游戏数据时,统计的事件都写好了,若不添加MobclickAgent.cs脚本,依然统计不到事件的。

   (2).在游戏中不需要添加脚本就可以使其发挥作用的脚本:     这样的脚本和上边情况的区别就是它下面的方法与方法之间没有很强的耦合性,方法可以被方便的自由的调用,并且不能被当做物体的组件添加到物体上;即使这样依然可以很好的调用该脚本下面的方法来使用其具体的功能。(因为在此处这种脚本也是工具类(工厂模式),所以其脚本下面的方法都是static public 类型的)。

    (3).就是普通的继承Mono的脚本,这种脚本中可能包含1中的情况(包含静态的方法和字段),若是的话就可以直接通过类名来调用静态的方法和字段;另外一种情况是:使用单例类来调用非静态的方法,用法是: 类名.instance.方法名(),  但在此处有一点要注意:因为使用的是单例,也是static类型的,当一个脚本使用了单例以后,常常会instance为非null时才会赋值,所以这样的话,当项目中有多个同名的脚本组件时,要注意:一旦被赋过值以后,其他的同名脚本组件就不能对其赋值了,这样的话,不能赋值的脚本组件的方法和字段是不能通过这个单例来调用的;切记!!!

例如:

public class CtrTest:MonoBehaviour

{

        public List<BoxCollider> BoxCol = null;

        public static CtrTest instance = null;

        void Start()

        {

               if(instance ==null)

               {

                        instance = this;

                        CtrTest.instance.BoxCol = new BoxCollider();

                        CtrTest.instance.BoxCol.Add(GetComponent<BoxCollider>());

               }

               else

              {

                      CtrTest.instance.BoxCol.Add(GetComponent<BoxCollider>());

       }

      

       public void En_()

       {

                foreach(BoxCollider s in CtrCol.instance.BoxCol)

                {

                        s.enable = true;

                }

        }

}

注解:这个脚本是控制陷阱吃的盖子是否可以开启,有很多个这样的脚本控制着很多的盖子,在此处只有一个脚本执行单例类,并被赋值,这样被赋值的instance中就可以保存所有的盖子的BoxCollider这个组件,并在此单例脚本中来实现统一管理控制。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值