Example #1
0
        public static void LoadMaterials(List <Material> materials)
        {
            lib = materials.ToDictionary(
                kv => kv.Id,
                kv => kv
                );

            matLib = materials.ToDictionary(
                kv => kv.Id,
                kv =>
            {
                var mat   = new UnityEngine.Material(UnityEngine.Shader.Find("Universal Render Pipeline/Lit"));
                mat.name  = kv.Name;
                mat.color = new UnityEngine.Color(
                    kv.Color.Red / 255f,
                    kv.Color.Green / 255f,
                    kv.Color.Blue / 255f,
                    (100 - kv.Transparency) / 100f
                    );
                if (mat.name.Contains("Glass"))
                {
                    mat.color = new UnityEngine.Color(
                        185 / 255f,
                        185 / 255f,
                        224 / 255f,
                        10 / 255f
                        );
                }
                if (kv.Transparency > 0)
                {
                    mat.SetFloat("_Surface", 1);
                    mat.SetFloat("_Blend", 0);
                    mat.SetOverrideTag("RenderType", "Transparent");
                    mat.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);
                    mat.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
                    mat.SetInt("_ZWrite", 0);
                    mat.DisableKeyword("_ALPHAPREMULTIPLY_ON");
                    mat.renderQueue = (int)UnityEngine.Rendering.RenderQueue.Transparent;
                    mat.SetShaderPassEnabled("ShadowCaster", false);
                }
                mat.SetFloat("_Metallic", (float)kv.Shininess / byte.MaxValue);
                mat.SetFloat("_Smoothness", (float)kv.Smoothness / byte.MaxValue);
                return(mat);
            }
                );
        }
Example #2
0
        private void SetAnimation(ref Animator animator, Entity e)
        {
            if (animator.data.Length <= 1)
            {
                if (animator.data.Length == 0)
                {
                    //UnityEngine.Debug.LogError("Animator for entity doesnt have animations.");
                }
                return;
            }
            int animationIndex = 0;

            if (animator.isWalking == 0)
            {
                animationIndex = 0;
            }
            else
            {
                if (animator.data.Length > 1)
                {
                    animationIndex = 1;
                }
            }
            float      timeBegun = UnityEngine.Time.time;
            RenderMesh renderer;
            //UnityEngine.Debug.LogError("Setting new Animation to: " + animationIndex);
            int   framesAddition  = GetFramesAddition(ref animator, animationIndex);
            float animationTime   = (animator.data[animationIndex].time);
            int   framesPerSecond = (animator.data[animationIndex].frames);

            renderer = World.EntityManager.GetSharedComponentData <RenderMesh>(e);
            UnityEngine.Material material = (renderer.material); // new Material
            material.SetFloat("_TimeBegun", timeBegun);
            material.SetFloat("_AnimationTime", animationTime);
            material.SetInt("_FramesAddition", framesAddition);
            material.SetInt("_FramesPerSecond", framesPerSecond);
            //material.SetInt("_AnimationSpeed", 1);
            renderer.material = material;
            World.EntityManager.SetSharedComponentData(e, renderer);
        }
Example #3
0
 public override void Set(string propertyName, int value)
 {
     material.SetInt(propertyName, value);
 }