我对Unity3d中的场景有些困惑,我无法找到任何有关它们的资源.
在Unity中,有什么方法可以创建一个单独的游戏管理器,可以作为全局类在任何地方访问,静态变量会将相同的常量值吐出到每个提取这些值的类中?在Unity中实现它的方法是什么?我必须将它附加到GameObject吗?可以只是在文件夹中,而不是在视觉上在场景中吗?
对于2015年9月,这里正是你如何在Swift中创建一个单例:
public class Model
{
static let shared = Model()
// ( for ocd friends ... private init() {} )
func test()->Double
{
return 3.33
}
}
Run Code Online (Sandbox Code Playgroud)
其他地方......
// file ViewController.swift, say
import UIKit
class ViewController:UIViewController
{
override func viewDidLoad()
{
super.viewDidLoad()
print("view controller loaded!")
print("singleton test! \( Model.shared.test() )")
}
}
Run Code Online (Sandbox Code Playgroud)
没问题.
public let model = Model.shared
public class Model
{
static let shared = Model()
func test()->Double
{
return 3.33
}
}
Run Code Online (Sandbox Code Playgroud)
那么,你可以简单地在项目范围内进行以下操作:
class ViewController:UIViewController
{
override …Run Code Online (Sandbox Code Playgroud) 我有一个游戏,玩家拿起一个武器,然后将其作为GameObject变量放置到我的玩家名为"MainHandWeapon",我试图通过场景更改保存该武器,所以我试图保存它.我如何处理这个如下:
public class Player_Manager : Character, Can_Take_Damage {
// The weapon the player has.
public GameObject MainHandWeapon;
public void Save()
{
// Create the Binary Formatter.
BinaryFormatter bf = new BinaryFormatter();
// Stream the file with a File Stream. (Note that File.Create() 'Creates' or 'Overwrites' a file.)
FileStream file = File.Create(Application.persistentDataPath + "/PlayerData.dat");
// Create a new Player_Data.
Player_Data data = new Player_Data ();
// Save the data.
data.weapon = MainHandWeapon;
data.baseDamage = BaseDamage;
data.baseHealth = BaseHealth;
data.currentHealth = CurrentHealth; …Run Code Online (Sandbox Code Playgroud) 以来
Application.LoadLevel(level);
Run Code Online (Sandbox Code Playgroud)
不推荐使用新的SceneManager,我想问一下如何使用它来加载/获取简单的参数,如字符串类型,以及生命周期的哪些函数最佳实践?(例如Start,Awake)
SceneManager.LoadScene("resultScene", chosenOptions);
Run Code Online (Sandbox Code Playgroud)
注意:为了简化:有没有除了编写新类的选项,如?