- Home /
Question by
OctoSloths · Dec 12, 2014 at 07:50 PM ·
2drotationgetcomponentshootingshoot
Get component used to reference rotation of object in if statement?
So I have a 2D game and I have an enemy that shoots only in one direction regardless of which direction it is facing. I was wondering if there was a way to reference the empty gameobject in front of the enemy that my shooting script is attached to, so that when its rotation is 180, I can make an if statement that makes the bullet shoot in the negative direction? Here is my current script:
using UnityEngine;
using System.Collections;
/// Launch projectile
public class WeaponScript : MonoBehaviour
{
// 1 - Designer variables
/// Projectile prefab for shooting
public Rigidbody2D shotPrefab;
/// <summary>
/// Cooldown in seconds between two shots
/// </summary>
public float shootingRate = 1f;
// 2 - Cooldown
private float shootCooldown;
void Start()
{
shootCooldown = 0f;
}
void Update()
{
if (shootCooldown > 0)
{
shootCooldown -= Time.deltaTime;
}
}
public void Attack(bool isEnemy)
{
if (CanAttack)
{
shootCooldown = shootingRate;
// Create a new shot
//var shotTransform = Instantiate(shotPrefab) as Transform;
// Assign position
//shotTransform.position = transform.position;
Rigidbody2D clone;
clone = (Instantiate(shotPrefab, transform.position+1.0f*transform.forward,transform.rotation) as Rigidbody2D);
//var rigidbody2D = Rigidbody2D;
clone.rigidbody2D.AddRelativeForce(new Vector2 (1000, 0));
if(clone.transform.position.x < GameObject.FindWithTag("ariana").transform.position.x){
Vector3 newScale = GameObject.FindWithTag("rotate").transform.localScale;
newScale.x *= -1;
GameObject.FindWithTag("rotate").transform.transform.localScale = newScale;
//GameObject.FindWithTag("rotate").transform.eulerAngles = new Vector3(0,0,180);
//clone.rigidbody2D.AddForce(new Vector2(-1000,0));
}
//shotPrefab.Rigidbody2D.AddForce(transform.forward * 1000);
//put if statement about game object rotation
// The is enemy property
ShotScript shot = clone.gameObject.GetComponent<ShotScript>();
if (shot != null)
{
shot.isEnemyShot = isEnemy;
}
// Make the weapon shot always towards it
MoveScript move = shotPrefab.gameObject.GetComponent<MoveScript>();
if (move != null)
{
//move.direction = this.transform.right; // towards in 2D space is the right of the sprite
}
}
}
public bool CanAttack
{
get
{
return shootCooldown <= 0f;
}
}
}
Comment
Please stop bumping your questions after such a short space of time!
I wasn't intending to bump them I'm sorry! I was trying to ask a different question about the same script. Should I keep that to the same question in the future? D:
No problem, apologies, I only said it as I saw a couple of your posts bump quickly. :D