Привет всем. При разработке игры возник вопрос с траекторией. То, что я уже прикрепил. Необходимо следить за тем, чтобы при выстреле траектория оставалась и когда игрок целится во второй раз, траектория первого выстрела все еще висит, после второго выстрела первая траектория меняется на вторую и так далее с остальными выстрелами.
На скрине видно, что траектории отображаються все. Я сделал их клонирование с помощью спавна(Instantiate(Trajectory, transform.position, transform.rotation)).
Привожу скрипт)
с использованием UnityEngine;
использование Системы;
использование System.Collections.Generic;
[RequireComponent(typeof(Rigidbody))]
[ТребоватьКомпонент(тип(Коллайдер))]
публичный класс DragAndShot : МоноПоведение
{
публичный GameObject Ball;
публичная играObject BoosterBall;
публичная играObject SpawnPos;
публичная линия GameObjectRend;
частная мышь Vector3PressDownPos;
частная мышь Vector3ReleasePos;
приватная скорость Vector3;
частное жесткое тело РБ;
общественный бустер Бустер;
публичный Спаунер Спаунер;
публичная траектория траектории;
частный bool isShoot;
частный статический int Shoots = 0;
общественное поплавковое усилиеMultiplier = 3f;
приватный пустой Start()
{
rb = GetComponent<Rigidbody>();
}
частное пустое обновление()
{
if(Input.GetMouseButtonDown(0))
{
mousePressDownPos = Input.mousePosition;
}
if(Вход.GetMouseButton(0))
{
mouseReleasePos = Input.mousePosition;
speed = (mousePressDownPos - Input.mousePosition) * forceMultiplier;
Траектория.ShowTrajectory(Ball.transform.position, скорость);
}
if(Input.GetMouseButtonUp(0))
{
mouseReleasePos = Input.mousePosition;
Shoot(mousePressDownPos - Input.mousePosition);
}
}
void Shoot (Vector2 Force)
{
if (isShoot)
возвращать;
рп. AddForce(новый Vector2(Force.x, Force.y) * forceMultiplier);
isShoot = истина;
Spawner.Instance.NewSpawnRequest();
if (isShoot == true)
{
Debug.Log("+1 съемка");
Побеги += 1;
Создание экземпляра(Траектория, преобразование.положение, преобразование.вращение);
}
if(Стреляет == 3)
{
Бустер.ШоуButtons();
}
}
}[/код]