Esempio n. 1
0
    public void OnDestroy()
    {
        if (m_FOWShadow != null)
        {
            m_FOWShadow.Destroy();
            m_FOWShadow = null;
        }

        m_PlayerDataList = null;
    }
Esempio n. 2
0
    public void Init()
    {
        if (m_FOWShadowType == FOWShadowType.FOWSHADOW_TYPE_DOTA && m_PregenerateMode == FOWSDFPregenerateMode.GPU)
        {
            m_PregenerateMode = FOWSDFPregenerateMode.CPU;
            Debug.LogWarning("FOW Grid Mode GPU not supported");
        }

        // Camera need to write depth into depthTexture
        if (m_Camera == null)
        {
            m_Camera = gameObject.GetComponent <Camera>();
            m_Camera.depthTextureMode = DepthTextureMode.Depth;
        }

        if (m_FOWShadow == null || m_FOWShadowType != m_FOWShadow.GetFowShadowType())
        {
            if (m_FOWShadow != null)
            {
                m_FOWShadow.Destroy();
            }

            switch (m_FOWShadowType)
            {
            case FOWShadowType.FOWSHADOW_TYPE_DOTA:
                m_FOWShadow = new FOWShadowDota(m_Data);
                break;

            case FOWShadowType.FOWSHADOW_TYPE_SDF:
                m_FOWShadow = new FOWShadowSDF(m_Data);
                ((FOWShadowSDF)m_FOWShadow).m_TextureSavePath = m_TextureSavePath;
                ((FOWShadowSDF)m_FOWShadow).m_PregenerateMode = m_PregenerateMode;
                break;
            }
        }

        if (m_EffectMaterial == null)
        {
            m_EffectMaterial = new Material(Shader.Find("Hidden/FOWEffect"));
        }

        m_IsInited = true;
    }