public override void OnLoad() { resourcesFormater = new ResourcesFormater(); Events.OnEntityPlaced += (entity) => { if (entity.Name == "MeshEntity") { AddScript(entity); } }; Events.OnLevelSave += (Level level) => { foreach (var e in level.Entities) { if (e.Name.Contains("MeshEntity")) { MeshEntityData meshEntityData = e.InternalObject.GetComponent <MeshEntityScript>().meshEntityData; level.CustomData.Write("MeshEntityData|" + level.Entities.IndexOf(e), meshEntityData.ToString()); } } }; Events.OnLevelLoaded += (level) => { var data = level.CustomData.ReadAll(); List <MeshEntityData> meshEntityDatas = new List <MeshEntityData>(); foreach (var da in data) { if (da.Key.Contains("MeshEntity")) { MeshEntityData meshEntityData = new MeshEntityData(da.RawValue.ToString()); meshEntityDatas.Add(meshEntityData); } } foreach (var e in level.Entities) { if (e.Name.Contains("MeshEntity")) { MeshEntityData meshEntityData = meshEntityDatas.Find(match => match.ID == e.Id); AddScript(e, meshEntityData); } } }; void AddScript(Entity entity, MeshEntityData meshEntityData = null) { MeshEntityScript meshEntityScript = entity.InternalObject.gameObject.AddComponent <MeshEntityScript>(); meshEntityScript.entity = entity; meshEntityScript.meshEntityData = meshEntityData; } }
void Start() { if (!StatMaster.levelSimulating) { if (meshEntityData == null) { meshEntityData = new MeshEntityData(entity.Id, new Color(255, 255, 255, 255)); } redSlider = entity.InternalObject.EntityBehaviour.AddSlider("Red", "Red", meshEntityData.Color.r, 0, 255); greenSlider = entity.InternalObject.EntityBehaviour.AddSlider("Green", "Green", meshEntityData.Color.g, 0, 255); blueSlider = entity.InternalObject.EntityBehaviour.AddSlider("Blue", "Blue", meshEntityData.Color.b, 0, 255); alphaSlider = entity.InternalObject.EntityBehaviour.AddSlider("Alpha", "Alpha", meshEntityData.Color.a, 0, 255); redSlider.ValueChanged += (value) => { ChandedPropertise(); }; greenSlider.ValueChanged += (value) => { ChandedPropertise(); }; blueSlider.ValueChanged += (value) => { ChandedPropertise(); }; alphaSlider.ValueChanged += (value) => { ChandedPropertise(); }; material = entity.InternalObject.visualController.renderers[0].material; ChandedPropertise(); } }