Le Shader dans Unity dispose de quatre modes de rendu, qui sont :
——Opaque(不透明) ——Cutout(镂空) ——Fade(隐现) ——Transparent(透明)
J'ai déjà rencontré un besoin, j'ai besoin d'ajouter un effet de gel à un objet de jeu spécifique, mais à mon Shader
est un Shader complètement gelé et sa valeur de couleur ne peut pas être ajustée via les paramètres. Plus tard, mon collègue m'a dit que je pouvais
changer la valeur Alpha de l'objet lui-même en modifiant le mode de rendu, la première étape a donc été de trouver le code sur Internet concernant la modification du mode de rendu du Shader d'exécution, comme suit.
http://www.voidcn.com/article...
//获取目标身上的渲染组件 var renderer = GetComponentsInChildren<renderer>(); // 建立一个冰冻数组 第二个数组元素是事先找好的冰冻特效 Material[] frostMatetials = new Material[2] { renderer.material, frostEffect }; //添加冰冻特效到人物身上的数组中 renderer.materials = frostMatetials; //实例化一个渲染模式变量 var fadeMode = SetMaterialRenderingMode.RenderingMode.Fade; //根据网上的方法更改你的 Shader 渲染模式为 Fade SetMaterialRenderingMode.SetMaterialRenderingModeMethod( renderer.materials[0],fadeMode);</renderer>
objet cible Color, puis instancier une Color et utilisez le constructeur pour le modifier comme vous le souhaitez. La valeur Alpha souhaitée. Comme suit :
Color currentcolor03 = new Color { a = 0.8f, r = renderer.materials[0].color.r, g = renderer.materials[0].color.g, b = renderer.materials[0].color.b }; //替换目标 Color 属性就可以实现了
, et les choses sont devenues beaucoup plus simples.
entre parenthèses. . L'un est un paramètre de type String, indiquant que le paramètre que vous souhaitez modifier est obtenu via String, et le second est la valeur modifiée.
Hiérarchie, l'objet en changement reviendra soudainement à l'état par défaut avant le changement, ou si
vous le sélectionnez à l'avance Le même effet apparaîtra si l'objet doit être modifié, c'est-à-dire que cet objet de jeu ne peut pas être sélectionné dans l'état de compilation et que son état de rendu ne peut pas être visualisé dans le panneau Inspecteur. avec un rendu à l'exécution Des mots pour
décrire ce comportement,
Si vous modifiez le mode de rendu d'un objet de jeu Shader au moment de l'exécution, alors l'affichage de son mode de rendu entraînera la réinitialisation de ses propriétés de mode de rendu
.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!