创建两个场景同时赋值staticvarious 脚本 然后按键好,h ,j 进行不断切换场景,会发现unity 控制台输出数字不断增加,然后把静态去掉,这样结果都是10。

using unityengine;
using system.collections;
using unityengine.scenemanagement;
public class staticvarious : monobehaviour {
    static int value = 10;
    void start () {
        debug.log(value++);
    }
    public void update()
    {
        if (input.getkeydown(keycode.h))
        {
            scenemanager.loadscene("test4");
        }
        if (input.getkeydown(keycode.j))
        {
            scenemanager.loadscene("test3");
        }
    }
}

补充:unity场景间数据传递方法

在游戏开发中,会常用到场景间传递数据的方法(比如关卡选择,过关后自动回到关卡选择界面,以动画方式解锁下一关),

目前研究了三种:

1. 使用dontdestroyonload方法:

(1)在场景a中做个gameobject,身上挂个脚本,在start方法中写明

dontdestroyonload(gameobject);

这个表示在场景跳转后,不需要destory这个物体,在下个场景中这个物体依然保留,运行后,在hierarchy视窗中也会自动生成这样的游戏物体

跳转到场景b中,再从这个游戏物体身上取脚本组件和值

2. 使用playerprefs进行永久存储

这种方式应该会以文件的方式存储在存储器中,

设值

playerprefs.setint("currentlevel", 10);

读值

playerprefs.getint("currentlevel")

3.使用static变量

这种方式很不错,自己设计一个class,把要存储并传递的变量做成public static变量,也不需要实例化类,跳转后直接读取就行了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。如有错误或未考虑完全的地方,望不吝赐教。