public void Build(INitroxPlayer player) { float playerHue; float playerSaturation; float playerVibrance; Color.RGBToHSV(player.PlayerSettings.PlayerColor, out playerHue, out playerSaturation, out playerVibrance); float minVibrance = playerVibrance >= 0.75f ? 23f : 15f; HsvColorFilter filter = new HsvColorFilter(playerHue, playerSaturation, playerVibrance, -1f); filter.AddHueRange(5f, 45f); filter.AddSaturationRange(50f, 100f); filter.AddVibranceRange(minVibrance, 100f); GameObject diveSuit = modelGeometry.RequireGameObject("diveSuit"); SkinnedMeshRenderer[] renderers = diveSuit.GetAllComponentsInChildren <SkinnedMeshRenderer>(); Material torsoMaterial = renderers[0].materials[0]; torsoMaterial.ApplyFiltersToMainTexture(filter); Material armsMaterial = renderers[0].materials[1]; armsMaterial.ApplyFiltersToMainTexture(filter); }
public void Build(INitroxPlayer player) { float playerHue; //Ignored because we simply need to retrieve the hue of the PlayerColor. float ignoredSaturation; float ignoredVibrance; Color.RGBToHSV(player.PlayerSettings.PlayerColor, out playerHue, out ignoredSaturation, out ignoredVibrance); HsvColorFilter filter = new HsvColorFilter(playerHue, -1f, -1f, -1f); filter.AddHueRange(0f, 60f); GameObject diveSuit = modelGeometry.transform.Find("diveSuit").gameObject; SkinnedMeshRenderer[] renderers = diveSuit.GetAllComponentsInChildren <SkinnedMeshRenderer>(); Material torsoMaterial = renderers[0].materials[0]; torsoMaterial.ApplyFiltersToMainTexture(filter); Material armsMaterial = renderers[0].materials[1]; armsMaterial.ApplyFiltersToMainTexture(filter); }