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); }
public TResult Build(AssetManagerLoader loader) { if (!ContainsTag("GUID")) { throw new Exception("Guid unset"); } if (!ContainsTag("DISPLAY")) { throw new Exception("Display unset"); } if (!ContainsTag("MIDDLE_VEHICLE")) { throw new Exception("Middle Train is unset"); } TResult result = ScriptableObject.CreateInstance <TResult>(); Apply(new TrainContainer <TResult>(loader, result)); loader.RegisterObject(result); return(result); }