Skip to main content
added 10082 characters in body
Source Link

EDITTED: Here's the whole code for my OptionSetting.cs

using System;

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityStandardAssets.ImageEffects; using System.Linq;

public class MC_SettingBehaviour : MonoBehaviour {

[SerializeField]
GameObject[] CameraEffectComponents = new GameObject[43];

bool foundAllComponents = false;

[SerializeField]
GameObject FogEffectMorning = null;

[SerializeField]
GameObject FogEffectEvening = null;
bool fog = false;

private void Start()
{
    if (PlayerPrefs.GetInt(OptionPopup.LiveStreaming_) == 1)
    {
        this.enabled = false;
    } else
    {
        StartCoroutine(CameraComponents());
    }
}

void Update()
{
    if (!fog)
    {
        GetFogs();
        Debug.Log("BOOLEAN FOG :" + fog);
    }

    //if the camera components are all found
    if (foundAllComponents)
    {
        //Camera Option
        OptionCameraOnAndOff();
    }
    else
    {
        Debug.Log("Couldn't find yet any components on camera please wait...");
    }
}

IEnumerator CameraComponents()
{

    CameraEffectComponents[0] = transform.Find("GO Root/Camera/AIR_1(Clone)/GameObject/Camera").gameObject;
    CameraEffectComponents[1] = transform.Find("GO Root/Camera/AIR_2(Clone)/Camera").gameObject;
    CameraEffectComponents[2] = transform.Find("GO Root/Camera/Paddock_1(Clone)/CameraPos/GameObject/Camera").gameObject;
    CameraEffectComponents[3] = transform.Find("GO Root/Camera/TV_1_lead(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[4] = transform.Find("GO Root/Camera/TV_2_far(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[5] = transform.Find("GO Root/Camera/TV_2_lead(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[6] = transform.Find("GO Root/Camera/LAST_SPURT_1(Clone)/Pos/Camera").gameObject;
    CameraEffectComponents[7] = transform.Find("GO Root/Camera/Test30(Clone)/Poss/Camera").gameObject;

    CameraEffectComponents[8] = transform.Find("GO Root/Camera/Test01(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[9] = transform.Find("GO Root/Camera/Test02(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[10] = transform.Find("GO Root/Camera/Test03(Clone)/Poss/Camera").gameObject;

    CameraEffectComponents[11] = transform.Find("GO Root/Camera/Test04(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[12] = transform.Find("GO Root/Camera/Test05(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[13] = transform.Find("GO Root/Camera/Test06(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[14] = transform.Find("GO Root/Camera/Test07(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[15] = transform.Find("GO Root/Camera/Test08(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[16] = transform.Find("GO Root/Camera/Test09(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[17] = transform.Find("GO Root/Camera/Test10(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[18] = transform.Find("GO Root/Camera/Test11(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[19] = transform.Find("GO Root/Camera/Test12(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[20] = transform.Find("GO Root/Camera/Test13(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[21] = transform.Find("GO Root/Camera/Test14(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[22] = transform.Find("GO Root/Camera/Test15(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[23] = transform.Find("GO Root/Camera/Test16(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[24] = transform.Find("GO Root/Camera/Test17(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[25] = transform.Find("GO Root/Camera/Test18(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[26] = transform.Find("GO Root/Camera/Test19(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[27] = transform.Find("GO Root/Camera/Test20(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[28] = transform.Find("GO Root/Camera/Test21(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[29] = transform.Find("GO Root/Camera/Test22(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[30] = transform.Find("GO Root/Camera/Test23(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[31] = transform.Find("GO Root/Camera/Test24(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[32] = transform.Find("GO Root/Camera/Test25(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[33] = transform.Find("GO Root/Camera/Test26(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[34] = transform.Find("GO Root/Camera/Test27(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[34] = transform.Find("GO Root/Camera/Test28(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[35] = transform.Find("GO Root/Camera/Test29(Clone)/Poss/Camera").gameObject;

    CameraEffectComponents[36] = transform.Find("GO Root/Camera/HORSE_JOCKEY(Clone)").gameObject;

    CameraEffectComponents[37] = transform.Find("GO Root/CommonEnv/follow_camera's_focus/TOP_1(Clone)/Pos/Camera").gameObject;
    CameraEffectComponents[38] = transform.Find("GO Root/CommonEnv/follow_camera's_focus/TOP_2(Clone)/Pos/Camera").gameObject;
    CameraEffectComponents[39] = transform.Find("GO Root/CommonEnv/follow_camera's_focus/TOP_3(Clone)/Pos/Camera").gameObject;
    CameraEffectComponents[40] = transform.Find("GO Root/CommonEnv/follow_camera's_focus/FRONT_1(Clone)/Pos/Camera").gameObject;
    CameraEffectComponents[41] = transform.Find("GO Root/CommonEnv/follow_camera's_focus/SIDE_1(Clone)/Pos/Camera").gameObject;
    CameraEffectComponents[42] = transform.Find("GO Root/CommonEnv/follow_camera's_focus/SIDE_2(Clone)/Pos/Camera").gameObject;

    //lets use a lambada expression here for declaring a null
    if (CameraEffectComponents.Any(e => e != null))
    {
        foundAllComponents = true;
    } else
    {
        foundAllComponents = false;
    }
    yield return null;
}

void GetFogs()
{
    int env_idx = tzPlayInfo.Instance.ENV_01_IDX;
    //0: day, 1: night
    try
    {
        if (env_idx == 0 && FogEffectMorning == null)
        {
            fog = false;
            FogEffectMorning = transform.Find("GO Root/day/01_Env_Lev01_test01/Fog01 (1)").gameObject;
            Debug.Log("Its morning must get the Fog Morning Effect");
            //Fog Option
            
            OptionFogMorningOnAndOff();
            fog = true;
        }
        else if (env_idx == 1 && FogEffectEvening == null)
        {
            fog = false;
            FogEffectEvening = transform.Find("GO Root/night/01_Env_Lev01_night-test02/Fog01").gameObject;
            Debug.Log("Its morning must get the Night Morning Effect");
            //Fog Option
            
            OptionFogEveningOnAndOff();
            fog = true;
        }
        else
        {
            Debug.Log("There's something wrong!");
        }
    }
    catch (Exception e)
    {
        Debug.Log("Opps something is wrong :" + e.ToString());
    }
    
}

void OptionCameraOnAndOff()
{
    foreach (GameObject cam in CameraEffectComponents)
    {
        if (PlayerPrefs.GetInt(OptionPopup.CameraOptionSaving) == 1)
        {
            if (cam.GetComponent<Bloom>() != null)
            {
                cam.GetComponent<Bloom>().enabled = true;
            }

            if (cam.GetComponent<DepthOfFieldDeprecated>() != null)
            {
                cam.GetComponent<DepthOfFieldDeprecated>().enabled = true;
            }

            if (cam.GetComponent<DepthOfField>() != null)
            {
                cam.GetComponent<DepthOfField>().enabled = true;
            }

        }
        else
        {

            if (cam.GetComponent<Bloom>() != null)
            {
                cam.GetComponent<Bloom>().enabled = false;
            }

            if (cam.GetComponent<DepthOfFieldDeprecated>() != null)
            {
                cam.GetComponent<DepthOfFieldDeprecated>().enabled = false;
            }

            if (cam.GetComponent<DepthOfField>() != null)
            {
                cam.GetComponent<DepthOfField>().enabled = false;
            }
        }
    }
}

void OptionFogMorningOnAndOff()
{
    try
    {
        if (PlayerPrefs.GetInt(OptionPopup.FogOptionSaving) == 1)
        {
            FogEffectMorning.SetActive(true);
        }
        else
        {
            FogEffectMorning.SetActive(false);
        }
        
    }
    catch (Exception e)
    {
        Debug.Log("Something is wrong here :" + e.ToString());
    }
    
}

void OptionFogEveningOnAndOff()
{
    try
    {
        if (PlayerPrefs.GetInt(OptionPopup.FogOptionSaving) == 1)
        {
            FogEffectEvening.SetActive(true);
        }
        else
        {
            FogEffectEvening.SetActive(false);
        }

    }
    catch (Exception e)
    {
        Debug.Log("Something is wrong here :" + e.ToString());
    }
}
}

EDITTED: Here's the whole code for my OptionSetting.cs

using System;

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityStandardAssets.ImageEffects; using System.Linq;

public class MC_SettingBehaviour : MonoBehaviour {

[SerializeField]
GameObject[] CameraEffectComponents = new GameObject[43];

bool foundAllComponents = false;

[SerializeField]
GameObject FogEffectMorning = null;

[SerializeField]
GameObject FogEffectEvening = null;
bool fog = false;

private void Start()
{
    if (PlayerPrefs.GetInt(OptionPopup.LiveStreaming_) == 1)
    {
        this.enabled = false;
    } else
    {
        StartCoroutine(CameraComponents());
    }
}

void Update()
{
    if (!fog)
    {
        GetFogs();
        Debug.Log("BOOLEAN FOG :" + fog);
    }

    //if the camera components are all found
    if (foundAllComponents)
    {
        //Camera Option
        OptionCameraOnAndOff();
    }
    else
    {
        Debug.Log("Couldn't find yet any components on camera please wait...");
    }
}

IEnumerator CameraComponents()
{

    CameraEffectComponents[0] = transform.Find("GO Root/Camera/AIR_1(Clone)/GameObject/Camera").gameObject;
    CameraEffectComponents[1] = transform.Find("GO Root/Camera/AIR_2(Clone)/Camera").gameObject;
    CameraEffectComponents[2] = transform.Find("GO Root/Camera/Paddock_1(Clone)/CameraPos/GameObject/Camera").gameObject;
    CameraEffectComponents[3] = transform.Find("GO Root/Camera/TV_1_lead(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[4] = transform.Find("GO Root/Camera/TV_2_far(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[5] = transform.Find("GO Root/Camera/TV_2_lead(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[6] = transform.Find("GO Root/Camera/LAST_SPURT_1(Clone)/Pos/Camera").gameObject;
    CameraEffectComponents[7] = transform.Find("GO Root/Camera/Test30(Clone)/Poss/Camera").gameObject;

    CameraEffectComponents[8] = transform.Find("GO Root/Camera/Test01(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[9] = transform.Find("GO Root/Camera/Test02(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[10] = transform.Find("GO Root/Camera/Test03(Clone)/Poss/Camera").gameObject;

    CameraEffectComponents[11] = transform.Find("GO Root/Camera/Test04(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[12] = transform.Find("GO Root/Camera/Test05(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[13] = transform.Find("GO Root/Camera/Test06(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[14] = transform.Find("GO Root/Camera/Test07(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[15] = transform.Find("GO Root/Camera/Test08(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[16] = transform.Find("GO Root/Camera/Test09(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[17] = transform.Find("GO Root/Camera/Test10(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[18] = transform.Find("GO Root/Camera/Test11(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[19] = transform.Find("GO Root/Camera/Test12(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[20] = transform.Find("GO Root/Camera/Test13(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[21] = transform.Find("GO Root/Camera/Test14(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[22] = transform.Find("GO Root/Camera/Test15(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[23] = transform.Find("GO Root/Camera/Test16(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[24] = transform.Find("GO Root/Camera/Test17(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[25] = transform.Find("GO Root/Camera/Test18(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[26] = transform.Find("GO Root/Camera/Test19(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[27] = transform.Find("GO Root/Camera/Test20(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[28] = transform.Find("GO Root/Camera/Test21(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[29] = transform.Find("GO Root/Camera/Test22(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[30] = transform.Find("GO Root/Camera/Test23(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[31] = transform.Find("GO Root/Camera/Test24(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[32] = transform.Find("GO Root/Camera/Test25(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[33] = transform.Find("GO Root/Camera/Test26(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[34] = transform.Find("GO Root/Camera/Test27(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[34] = transform.Find("GO Root/Camera/Test28(Clone)/Poss/Camera").gameObject;
    CameraEffectComponents[35] = transform.Find("GO Root/Camera/Test29(Clone)/Poss/Camera").gameObject;

    CameraEffectComponents[36] = transform.Find("GO Root/Camera/HORSE_JOCKEY(Clone)").gameObject;

    CameraEffectComponents[37] = transform.Find("GO Root/CommonEnv/follow_camera's_focus/TOP_1(Clone)/Pos/Camera").gameObject;
    CameraEffectComponents[38] = transform.Find("GO Root/CommonEnv/follow_camera's_focus/TOP_2(Clone)/Pos/Camera").gameObject;
    CameraEffectComponents[39] = transform.Find("GO Root/CommonEnv/follow_camera's_focus/TOP_3(Clone)/Pos/Camera").gameObject;
    CameraEffectComponents[40] = transform.Find("GO Root/CommonEnv/follow_camera's_focus/FRONT_1(Clone)/Pos/Camera").gameObject;
    CameraEffectComponents[41] = transform.Find("GO Root/CommonEnv/follow_camera's_focus/SIDE_1(Clone)/Pos/Camera").gameObject;
    CameraEffectComponents[42] = transform.Find("GO Root/CommonEnv/follow_camera's_focus/SIDE_2(Clone)/Pos/Camera").gameObject;

    //lets use a lambada expression here for declaring a null
    if (CameraEffectComponents.Any(e => e != null))
    {
        foundAllComponents = true;
    } else
    {
        foundAllComponents = false;
    }
    yield return null;
}

void GetFogs()
{
    int env_idx = tzPlayInfo.Instance.ENV_01_IDX;
    //0: day, 1: night
    try
    {
        if (env_idx == 0 && FogEffectMorning == null)
        {
            fog = false;
            FogEffectMorning = transform.Find("GO Root/day/01_Env_Lev01_test01/Fog01 (1)").gameObject;
            Debug.Log("Its morning must get the Fog Morning Effect");
            //Fog Option
            
            OptionFogMorningOnAndOff();
            fog = true;
        }
        else if (env_idx == 1 && FogEffectEvening == null)
        {
            fog = false;
            FogEffectEvening = transform.Find("GO Root/night/01_Env_Lev01_night-test02/Fog01").gameObject;
            Debug.Log("Its morning must get the Night Morning Effect");
            //Fog Option
            
            OptionFogEveningOnAndOff();
            fog = true;
        }
        else
        {
            Debug.Log("There's something wrong!");
        }
    }
    catch (Exception e)
    {
        Debug.Log("Opps something is wrong :" + e.ToString());
    }
    
}

void OptionCameraOnAndOff()
{
    foreach (GameObject cam in CameraEffectComponents)
    {
        if (PlayerPrefs.GetInt(OptionPopup.CameraOptionSaving) == 1)
        {
            if (cam.GetComponent<Bloom>() != null)
            {
                cam.GetComponent<Bloom>().enabled = true;
            }

            if (cam.GetComponent<DepthOfFieldDeprecated>() != null)
            {
                cam.GetComponent<DepthOfFieldDeprecated>().enabled = true;
            }

            if (cam.GetComponent<DepthOfField>() != null)
            {
                cam.GetComponent<DepthOfField>().enabled = true;
            }

        }
        else
        {

            if (cam.GetComponent<Bloom>() != null)
            {
                cam.GetComponent<Bloom>().enabled = false;
            }

            if (cam.GetComponent<DepthOfFieldDeprecated>() != null)
            {
                cam.GetComponent<DepthOfFieldDeprecated>().enabled = false;
            }

            if (cam.GetComponent<DepthOfField>() != null)
            {
                cam.GetComponent<DepthOfField>().enabled = false;
            }
        }
    }
}

void OptionFogMorningOnAndOff()
{
    try
    {
        if (PlayerPrefs.GetInt(OptionPopup.FogOptionSaving) == 1)
        {
            FogEffectMorning.SetActive(true);
        }
        else
        {
            FogEffectMorning.SetActive(false);
        }
        
    }
    catch (Exception e)
    {
        Debug.Log("Something is wrong here :" + e.ToString());
    }
    
}

void OptionFogEveningOnAndOff()
{
    try
    {
        if (PlayerPrefs.GetInt(OptionPopup.FogOptionSaving) == 1)
        {
            FogEffectEvening.SetActive(true);
        }
        else
        {
            FogEffectEvening.SetActive(false);
        }

    }
    catch (Exception e)
    {
        Debug.Log("Something is wrong here :" + e.ToString());
    }
}
}
Source Link

Dynamically Changing GameObject makes NullReferenceException(C# Unity)

Here's my code

[SerializeField]
GameObject FogEffect = null;

void Update()
{
    GetFogs();
}

void GetFogs()
{
    int env_idx = tzPlayInfo.Instance.ENV_01_IDX;
    //0: day, 1: night
    if (env_idx == 0 && FogEffect == null)
    {
        FogEffect = transform.Find("GO Root/day/01_Env_Lev01_test01/Fog01 (1)").gameObject;
    } else if (env_idx == 1 && FogEffect == null)
    {
        FogEffect = transform.Find("GO Root/night/01_Env_Lev01_night-test02/Fog01").gameObject;
    } else
    {
        Debug.Log("There's something wrong!");
    }
}

I'm changing my prefabs dynamically so when it is Evening I am using evening prefab then if it is Day I'm using my day prefab. So basically i need to do it on Update() function because I am making an Option that the user can enable and disable the FOG GameObject. Now my problem is that everytime it changes the environment (Day and Night) a

NullReferenceException

is popping out but after that it will get the Fog GameObject again.

How can I solve this error.