Страница 1 из 1

Траектория полета, отрисовка линии по векторам

СообщениеДобавлено: 04 апр 2018, 19:48
GGreenNine
Всем привет, есть такой код
Синтаксис:
Используется csharp
 using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public static Vector2[] Plot(Rigidbody2D rigidbody, Vector2 pos, Vector2 velocity, int steps)
 {
     Vector2[] results = new Vector2[steps];
 
     float timestep = Time.fixedDeltaTime / Physics2D.velocityIterations;
     Vector2 gravityAccel = Physics2D.gravity * rigidbody.gravityScale * timestep * timestep;
     float drag = 1f - timestep * rigidbody.drag;
     Vector2 moveStep = velocity * timestep;
 
     for (int i = 0; i < steps; ++i)
     {
         moveStep += gravityAccel;
         moveStep *= drag;
         pos += moveStep;
         results[i] = pos;
     }
 
     return results;
 }

Он возвращает массив векторов по которым должен лететь снаряд, каким способом лучше прорисовать линию по этим векторам? Должно получиться что-то типа этого
Изображение

Re: Траектория полета, отрисовка линии по векторам

СообщениеДобавлено: 04 апр 2018, 19:53
lawsonilka
line\trail renderer, спрайты, да чем угодно.

Re: Траектория полета, отрисовка линии по векторам

СообщениеДобавлено: 04 апр 2018, 19:56
GGreenNine
lawsonilka писал(а):line\trail renderer, спрайты, да чем угодно.

line.SetPositions(Plot(rigit,startPos, rigit.velocity, steps));
Очевидно выдает ошибку:
Argument 1: cannot convert from 'UnityEngine.Vector2[]' to 'UnityEngine.Vector3[]'
Если не сложно распишите в коде, как это должно выглядеть

Re: Траектория полета, отрисовка линии по векторам

СообщениеДобавлено: 04 апр 2018, 20:28
1max1
Ну и что не понятного в ошибке? твой метод возвращает Vector2[] а надо Vector3[] ><

Re: Траектория полета, отрисовка линии по векторам

СообщениеДобавлено: 04 апр 2018, 20:38
Anonymyx
Там есть явное приведение вроде.
Просто допиши (Vector3), со скобочками, там где возвращается Vector2.