В моем Enemy Script у меня есть это:
Код: Выделить всё
Instantiate(bullet, spawnPosition.position, Quaternion.identity);
Код: Выделить всё
rigidbody2D.velocity = new Vector2(bulletSpeed,0);
Я понимаю, почему это происходит, но не могу найти решение. Чтобы обновить свой вопрос, я хочу иметь возможность проверять направление врагов, чтобы я мог изменить скорость пули на положительную/отрицательную, чтобы соответствовать направлению. Поскольку врагов такого типа будет несколько, я не знаю, как это сделать.
Код: Выделить всё
public class bulletScript : MonoBehaviour {
// Use this for initialization
private float bulletSpeed;
GameObject parent;
private Vector3 theScale;
void Start () {
rigidbody2D.velocity = new Vector2(bulletSpeed,0);
}
// Update is called once per frame
void Update () {
// if(transform.localScale.x < 0) bulletSpeed = -100;
// if(transform.localScale.x > 0) bulletSpeed = 100;
}
public void SetEnemy(GameObject obj)
{
parent = obj;
}
Код: Выделить всё
public class HammerScript : MonoBehaviour {
public bulletScript bullet;
public Transform spawnPosition;
void FixedUpdate ()
{
instantiate(bullet, spawnPosition.position, Quaternion.identity);
((bulletScript)bullet).SetEnemy(this);
}
}
Assets/Scripts/Level 2/HammerScript.cs(89,64): ошибка CS1502: лучший вариант перегруженного метода для BulletScript.SetEnemy(UnityEngine.GameObject) имеет несколько недопустимых аргументов
Assets/ Scripts/Level 2/HammerScript.cs(89,64): ошибка CS1503: аргумент «#1» не может преобразовать выражение HammerScript в тип «UnityEngine.GameObject»
Подробнее здесь: https://stackoverflow.com/questions/246 ... -direction