- Home /
Class or struct? for multiple turrets...?
I have this javascript controlling a turret in the scene.... the problem is that when I crete more than 1 turret... they behave oddly.... So I need to create a class or a struct to control these objects my problem is that I don+t know how to do this properly, I have seen the reference for classes but still..... can anyone give some pointers??
public var BulletSpeed : float = 1000; private var counter : int; public var bullet : Transform; public var sparkEmitter : ParticleEmitter; public var brightEmitter : ParticleEmitter; public var smokeEmitter : ParticleEmitter; public var bulletShellEmitter : ParticleEmitter; public var shotFireLight : Light; public var isFiring : boolean = false; private var lastShotTime : float; public static var weaponLocked : boolean = false;
function Start () { lastShotTime = Time.time; isFiring = true; }
function Update () { if(Input.GetMouseButton(0) && Time.time > lastShotTime){ lastShotTime = Time.time + 0.04; var t=gameObject.Find("ShotSound"); t.audio.Play(); t.audio.pitch=Time.timeScale; var bullit = Instantiate(bullet, GameObject.Find("BulletReference").transform.position, Quaternion.identity); bullit.transform.Rotate(90,90,-30); bullit.GameObject.tag = "BulletProjectile"; bullit.rigidbody.AddForce(GameObject.Find("BulletReference").transform.forward * (BulletSpeed)); if(shotFireLight) shotFireLight.enabled = true; if(sparkEmitter){ sparkEmitter.Emit(1); sparkEmitter.emit = true;
}if(brightEmitter){
brightEmitter.emit = true;
brightEmitter.Emit(Random.Range(30,40));
}if(smokeEmitter){
smokeEmitter.emit = true;
smokeEmitter.Emit(Random.Range(30,100));
}if(bulletShellEmitter){
bulletShellEmitter.emit = true;
bulletShellEmitter.Emit(1);
}
}else{
if(shotFireLight)
shotFireLight.enabled = false;
if(sparkEmitter)
sparkEmitter.emit = false;
if(brightEmitter)
brightEmitter.emit = false;
if(smokeEmitter)
smokeEmitter.emit = false;
if(bulletShellEmitter)
bulletShellEmitter.emit = false;
}
}
function OnMouseDown(){ isFiring=true;
}
function OnMouseUp(){ isFiring=false;
}
Fix your code formatting in your question. You have a bunch of codes that are in plain text and that is horrible to read.
Consider the class (being an object itself) as a turret object. An object can HAVE things (fields/properties) it can be built (Constructor) destroyed (Destructor), and most important of all it can DO things (Functions/$$anonymous$$ethods). If you sort those things in a script you have yourself a turret class design. When you have that done you, and only then, you should consider coding the class. Design A L W A Y S comes before coding.
Your answer
Follow this Question
Related Questions
Lists and Structs instead of Arrays? 4 Answers
[SOLVED]How do i make this dictionary survive recompiles? 1 Answer
Best way to calculate sum of custom object holding numbers and returning sum as that object instance 0 Answers
C# ArrayList access from other script 1 Answer
Returning a copy of a struct - c# 2 Answers