public TResult Build(AssetManagerLoader loader) { GameObject go = UnityEngine.Object.Instantiate(_go); // existing Decos are not evaluated. Assumed to be configured correctly TResult vehicle = go.GetComponent <TResult>(); if (vehicle == null) { vehicle = go.AddComponent <TResult>(); if (!ContainsTag("GUID")) { throw new Exception("Guid is never set"); } } Apply(new BaseObjectContainer <TResult>(loader, vehicle, go)); foreach (Renderer componentsInChild in go.GetComponentsInChildren <Renderer>()) { Parkitility.ReplaceWithParkitectMaterial(componentsInChild); } List <Transform> transforms = new List <Transform>(); Utility.recursiveFindTransformsStartingWith("WheelsFront", go.transform, transforms); vehicle.frontAxisArray = transforms.ToArray(); transforms.Clear(); Utility.recursiveFindTransformsStartingWith("WheelsBack", go.transform, transforms); vehicle.backAxisArray = transforms.ToArray(); loader.RegisterObject(vehicle); return(vehicle); }
public TResult Build(AssetManagerLoader loader) { GameObject go = UnityEngine.Object.Instantiate(_go); // existing Decos are not evaluated. Assumed to be configured correctly TResult deco = go.GetComponent <TResult>(); if (deco == null) { deco = go.AddComponent <TResult>(); if (!ContainsTag("GUID")) { throw new Exception("Guid is never set"); } } Apply(new BaseObjectContainer <TResult>(loader, deco, go)); foreach (Renderer componentsInChild in go.GetComponentsInChildren <Renderer>()) { Parkitility.ReplaceWithParkitectMaterial(componentsInChild); } // register deco loader.RegisterObject(deco); return(deco); }