Replace textures in real time ingame.
// Texture Replacer script by Ronyx69 | |
// INGAME not ASSET EDITOR | |
// Replaces textures ingame in real time! | |
// Much thanks to SamsamTS for explaining Actions to me and being helpful. | |
// D, ACI, XYS textures for buildings, props, vehicles and D, XYCA for trees. | |
// Unfortunately CANNOT replace LOD textures. | |
// Technically I know how to replace LOD textures, | |
// but ingame they are combined into one big texture atlas on level load. | |
// I would like to know how to rebuild this atlas ingame, | |
// but I don't know how. Do you know? | |
// Tree LODs work since that's different. | |
// Camera needs to be moved for tree LOD to update. | |
// SCROLL TO BOTTOM, IGNORE THIS (under the hood stuff) | |
Texture2D texture2D; var texturePath = " "; var log = " "; | |
BuildingInfo prefab_building = null; PropInfo prefab_prop = null; | |
TreeInfo prefab_tree = null; VehicleInfo prefab_vehicle = null; | |
Action<string, Material, Material, string> changeTextures = (name, material, material2, type) => | |
{ | |
log=type + "/" + name + ": "; | |
if(type=="props" || type=="buildings" || type=="vehicles") | |
{ | |
texturePath = "textures/" + type + "/" + name + "_D.png"; if (File.Exists(texturePath)) { | |
log=log + "D "; texture2D = new Texture2D(1, 1); | |
texture2D.LoadImage(File.ReadAllBytes(texturePath)); material.SetTexture("_MainTex", texture2D); } | |
texturePath = "textures/" + type + "/" + name + "_ACI.png"; if (File.Exists(texturePath)) { | |
log=log + "ACI "; texture2D = new Texture2D(1, 1); | |
texture2D.LoadImage(File.ReadAllBytes(texturePath)); material.SetTexture("_ACIMap", texture2D); } | |
texturePath = "textures/" + type + "/" + name + "_XYS.png"; if (File.Exists(texturePath)) { | |
log=log + "XYS "; texture2D = new Texture2D(1, 1); | |
texture2D.LoadImage(File.ReadAllBytes(texturePath)); material.SetTexture("_XYSMap", texture2D); } | |
} | |
else if(type=="trees") | |
{ | |
texturePath = "textures/" + type + "/" + name + "_D.png"; if (File.Exists(texturePath)) { | |
log=log + "D "; texture2D = new Texture2D(1, 1); texture2D.LoadImage(File.ReadAllBytes(texturePath)); | |
material.SetTexture("_MainTex", texture2D); material2.SetTexture("_MainTex", texture2D); } | |
texturePath = "textures/" + type + "/" + name + "_XYCA.png"; if (File.Exists(texturePath)) { | |
log=log + "XYCA "; texture2D = new Texture2D(1, 1); texture2D.LoadImage(File.ReadAllBytes(texturePath)); | |
material.SetTexture("_XYCAMap", texture2D); material2.SetTexture("_XYCAMap", texture2D); } | |
} | |
if(log==(type + "/" + name + ": ")) Debug.LogWarning(type + "/" + name + ": NOTHING REPLACED"); | |
else Debug.Log(log); | |
}; | |
Action<string> building = (name) => { prefab_building=PrefabCollection<BuildingInfo>.FindLoaded(name); | |
changeTextures(name, prefab_building.m_material, prefab_building.m_lodMaterial, "buildings"); }; | |
Action<string> prop = (name) => { prefab_prop=PrefabCollection<PropInfo>.FindLoaded(name); | |
changeTextures(name, prefab_prop.m_material, prefab_prop.m_lodMaterial, "props"); }; | |
Action<string> vehicle = (name) => { prefab_vehicle=PrefabCollection<VehicleInfo>.FindLoaded(name); | |
changeTextures(name, prefab_vehicle.m_material, prefab_vehicle.m_lodMaterial, "vehicles"); }; | |
Action<string> tree = (name) => { prefab_tree=PrefabCollection<TreeInfo>.FindLoaded(name); | |
changeTextures(name, prefab_tree.m_material, prefab_tree.m_renderMaterial, "trees"); }; | |
// USAGE: | |
// type("name"); | |
// TYPE: | |
// building, prop, tree, vehicle | |
// NAME: | |
// VANILLA: name | |
// LOCAL: filename.Asset Name_Data | |
// WORKSHOP: steamid.Asset Name_Data | |
// TEXTURE LOCATION: gamefolder/textures/type | |
// types are buildings, props, vehicles, trees | |
// TEXTURE NAMING: | |
// name_textureType.png | |
// name is exactly the same name used in the function | |
// texture types = D, ACI, XYS, XYCA(for trees) | |
// EXAMPLES BELOW (delete and add your own) | |
building("816656919.Gran Casino_Data"); | |
prop("Crate 01"); | |
prop("Crate pile"); | |
vehicle("Bus"); | |
tree("754129192.Norfolk Island Pine_Data"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment