Ich habe vor kurzem angefangen mit Unity3D zu arbeiten, zurzeit schaue ich mir einige Youtube Tutorials an um den Umgang mit Unity3D richtig zu lernen, jedoch sind meine C# Kenntnisse fast gleich 0 (ich habe mir bisher das meiste von C++ abgeleitet).
Ich habe das Simple Ego-Shooter Tutorial angeschaut und mir von hier das Projekt gedownloadet :
http://quill18.com/unity_tutorials/
Nun hab eich den Code von FPS Shooting so verändert das er so aussieht:
|
C#-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
using UnityEngine;
using System.Collections;
public class FP_Shooting : MonoBehaviour {
public GameObject bullet_prefab;
public bool automatic = true;
float bulletImpulse = 80f;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if( Input.GetButtonDown("Fire2") && automatic == false) {
automatic = true;
}
if( Input.GetButtonDown("Fire2") && automatic == true ) {
automatic = false;
}
if( Input.GetButtonDown("Fire1") && automatic == false ) {
Camera cam = Camera.main;
GameObject thebullet = (GameObject)Instantiate(bullet_prefab, cam.transform.position + cam.transform.forward, cam.transform.rotation);
thebullet.rigidbody.AddForce( cam.transform.forward * bulletImpulse, ForceMode.Impulse);
}
if( Input.GetButton("Fire1") && automatic == true ) {
Camera cam = Camera.main;
GameObject thebullet = (GameObject)Instantiate(bullet_prefab, cam.transform.position + cam.transform.forward, cam.transform.rotation);
thebullet.rigidbody.AddForce( cam.transform.forward * bulletImpulse, ForceMode.Impulse);
}
}
}
|
Dieser Code soll dafür sorgen das man mit der rechten Maustaste zwischen einem Vollautomatischen- und einem Halbautomatischenmodus wechseln kann.
Es funktioniert nur eingeschränkt, wenn ich am Anfang Vollautomatisch eingestellt hab klappt es wenn ich dann die rechte Maustaste drücke wechselt er in den Halbautomatischen so weit funktioniert es, wenn ich jedoch zurück in den Vollautomatischen will funktioniert es nicht.
Wenn ich aber im Unity Editor manuell die Variable verändere (sie ist ja public) funktioniert es.
Meine Frage ist wieso es in die eine Richtung funktioniert aber in die andere nicht?