/// <summary> /// Sets the <see cref="CubismRenderer"/> to reference. /// </summary> /// <param name="value">Value to set.</param> /// <returns>Instance.</returns> internal CubismMaskRenderer SetMainRenderer(CubismRenderer value) { MainRenderer = value; return(this); }
public void Reload() { if (model != null) { if (newTextures != null && newTextures.Count != 0) { int replacedCount = 0; foreach (var drawable in model.Drawables) { CubismRenderer r = drawable.gameObject.GetComponent <CubismRenderer>(); bool hasTextureForDrawable = drawable.TextureIndex < newTextures.Count && newTextures[drawable.TextureIndex] != null; if (r != null && hasTextureForDrawable) { r.MainTexture = newTextures[drawable.TextureIndex]; replacedCount++; } } Debug.Log("Replaced textures for model \"" + model.name + "\" (" + replacedCount + "/" + model.Drawables.Length + " drawables)."); } else { Debug.Log("Set replacement texture(s) first."); } } else { Debug.Log("Set model first."); } }
public Live2DDrawable(CubismRenderer drawable) { CubismRenderer = drawable; Transform = drawable.transform; CubismRenderer.MeshRenderer.forceRenderingOff = true; RenderMaterial = CubismRenderer.Material; RenderMaterial.hideFlags = HideFlags.DontSaveInBuild | HideFlags.DontSaveInEditor; }
/// <summary> /// Sets the <see cref="CubismRenderer"/> to reference. /// </summary> /// <param name="value">Value to set.</param> /// <returns>Instance.</returns> internal CubismMaskRenderer SetMainRenderer(CubismRenderer value) { MainRenderer = value; IsCulling = !(MainRenderer.gameObject.GetComponent <CubismDrawable>().IsDoubleSided); return(this); }
/// <summary> /// Add <see cref="MasksMaskedsPair"/> to the list. /// </summary> public void Add(CubismDrawable masked, CubismDrawable[] masks) { // Try to add masked to existing mask compound. for (var i = 0; i < Entries.Count; ++i) { var match = (Entries[i].Masks.Length == masks.Length); if (!match) { continue; } for (var j = 0; j < Entries[i].Masks.Length; ++j) { if (Entries[i].Masks[j] != masks[j].GetComponent <CubismRenderer>()) { match = false; break; } } if (!match) { continue; } Entries[i].Maskeds.Add(masked.GetComponent <CubismRenderer>()); return; } // Create new pair. var renderers = new CubismRenderer[masks.Length]; for (var i = 0; i < masks.Length; ++i) { renderers[i] = masks[i].GetComponent <CubismRenderer>(); } Entries.Add(new MasksMaskedsPair { Masks = renderers, Maskeds = new List <CubismRenderer>() { masked.GetComponent <CubismRenderer>() } }); }
/// <summary> /// 换装更新Renderer 里面的 MainTexture/贴图 /// 资源可以自动释放无需程序员操作 /// </summary> /// <param name="cubismRender"></param> private async void UpdateRenderer(CubismRenderer cubismRender, List <CostumeTextureInfo> UseTexture, bool isInit = false) { var defTextureName = string.Empty; for (int i = 0; i < UseTexture.Count; i++) { defTextureName = cubismRender.MainTexture.name; if (defTextureName == UseTexture[i].DefTextureName) { //初始化 .ToLower() if (isInit && defTextureName == UseTexture[i].UseTextureName) { continue; } cubismRender.MainTexture = await ABManager.GetAssetAsync <Texture2D>(UseTexture[i].UseTextureName); cubismRender.MainTexture.name = defTextureName; } } }
public void Refresh() { parameter = this.GetComponent <CubismParameter>(); if (From != null) { fromRender = From.GetComponent <CubismRenderer>(); } if (To != null) { toRender = To.GetComponent <CubismRenderer>(); } var model = this.GetComponentInParent <CubismModel>(); if (model != null) { modelTransform = model.transform; } }
private void Start() { // ArtMeshのCubismRendererを取得 _cubismRenderer = ArtMesh.GetComponent <CubismRenderer>(); }