using System; using UnityEngine; using EvolutStudio.tinysAPI.BaseClasses; namespace EvolutStudio { namespace VRPortfolioWork { namespace Components { public class VarnishMaterialChangeComponent : BaseClassComponent { #region Public Attributes // reference to the current selected material color public Material selectedMaterial; // reference to the proxyObject to change the material on public GameObject proxyObject; #endregion #region Private Attributes // private reference to the game object renderer instance private Renderer _renderer; #endregion #region Public Functions public override void ValidationFailed(string notification) { throw new NotImplementedException(); } public override void ValidationSucceeded(string notification) { if (notification.Equals(BaseClassNotification.POINTERCLICKEVENT)) { // getting the materials array Material[] proxyObjectMats = _renderer.materials; // changing the old material with the new one proxyObjectMats[3] = selectedMaterial; // overwritting the materials array _renderer.materials = proxyObjectMats; } } // Use this for initialization public override void Init() { _ComponentsArrayIndex = modulInstance.View.RegisterComponent(this); // save the reference _renderer = proxyObject.GetComponent(); // getting the materials array Material[] proxyObjectMats = _renderer.materials; // changing the old material with the new one proxyObjectMats[3] = selectedMaterial; // overwritting the materials array _renderer.materials = proxyObjectMats; } #endregion #region Private Functions // Add your private functions #endregion } } } }