Спавн пули относительно оружия

170
12 марта 2019, 16:20

Столкнулся с такой проблемой: Есть космический корабль, у него есть дочерние объекты - орудия на нужных позициях. Но пули спавнятся не там где нужно:
До начала игры, пушки еще не заспавнились: в игре, пушки на своих местах, но пули нет: Как можно решить эту проблему?

Исходный код:

//class WeaponPoint
public void SetWeapon(GameObject weaponPrefab, Quaternion rotation, Transform parrent = null)
{
    this.weaponPrefab = weaponPrefab;
    if (weaponPrefab == null)
    {
        throw new ArgumentNullException("Weapon prefab must be not null!");
    }
    GameObject instanceWeapon = LeanPool.Spawn
(weaponPrefab, weaponPointCoords, rotation, parrent); 
//weaponPointCoords = vector2 с координатами точки спавна для оружия, указываются через конструктор, класс не наследует MonoBehaviour  
//Other code
}
//Пример вызова метода установки оружия
weaponPoints[i].SetWeapon(weaponPrefabs, this.transform.rotation, this.transform);

Далее мне нужно заспавнить пулю/пули относительно позиции оружия

    //class Weapon
    private void SingleModAttack()
    {
        //Координаты спавна пули(вот тут проблема)
        Vector2 spawnBulletPoint = this.transform.position;
        spawnBulletPoint.y++;
        GameObject bulletInst = LeanPool.Spawn(bulletPrefab, spawnBulletPoint, transform.rotation);
        Bullet bulletComponent = bulletInst.GetComponent<Bullet>();
        if (bulletComponent == null)
        {
            throw new MissingComponentException
                ("Missing \"Bullet\" component in bullet prefab!");
        }
        bulletComponent.Damage = damage;
        bulletComponent.DestroyBullet(2f);
    }
Answer 1

Проблема решена, просто в методе Attack() класса WeaponPoint я брал компонент Weapon и делегировал ему работу метода(weapon.Attack() - в нем создается пуля и т.д.).
Загвоздка была в том, что компонент Weapon я брал у префаба пушки, а не инстанса, соответственно пули спавнилась по координатам префаба =\
П.с - будет уроком выкладывать исходники полностью)

READ ALSO
Событие в C# WPF MVVM

Событие в C# WPF MVVM

Есть 2 ViewModel`и AuthViewModel и LoginViewModelВ LoginView есть Frame который контент которого LoginControl а у него контекст AuthViewModel

148
Как построить текстурированную сферу в SharpGL и разместить по определенным координатам?

Как построить текстурированную сферу в SharpGL и разместить по определенным координатам?

Хочу нарисовать Землю и Луну с использованием своего алгоритма вращения (те

140
Связать кнопки со счетчиком PHP

Связать кнопки со счетчиком PHP

Скажем у меня есть БД с таблицой users и поля id name countЯ сделал страницу на php ,которая выводит следующую информацию по схеме name count button В моем случае:...

162