Пример #1
0
        /// <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);
        }
Пример #2
0
    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.");
        }
    }
Пример #3
0
 public Live2DDrawable(CubismRenderer drawable)
 {
     CubismRenderer = drawable;
     Transform      = drawable.transform;
     CubismRenderer.MeshRenderer.forceRenderingOff = true;
     RenderMaterial           = CubismRenderer.Material;
     RenderMaterial.hideFlags = HideFlags.DontSaveInBuild | HideFlags.DontSaveInEditor;
 }
Пример #4
0
        /// <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>()
                    }
                });
            }
Пример #6
0
    /// <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;
            }
        }
    }
Пример #7
0
        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>();
 }