コード例 #1
0
 static int QPYX_GetComponents_YXQP(IntPtr L_YXQP)
 {
     try
     {
         int QPYX_count_YXQP = LuaDLL.lua_gettop(L_YXQP);
         if (QPYX_count_YXQP == 2 && TypeChecker.CheckTypes <System.Type>(L_YXQP, 2))
         {
             UnityEngine.GameObject  QPYX_arg0_YXQP = (UnityEngine.GameObject)ToLua.CheckObject(L_YXQP, 1, typeof(UnityEngine.GameObject));
             System.Type             QPYX_arg1_YXQP = (System.Type)ToLua.ToObject(L_YXQP, 2);
             UnityEngine.Component[] QPYX_o_YXQP    = ComponentUtil.GetComponents(QPYX_arg0_YXQP, QPYX_arg1_YXQP);
             ToLua.Push(L_YXQP, QPYX_o_YXQP);
             return(1);
         }
         else if (QPYX_count_YXQP == 2 && TypeChecker.CheckTypes <string>(L_YXQP, 2))
         {
             UnityEngine.GameObject QPYX_arg0_YXQP = (UnityEngine.GameObject)ToLua.CheckObject(L_YXQP, 1, typeof(UnityEngine.GameObject));
             string QPYX_arg1_YXQP = ToLua.ToString(L_YXQP, 2);
             UnityEngine.Component[] QPYX_o_YXQP = ComponentUtil.GetComponents(QPYX_arg0_YXQP, QPYX_arg1_YXQP);
             ToLua.Push(L_YXQP, QPYX_o_YXQP);
             return(1);
         }
         else
         {
             return(LuaDLL.luaL_throw(L_YXQP, "invalid arguments to method: ComponentUtil.GetComponents"));
         }
     }
     catch (Exception e_YXQP)                {
         return(LuaDLL.toluaL_exception(L_YXQP, e_YXQP));
     }
 }
コード例 #2
0
    static int GetComponents(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 2 && TypeChecker.CheckTypes <System.Type>(L, 2))
            {
                UnityEngine.GameObject  arg0 = (UnityEngine.GameObject)ToLua.CheckObject(L, 1, typeof(UnityEngine.GameObject));
                System.Type             arg1 = (System.Type)ToLua.ToObject(L, 2);
                UnityEngine.Component[] o    = ComponentUtil.GetComponents(arg0, arg1);
                ToLua.Push(L, o);
                return(1);
            }
            else if (count == 2 && TypeChecker.CheckTypes <string>(L, 2))
            {
                UnityEngine.GameObject arg0 = (UnityEngine.GameObject)ToLua.CheckObject(L, 1, typeof(UnityEngine.GameObject));
                string arg1 = ToLua.ToString(L, 2);
                UnityEngine.Component[] o = ComponentUtil.GetComponents(arg0, arg1);
                ToLua.Push(L, o);
                return(1);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: ComponentUtil.GetComponents"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
        public static void GetComponentsOnTarg(GameObject container, ICollection <T> coll, bool includeComponentsOnContainer)
        {
            if (includeComponentsOnContainer)
            {
                ComponentUtil.GetComponents <T>(container, coll);
            }

            for (int i = 0; i < container.transform.childCount; i++)
            {
                ComponentUtil.GetComponents <T>(container.transform.GetChild(i), coll);
            }
        }
        public static TSub[] GetComponentsOnTarg <TSub>(GameObject container, bool includeComponentsOnContainer) where TSub : class, T
        {
            using (var set = com.spacepuppy.Collections.TempCollection.GetSet <TSub>())
            {
                if (includeComponentsOnContainer)
                {
                    ComponentUtil.GetComponents <TSub>(container, set);
                }

                for (int i = 0; i < container.transform.childCount; i++)
                {
                    ComponentUtil.GetComponents <TSub>(container.transform.GetChild(i), set);
                }

                return(set.ToArray());
            }
        }
コード例 #5
0
        public static T[] GetComponentsOnTarg(System.Type tp, GameObject container, bool includeComponentsOnContainer)
        {
            if (!TypeUtil.IsType(tp, typeof(T)))
            {
                throw new TypeArgumentMismatchException(tp, typeof(T), "tp");
            }

            using (var set = com.spacepuppy.Collections.TempCollection.GetSet <T>())
            {
                System.Func <Component, T> filter = (c) =>
                {
                    if (object.ReferenceEquals(c, null))
                    {
                        return(null);
                    }

                    if (tp.IsAssignableFrom(c.GetType()))
                    {
                        return(c as T);
                    }
                    else
                    {
                        return(null);
                    }
                };

                if (includeComponentsOnContainer)
                {
                    ComponentUtil.GetComponents <T>(container, set, filter);
                }

                for (int i = 0; i < container.transform.childCount; i++)
                {
                    ComponentUtil.GetComponents <T>(container.transform.GetChild(i), set, filter);
                }

                return(set.ToArray());
            }
        }
コード例 #6
0
    static void SpriteRendererChangeToUISprite()
    {
        //var assetPath = AssetDatabase.GetAssetPath(Selection.activeGameObject);
        //var prefab = AssetDatabase.LoadAssetAtPath(assetPath, typeof(GameObject)) as GameObject;
        var prefab = Selection.activeGameObject;

        if (prefab == null)
        {
            Debug.LogError("GameObject is null");
            return;
        }

        Debug.Log(string.Format("Doing... [{0}]", prefab));

        var renderers = ComponentUtil.GetComponents <Renderer>(prefab);

        foreach (var renderer in renderers)
        {
            var r = renderer as SpriteRenderer;
            if (r != null)
            {
                var go = r.gameObject;
                try
                {
                    DestroyImmediate(r, true);
                    if (null == go.GetComponent <UISprite>())
                    {
                        go.AddComponent <UISprite>();
                    }
                }
                catch (Exception ex)
                {
                    Debug.LogError(ex.Message);
                }
            }
        }

        Debug.Log("Done...");
    }
コード例 #7
0
ファイル: ParticleShaderHelper.cs プロジェクト: PcloD/Unity-1
    public static void ReplaceShadersOfParticleMaterialsToMobileVersion()
    {
        var searchPath             = Path.Combine(Application.dataPath, "Particles");
        var dirs                   = Directory.GetDirectories(searchPath);
        var materialsNeedToProcess = new List <Material>();

        // Find all of materials which referenced by renderer.
        foreach (var dir in dirs)
        {
            var files = Directory.GetFiles(dir, "*.prefab");

            foreach (var file in files)
            {
                var fileInfo  = new FileInfo(file);
                var assetPath = Path.Combine(fileInfo.DirectoryName, Path.GetFileName(file));
                assetPath = assetPath.Substring(Application.dataPath.Length - 6);
                var prefab = AssetDatabase.LoadAssetAtPath(assetPath, typeof(GameObject)) as GameObject;

                if (prefab == null)
                {
                    continue;
                }

                var renderers = ComponentUtil.GetComponents <Renderer>(prefab);

                if (renderers == null)
                {
                    continue;
                }

                foreach (var renderer in renderers)
                {
                    if (renderer == null)
                    {
                        continue;
                    }

                    if (renderer.sharedMaterials == null ||
                        renderer.sharedMaterials.Length == 0)
                    {
                        continue;
                    }

                    foreach (var material in renderer.sharedMaterials)
                    {
                        materialsNeedToProcess.Add(material);
                    }
                }
            }
        }

        if (materialsNeedToProcess.Count == 0)
        {
            return;
        }

        var count = 0;

        foreach (var material in materialsNeedToProcess)
        {
            if (EditorUtility.DisplayCancelableProgressBar(
                    "Replace Shaders of Particle Materials to Mobile Version...",
                    string.Format("Proessing \"{0}\"", material.name),
                    (float)count / materialsNeedToProcess.Count))
            {
                break;
            }

            if (ReplaceShaderIfNeeded(material))
            {
                EditorUtility.SetDirty(material);
            }

            ++count;
        }

        EditorUtility.ClearProgressBar();
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    }