相关疑难解决方法(0)

了解Unity3d中的场景

我对Unity3d中的场景有些困惑,我无法找到任何有关它们的资源.

  1. 什么时候应该使用场景?例如,在平台游戏中,每个级别都必须是不同的场景?主菜单会是一个场景吗?
  2. 可以叠加场景吗?
  3. 资产如何在场景之间起作用?它们是否与每个场景相关联,每次都必须重新加载.可以指定何时不再需要资产?
  4. 如何在场景之间的场景/界面之间发送数据?我知道这是一个广泛的主题,但我不希望垃圾邮件有多个问题.

game-engine unity-game-engine scene

41
推荐指数
1
解决办法
2万
查看次数

Unity单例管理器类

在Unity中,有什么方法可以创建一个单独的游戏管理器,可以作为全局类在任何地方访问,静态变量会将相同的常量值吐出到每个提取这些值的类中?在Unity中实现它的方法是什么?我必须将它附加到GameObject吗?可以只是在文件夹中,而不是在视觉上在场景中吗?

c# singleton design-patterns unity-game-engine

33
推荐指数
2
解决办法
2万
查看次数

任何不使用的理由在Swift中使用单例"变量"?

对于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)

singleton swift swift2

10
推荐指数
1
解决办法
4279
查看次数

如何在Unity中序列化和保存GameObject

我有一个游戏,玩家拿起一个武器,然后将其作为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)

c# unity-game-engine

3
推荐指数
1
解决办法
2万
查看次数

如何通过编程方式使用unity3d中的scenemand通过loadlevel加载/获取场景变量

以来

Application.LoadLevel(level); 
Run Code Online (Sandbox Code Playgroud)

不推荐使用新的SceneManager,我想问一下如何使用它来加载/获取简单的参数,如字符串类型,以及生命周期的哪些函数最佳实践?(例如Start,Awake)

SceneManager.LoadScene("resultScene", chosenOptions);
Run Code Online (Sandbox Code Playgroud)

注意:为了简化:有没有除了编写新类的选项,如

c# variables unity-game-engine scene scene-manager

1
推荐指数
1
解决办法
428
查看次数