C# Crosshair erstellung (keine Fehler aber kein Crosshair)

Glycol

Cadet 3rd Year
Registriert
Mai 2014
Beiträge
45
Hey, ich bin nicht grade erfahren mit Unity 3D aber habe dafür schon ein wenig wissen in C#.

Ich arbeite momentan an einem Ego shooter welches mit Unity 3D gemacht wird
Nun habe ich das Problem das ich ein Fadenkreuz einfügen wollte und mit dem Script gibt es auch keine Probleme jedoch wird das Fadenkreuz einfach nicht angezeigt ich weiß aber nicht warum.

Hier ist das Script :

Code:
using UnityEngine;
using System.Collections;

public class Crosshair : MonoBehaviour {
	Rect CrosshairRect;
	Texture crosshairTexture;

	// Use this for initialization
	void Start () {
				float crosshairSize = Screen.width *0.1f;
		crosshairTexture = Resources.Load ("crosshair") as Texture;
				CrosshairRect = new Rect (Screen.width / 2 - crosshairSize / 2,
		                       Screen.height / 2 - crosshairSize / 2,
		                       crosshairSize, crosshairSize);
		}
	void onGUI()
	{
		GUI.DrawTexture (CrosshairRect, crosshairTexture);
		}

}

Ansonsten wurde das Script in die Main Camera gepackt.
Das Bild bzw das Crosshair ist im Resource Ordner.
Ansonsten benutze ich die version 4.5.5 Unity 3D

Danke im voraus
 
Zuletzt bearbeitet:
Ist ne Weile her, dass ich mit C# gearbeitet habe, aber ich habe so die Vermutung, dass
Code:
crosshairSize / 2
der Übeltäter ist. Schau mal im Debugger wie das Ergebnis ist. Meine Vermutung lautet "0", da du einen Float durch einen Integer teilst. Weiß leider nicht mehr wie C# das dann casted.
Damit wäre dein Crosshair 0px groß. Was zur Folge hat, dass die Anzeige nicht sichtbar ist.
 
Ich bin C#-Laie, aber in den meisten C-ähnlichen Sprachen ist es doch eigentlich so, daß wenn einer der Operanden ein float ist, der andere Operand auch zu einem float "aufgeblasen" wird, bevor die eigentliche Berechnung erfolgt. Ist das in C# nicht so?
 
Welcher der Antworten auf der stackoverflow-Seite entnimmst du, daß der Divisor ein float sein muß. Nach allem, was ich dort sehe, reicht es aus, daß ein Operand ein float ist ... ob es nun der Divisor oder der Dividend ist.
 
Zurück
Oben