My codes are here.
My player movement code,
var speed = 25.0f;
var health = 5;
var dmg = 1;
var X : float;
public var bl : boolean;
var firePrefab : Transform;
var barrelEnd : Transform;
function Start(){
X = transform.localScale.x;
}
function Update () {
if(Input.GetKey(KeyCode.D)){
transform.position.x += speed * Time.deltaTime;
transform.localScale.x = X;
bl = true;
}
if(Input.GetKey(KeyCode.A)){
transform.position.x -= speed * Time.deltaTime;
transform.localScale.x = -X;
bl = false;
}
if(Input.GetKey(KeyCode.W)){
transform.position.y += speed * Time.deltaTime;
}
if(health == 0){
Application.LoadLevel(0);
}
if(Input.GetKey(KeyCode.Space)){
Instantiate(firePrefab, barrelEnd.position, barrelEnd.rotation);
}
}
function OnCollisionEnter(col : Collision){
if(col.gameObject.name == "EnemyRight"){
health -= dmg;
}
if(col.gameObject.name == "EnemyLeft"){
health -= dmg;
}
}
And my Fire script here,
var speed = 5.0f;
var Player : GameObject;
private var mov : Movement;
function Awake () {
mov = Player.GetComponent(Movement);
}
function Update(){
if(mov.bl == true){
transform.position.x += speed * Time.deltaTime;
}
else if(mov.bl == false){
transform.position.x -= speed * Time.deltaTime;
}
}
function OnTriggerEnter(col : Collider){
if(col.gameObject.name == "EnemyRight"){
Destroy(col.gameObject);
}
if(col.gameObject.name == "EnemyLeft"){
Destroy(col.gameObject);
}
}
My problem is when I press Spacebar it instantiate bullet there is no problem it absoluetly work well but when I turn left my bullet turn left in the same way.
[29400-adsız.png|29400]
How I fix it and how I make realistic 2d gun physics. If you don’t understand I can make video
Thanks