static internal void UnregisterRenderMode(SpriteRenderModeSetting settings) { SpriteRenderModeGroup group = renderModeGroup[(int)settings.renderMode]; foreach (Material mat in group.materials.Values) { if (Application.isPlaying) { Object.Destroy(mat); } else { Object.DestroyImmediate(mat); } } }
static internal void RegisterRenderMode(SpriteRenderModeSetting setting) { if (setting == null) { return; } int idx = (int)setting.renderMode; SpriteRenderModeGroup group = renderModeGroup[idx]; if (group == null) { renderModeGroup[idx] = group = new SpriteRenderModeGroup(); group.isValid = true; } group.setting = setting; }
static public Material GetMaterial(SpriteRenderMode rm, Texture tex) { int idx = rm == SpriteRenderMode.None ? 0 : (int)rm; SpriteRenderModeGroup group = renderModeGroup[idx]; Material ret = null; if (group != null) { if ((ret = group.materials[tex] as Material) == null) { ret = new Material(group.setting.shader); ret.mainTexture = tex; group.materials[tex] = ret; group.setting.materials.Add(ret); } } else { Debug.LogError("unknown RenderMode " + rm); } return(ret); }
internal static bool IsSemiTransparent(SpriteRenderMode rm) { SpriteRenderModeGroup group = renderModeGroup[(int)rm]; return(group != null ? group.setting.sortByDepth : false); }
static internal void UnregisterRenderMode(SpriteRenderModeSetting settings) { SpriteRenderModeGroup group = renderModeGroup[(int)settings.renderMode]; //todo:remove material owner by settings }
static internal void RegisterRenderMode(SpriteRenderModeSetting setting) { if (setting == null) return; int idx = (int)setting.renderMode; SpriteRenderModeGroup group = renderModeGroup[idx]; if (group == null) { renderModeGroup[idx] = group = new SpriteRenderModeGroup(); group.isValid = true; } group.setting = setting; }