public static Texture2D GetGizmoTexture() { // This clever method at getting at the stock texture asset originates in Enhanced Navball. ManeuverGizmo maneuverGizmo = MapView.ManeuverNodePrefab.GetComponent <ManeuverGizmo>(); ManeuverGizmoHandle maneuverGizmoHandle = maneuverGizmo.handleNormal; Transform gizmoTransform = maneuverGizmoHandle.flag; Renderer gizmoRenderer = gizmoTransform.renderer; return((Texture2D)gizmoRenderer.sharedMaterial.mainTexture); }
public static Texture2D GetGizmoTexture() { if (HighLogic.LoadedSceneIsFlight) { // This clever method at getting at the stock texture asset originates in Enhanced Navball. ManeuverGizmo maneuverGizmo = MapView.ManeuverNodePrefab.GetComponent <ManeuverGizmo>(); ManeuverGizmoHandle maneuverGizmoHandle = maneuverGizmo.handleNormal; Transform gizmoTransform = maneuverGizmoHandle.flag; Renderer gizmoRenderer = gizmoTransform.renderer; return((Texture2D)gizmoRenderer.sharedMaterial.mainTexture); } // Apparently when not in flight scene, the MapView isn't around yet and we need to return, well, something. return(new Texture2D(32, 32)); }
private void LoadTexture() { if (_maneuverGizmoTexture == null) { if (MapView.ManeuverNodePrefab == null) { throw new ArgumentNullException("MapView.ManeuverNodePrefab"); } ManeuverGizmo maneuverGizmo = MapView.ManeuverNodePrefab.GetComponent <ManeuverGizmo>(); if (maneuverGizmo == null) { throw new ArgumentNullException("maneuverGizmo"); } ManeuverGizmoHandle maneuverGizmoHandle = maneuverGizmo.handleNormal; if (maneuverGizmoHandle == null) { throw new ArgumentNullException("maneuverGizmoHandle"); } Transform transform = maneuverGizmoHandle.flag; if (transform == null) { throw new ArgumentNullException("transform"); } Renderer renderer1 = transform.renderer; if (renderer1 == null) { throw new ArgumentNullException("renderer1"); } _maneuverGizmoTexture = renderer1.sharedMaterial; } }
public void Start() { PluginConfiguration cfg = KSP.IO.PluginConfiguration.CreateForType <NavBallDockingAlignmentIndicator>(); cfg.load(); Vector3 tmp = cfg.GetValue <Vector3>("alignmentmarkercolor", new Vector3(1f, 0f, 0f)); //default: red Color alignmentmarkercolor = new Color(tmp.x, tmp.y, tmp.z); Vector2 alignmentmarkertexture = cfg.GetValue <Vector2>("alignmentmarkertexture", new Vector2(0f, 2f)); //default: prograde marker cfg.save(); float texturescalefactor = 1f / 3f; //get navball object GameObject navBall = GameObject.Find("NavBall"); Transform navBallVectorsPivotTransform = navBall.transform.FindChild("vectorsPivot"); navBallBehaviour = navBall.GetComponent <NavBall>(); //get indicator texture (use the prograde marker, since it has a clear 'upwards' direction) ManeuverGizmo maneuverGizmo = MapView.ManeuverNodePrefab.GetComponent <ManeuverGizmo>(); ManeuverGizmoHandle maneuverGizmoHandle = maneuverGizmo.handleNormal; Transform transform = maneuverGizmoHandle.flag; Renderer renderer = transform.renderer; Material maneuverTexture = renderer.sharedMaterial; //create alignment indicator game object indicator = Create2DObject( name: "navballalignmentindicator", size: 0.025f, //the same size as all other markers col: alignmentmarkercolor, texture: maneuverTexture, textureScale: Vector2.one * texturescalefactor, textureOffset: alignmentmarkertexture * texturescalefactor, parentTransform: navBallVectorsPivotTransform, layer: 12 //the navball layer ); }