コード例 #1
0
    //////////////////////////////////////////////////////////////////////////
    #endregion

    #region Handlers
    //////////////////////////////////////////////////////////////////////////
    //HANDLERS
    //////////////////////////////////////////////////////////////////////////
    void Start()
    {
        GameObject _ArcContainer = new GameObject("Arc_Container");

        _ArcContainer.transform.SetParent(transform);
        for (int i = 0; i < m_Arcs; i++)
        {
            GameObject _Arc = new GameObject("Lightning_Arc_" + i.ToString());
            _Arc.transform.SetParent(_ArcContainer.transform);
            _Arc.AddComponent <LineRenderer>();
            _Arc.AddComponent <LightningArc>();
            _Arc.GetComponent <LightningArc>().SetTransforms(m_StartPoint, m_EndPoint);
            _Arc.GetComponent <LightningArc>().SetMaterialColor(m_Material, new Color(
                                                                    Mathf.Abs(Random.Range(m_MeanColor.r * (1.0f - m_ColorOffsetPercentage), m_MeanColor.r * (1.0f + m_ColorOffsetPercentage))),
                                                                    Mathf.Abs(Random.Range(m_MeanColor.g * (1.0f - m_ColorOffsetPercentage), m_MeanColor.g * (1.0f + m_ColorOffsetPercentage))),
                                                                    Mathf.Abs(Random.Range(m_MeanColor.b * (1.0f - m_ColorOffsetPercentage), m_MeanColor.b * (1.0f + m_ColorOffsetPercentage)))));
            _Arc.GetComponent <LightningArc>().SetMode(m_Mode);
            _Arc.GetComponent <LightningArc>().SetParameters(
                Random.Range(m_MinSegments, m_MaxSegments + 1),
                Random.Range(m_MeanWidth * (1.0f - m_WidthOffsetPercentage), m_MeanWidth * (1.0f + m_WidthOffsetPercentage)),
                RandomVector.Range <Vector3>(m_MeanAmplitude * (1.0f - m_AmplitudeOffsetPercentage), m_MeanAmplitude * (1.0f + m_AmplitudeOffsetPercentage)),
                Random.Range(m_MeanFrequency * (1.0f - m_FrequencyOffsetPercentage), m_MeanFrequency * (1.0f + m_FrequencyOffsetPercentage)));
            _Arc.GetComponent <LightningArc>().Begin();
        }

        GameObject _AudioContainer = new GameObject("Audio_Container");

        _AudioContainer.transform.SetParent(transform);
        for (int i = 0; i < m_Sounds.Count; i++)
        {
            if (m_Sounds[i] && m_Volumes[i] > 0.0f)
            {
                GameObject _AS = new GameObject("AudioSource_" + i.ToString());
                _AS.transform.SetParent(_AudioContainer.transform);
                _AS.AddComponent <AudioSource>();
                _AS.GetComponent <AudioSource>().clip        = m_Sounds[i];
                _AS.GetComponent <AudioSource>().volume      = m_Volumes[i];
                _AS.GetComponent <AudioSource>().pitch       = m_Pitches[i];
                _AS.GetComponent <AudioSource>().loop        = true;
                _AS.GetComponent <AudioSource>().maxDistance = Vector3.Distance(m_StartPoint.position, m_EndPoint.position) * 0.5f;
                _AS.GetComponent <AudioSource>().Play();
            }
        }
    }