Пример #1
0
    public void CopyClassValues(BasePPFX sourceComp, BasePPFX targetComp)
    {
        FieldInfo[] sourceFields = sourceComp.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
        int         i            = 0;

        for (i = 0; i < sourceFields.Length; i++)
        {
            var value = sourceFields[i].GetValue(sourceComp);
            sourceFields[i].SetValue(targetComp, value);
        }

        targetComp.material = Instantiate(sourceComp.material);
    }
Пример #2
0
    public void PlayPostProcessEffect(GameObject prefab, Vector2 center, float angle)
    {
        if (!prefab)
        {
            return;
        }

        BasePPFX[] PPFX = prefab.GetComponents <BasePPFX>();
        foreach (BasePPFX PPS in PPFX)
        {
            BasePPFX PPSCopy = (BasePPFX)mainCamera.AddComponent(PPS.GetType());
            CopyClassValues(PPS, PPSCopy);
            PPSCopy.SetCenter(center);
            PPSCopy.SetAngle(angle);
        }
    }