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); } ); }
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); }
public override void Set(string propertyName, int value) { material.SetInt(propertyName, value); }