public void WeWillSetTheIdOnAGameObject() { GameObject obj = new GameObject(); int id = obj.GetInstanceID(); obj.SetNewId(new Dictionary <int, UnityObject>()); Assert.That(obj.GetInstanceID(), Is.Not.EqualTo(id)); }
public void TheIdMapWillNotContainPrefabs() { GameObject go = new GameObject(true); TestComponent cmp = new TestComponent(); go.AddComponent(cmp); Dictionary<int, UnityObject> ids = new Dictionary<int, UnityObject>(); go.SetNewId(ids); Assert.That(ids.Count, Is.EqualTo(0)); }
public void TheIdMapWillContainTheObjectAndItsOriginalId() { Dictionary<int, UnityObject> ids = new Dictionary<int, UnityObject>(); GameObject go = new GameObject(); go.SetNewId(ids); Assert.That(ids.Count, Is.EqualTo(2)); Assert.That(ids.ContainsValue(go), Is.True); Assert.That(ids.ContainsValue(go.transform), Is.True); }
public void TheIdMapWillContainTheObjectAndItsOriginalId() { Dictionary <int, UnityObject> ids = new Dictionary <int, UnityObject>(); GameObject go = new GameObject(); go.SetNewId(ids); Assert.That(ids.Count, Is.EqualTo(2)); Assert.That(ids.ContainsValue(go), Is.True); Assert.That(ids.ContainsValue(go.transform), Is.True); }
public void WeWillSetTheIdOnTheComponentsOfAGameObject() { GameObject obj = new GameObject(); TestComponent comp = new TestComponent(); obj.AddComponent(comp); int id = comp.GetInstanceID(); obj.SetNewId(new Dictionary <int, UnityObject>()); Assert.That(comp.GetInstanceID(), Is.Not.EqualTo(id)); }
public void PrefabsWillNotGetNewIds() { GameObject go = new GameObject(true); TestComponent cmp = new TestComponent(); go.AddComponent(cmp); int oldId = go.GetInstanceID(); int oldCmpId = cmp.GetInstanceID(); go.SetNewId(new Dictionary<int, UnityObject>()); Assert.That(go.GetInstanceID(), Is.EqualTo(oldId)); Assert.That(cmp.GetInstanceID(), Is.EqualTo(oldCmpId)); }
public void TheIdMapWillNotContainPrefabs() { GameObject go = new GameObject(true); TestComponent cmp = new TestComponent(); go.AddComponent(cmp); Dictionary <int, UnityObject> ids = new Dictionary <int, UnityObject>(); go.SetNewId(ids); Assert.That(ids.Count, Is.EqualTo(0)); }
public void TheIdMapWillContainAMapOfAllComponents() { Dictionary<int, UnityObject> ids = new Dictionary<int, UnityObject>(); GameObject go = new GameObject(); go.AddComponent(typeof(TestComponent)); go.AddComponent(typeof(TestComponent)); go.SetNewId(ids); Assert.That(ids.Count, Is.EqualTo(4)); foreach (var item in go.GetComponents(typeof(Component))) { Assert.That(ids.ContainsValue(item), Is.True); } }
public void PrefabsWillNotGetNewIds() { GameObject go = new GameObject(true); TestComponent cmp = new TestComponent(); go.AddComponent(cmp); int oldId = go.GetInstanceID(); int oldCmpId = cmp.GetInstanceID(); go.SetNewId(new Dictionary <int, UnityObject>()); Assert.That(go.GetInstanceID(), Is.EqualTo(oldId)); Assert.That(cmp.GetInstanceID(), Is.EqualTo(oldCmpId)); }
public void TheIdMapWillContainAMapOfAllComponents() { Dictionary <int, UnityObject> ids = new Dictionary <int, UnityObject>(); GameObject go = new GameObject(); go.AddComponent(typeof(TestComponent)); go.AddComponent(typeof(TestComponent)); go.SetNewId(ids); Assert.That(ids.Count, Is.EqualTo(4)); foreach (var item in go.GetComponents(typeof(Component))) { Assert.That(ids.ContainsValue(item), Is.True); } }
public void WeWillSetTheIdOfOurChildrenAndItsComponents() { GameObject obj = new GameObject(); Transform trans = obj.transform; GameObject parent = new GameObject(); Transform parentTrans = parent.transform; trans.parent = parentTrans; int id = obj.GetInstanceID(); int compId = trans.GetInstanceID(); parent.SetNewId(new Dictionary <int, UnityObject>()); Assert.That(obj.GetInstanceID(), Is.Not.EqualTo(id)); Assert.That(trans.GetInstanceID(), Is.Not.EqualTo(compId)); }
public void WeWillSetTheIdOfOurChildrenAndItsComponents() { GameObject obj = new GameObject(); Transform trans = obj.transform; GameObject parent = new GameObject(); Transform parentTrans = parent.transform; trans.parent = parentTrans; int id = obj.GetInstanceID(); int compId = trans.GetInstanceID(); parent.SetNewId(new Dictionary<int, UnityObject>()); Assert.That(obj.GetInstanceID(), Is.Not.EqualTo(id)); Assert.That(trans.GetInstanceID(), Is.Not.EqualTo(compId)); }
public void WeWillSetTheIdOnTheComponentsOfAGameObject() { GameObject obj = new GameObject(); TestComponent comp = new TestComponent(); obj.AddComponent(comp); int id = comp.GetInstanceID(); obj.SetNewId(new Dictionary<int, UnityObject>()); Assert.That(comp.GetInstanceID(), Is.Not.EqualTo(id)); }
public void WeWillSetTheIdOnAGameObject() { GameObject obj = new GameObject(); int id = obj.GetInstanceID(); obj.SetNewId(new Dictionary<int, UnityObject>()); Assert.That(obj.GetInstanceID(), Is.Not.EqualTo(id)); }
private void CreateStaticBatchRenderers(ContentProcessorContext context, Dictionary <int, UnityObject> idMap) { Dictionary <string, StaticBatchRenderer> staticRenderers = new Dictionary <string, StaticBatchRenderer>(); foreach (Renderer r in scene.components.Where(c => (c is Renderer)).ToArray()) { if (r.gameObject == null) { Debug.LogError("The gameObject of " + r + " has vanished?!"); continue; } if (!r.gameObject.isStatic) { continue; } string key = GetMaterialKey(r.sharedMaterials); if (!staticRenderers.ContainsKey(key)) { GameObject sbGo = new GameObject("Static - " + key); while (idMap.ContainsKey(sbGo.GetInstanceID())) { sbGo.SetNewId(null); } StaticBatchRenderer sbr = sbGo.AddComponent <StaticBatchRenderer>(); while (idMap.ContainsKey(sbr.GetInstanceID())) { sbr.SetNewId(null); } staticRenderers[key] = sbr; staticRenderers[key].useLightMap = (scene.lightmapSettings != null); staticRenderers[key].lightmapIndex = r.lightmapIndex; staticRenderers[key].sharedMaterials = (Material[])r.sharedMaterials.Clone(); } MeshFilter mf = r.gameObject.GetComponent <MeshFilter>(); if (mf == null) { throw new Exception("The statically marked renderer at " + r.gameObject + " does not have a meshfilter."); } if (mf.meshToRender == null) { throw new Exception("The static meshfilter at " + r.gameObject + " does not have a mesh."); } int id = mf.meshToRender.GetInstanceID(); Mesh[] meshes = context.BuildAndLoadAsset <Mesh[], Mesh[]>(new ExternalReference <Mesh[]>(mf.meshToRender.asset + ".xml"), null, null, "XmlImporter"); if (meshes == null) { throw new Exception("The mesh with Id " + id + " was not found in assets. Gotten from " + mf); } Mesh mesh = meshes.First(m => m.GetInstanceID() == id); if (mesh == null) { throw new Exception("The mesh with Id " + id + " was not found in assets. Gotten from " + mf); } if (staticRenderers[key].AddMesh(mesh, r)) { r.isPartOfStaticBatch = true; mf.mesh = null; } } foreach (KeyValuePair <string, StaticBatchRenderer> sbr in staticRenderers) { sbr.Value.PrepareQuadTree(); } scene.gameObjects.AddRange(staticRenderers.Values.Select(sbr => sbr.gameObject)); }