本文主要是介绍如何向另一场景发送信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
方法一:You can use Object.DontDestroyOnLoad to stop an object from being destroyed after the new level begins. You can find the object in the new scene and it will still have all data intact.
方法二:
The "Session" Class":
Code:
using System;
using System.Runtime.CompilerServices;
using System.Collections;
namespace Game
{
public class Session
{
private static Session instance;
private Hashtable context;
private Session ()
{
}
[MethodImpl(MethodImplOptions.Synchronized)]
public static Session GetInstance() {
if(Session.instance == null) {
instance = new Session();
}
return instance;
}
public void Clean() {
this.context = null;
}
public Hashtable Context {
get {
return this.context;
}
set{
this.context = value;
}
}
}
}
Usage:
Before calling Application.LoadLevel() you put your hashtable into the "Session".
Example:
Code:
void OnGUI () {
if(GUI.Button(buttonRect, "Play!")) {
Hashtable ht = new Hashtable();
ht.Add("1","Unity");
ht.Add("2","Rocks");
Game.Session.GetInstance().Context = ht;
Application.LoadLevel(1);
}
}
then in the Start() method of the new scene use:
Code:
void Start () {
Hashtable table = Game.Session.GetInstance().Context;
//Iterate through the values
foreach(string test in table.Values) {
print(test);
}
//Or use them by the ID
print(table["1"]);
print(table["2"]);
}
I hope it helps,
Daniel
这篇关于如何向另一场景发送信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!