示例#1
0
    //Find requiered Data
    private void Awake()
    {
        playerNum = GetComponent <PlayerId>().GetId();
        player    = FindObjectOfType <PlayerStats>();
        loader    = FindObjectOfType <SceneLoader>();

        gameObjectDestroyer += OnLoadingNewScene;
        loader.OnFinishScene.AddListener(gameObjectDestroyer);

        PlayerObject = gameObject.transform.GetChild(0).gameObject;
        if (loader.myCurrentData.thisScenePlayerMovement != null)
        {
            playerMovement = ScriptableObject.CreateInstance(loader.myCurrentData.thisScenePlayerMovement.GetType()) as IPlayerMovement;
            playerMovement.OnAwake(PlayerObject);
        }
        if (loader.myCurrentData.thisScnenePlayerInteractions != null)
        {
            playerInteractions = ScriptableObject.CreateInstance(loader.myCurrentData.thisScnenePlayerInteractions.GetType()) as IPlayerInteractions;
            if (loader.myCurrentData.thisScnenePlayerInteractions.sensor != null)
            {
                playerInteractions.sensor = ScriptableObject.CreateInstance(loader.myCurrentData.thisScnenePlayerInteractions.sensor.GetType()) as ISensor;
            }
        }



        //playerMovement = loader.myCurrentData.thisScenePlayerMovement;
        //playerInteractions = loader.myCurrentData.thisScnenePlayerInteractions;
    }
示例#2
0
    public void SetupData()
    {
        Debug.Log("SettingData");
        playerColors[0] = Color.green;
        playerColors[1] = Color.red;
        playerColors[2] = Color.blue;
        playerColors[3] = Color.magenta;

        if (levelCompleted == null)
        {
            if (Resources.Load <ILevelCompleted>("Alex/WinConditions/Data/" + SceneManager.GetActiveScene().name + "WinCondition") != null)
            {
                levelCompleted = Resources.Load <ILevelCompleted>("Alex/WinConditions/Data/" + SceneManager.GetActiveScene().name + "WinCondition");
            }
            else
            {
                levelCompleted = null;
            }
        }
        if (thisScenePlayerMovement == null)
        {
            if (Resources.Load <IPlayerMovement>("Alex/PlayerMovement/PlayerMovementObjects/" + SceneManager.GetActiveScene().name + "Movement") != null)
            {
                thisScenePlayerMovement = Resources.Load <IPlayerMovement>("Alex/PlayerMovement/PlayerMovementObjects/" + SceneManager.GetActiveScene().name + "Movement");
            }
            else
            {
                thisScenePlayerMovement = null;
            }
        }
        if (thisScnenePlayerInteractions == null)
        {
            if (Resources.Load <IPlayerInteractions>("Alex/InteractionData/InteractionDataObjects/" + SceneManager.GetActiveScene().name + "Interaction") != null)
            {
                thisScnenePlayerInteractions = Resources.Load <IPlayerInteractions>("Alex/InteractionData/InteractionDataObjects/" + SceneManager.GetActiveScene().name + "Interaction");

                if (Resources.Load <ISensor>("Alex/SensorData/SensorObjects/" + SceneManager.GetActiveScene().name + "Sensor") != null)
                {
                    thisScnenePlayerInteractions.sensor = Resources.Load <ISensor>("Alex/SensorData/SensorObjects/" + SceneManager.GetActiveScene().name + "Sensor");
                }
                else
                {
                    thisScnenePlayerInteractions.sensor = null;
                }
            }
            else
            {
                thisScnenePlayerInteractions = null;
            }
        }
    }