コード例 #1
0
 public void RegisterProcess(int position, CommonRenderProcess process)
 {
     if (position > branchProcessPath.Count + 1)
     {
         branchProcessPath.Add(process);
     }
     else if (position < branchProcessPath.Count - 1)
     {
         branchProcessPath.Insert(0, process);
     }
     else
     {
         branchProcessPath.Insert(position, process);
     }
 }
コード例 #2
0
    public static T CreateProcess <T>(GameObject processManager) where T : CommonRenderProcess
    {
        T          process = null;
        GameObject obj     = new GameObject();

        obj.transform.parent        = processManager.transform;
        obj.transform.localPosition = Vector3.zero;
        if (typeof(T) == typeof(EffectRenderProcess))
        {
            obj.name = "EffectRenderProcess";
            obj.transform.position += Vector3.up * 1000;
            CommonRenderProcess temp = obj.AddComponent <EffectRenderProcess>();
            process = (T)temp;
        }
        else if (typeof(T) == typeof(PreRenderProcess))
        {
            obj.name = "PreRenderProcess";
            obj.transform.position += Vector3.up * 2000;
            CommonRenderProcess temp = obj.AddComponent <PreRenderProcess>();
            process = (T)temp;
        }
        else if (typeof(T) == typeof(TransitionRenderPrecess))
        {
            obj.name = "TransitionRenderPrecess";
            obj.transform.position += Vector3.up * 3000;
            CommonRenderProcess temp = obj.AddComponent <TransitionRenderPrecess>();
            process = (T)temp;
        }
        else if (typeof(T) == typeof(PostRenderProcess))
        {
            obj.name = "PostRenderProcess";
            obj.transform.position += Vector3.up * 4000;
            CommonRenderProcess temp = obj.AddComponent <PostRenderProcess>();
            process = (T)temp;
        }
        return(process);
    }