Exemple #1
0
    // Update is called once per frame
    void Update()
    {
        //if (newFrequency != frequency || amplitude != newAmplitude)
        //{
        //    if(newFrequency != frequency)
        //    {
        //        CalcNewFrequency();
        //    }
        //    amplitude = newAmplitude;
        //}
        CalcNewFrequency();
        amplitude = newAmplitude;


        time += Time.deltaTime;

        SineWaveData data = new SineWaveData()
        {
            amplitude  = amplitude,
            frequency  = frequency,
            phaseShift = phaseShift,
            time       = time
        };

        OnSineWaveChange(data);


        var newPosition = amplitude * Mathf.Sin(frequency * time + phaseShift);

        player.transform.position = new Vector3(0, newPosition, 0);
    }
Exemple #2
0
    private void Awake()
    {
        waveMF        = GetComponent <MeshFilter>();
        waveMR        = GetComponent <MeshRenderer>();
        waveMC        = GetComponent <MeshCollider>();
        waveMC.convex = true;
        waveMesh      = waveMF.mesh;

        _sineWaveData = new SineWaveData(_amplitude, _frequency, _amplOffset, _elapsedTime, _noise);
    }
Exemple #3
0
    public void GeneratePoints(SineWaveData data)
    {
        points.Clear();
        float step = length / numberOfPoints;

        for (int i = -5; i < numberOfPoints; ++i)
        {
            points.Add(new Vector3(i * step, Mathf.Sin(i * step * data.frequency + data.phaseShift + data.time * data.frequency) * data.amplitude, 0));
        }
    }
Exemple #4
0
    // Start is called before the first frame update
    void Start()
    {
        PlayerMovement.OnSineWaveChange += OnSineWaveChange;
        lineRenderer            = GetComponent <LineRenderer>();
        lineRenderer.material   = new Material(Shader.Find("Sprites/Default"));
        lineRenderer.startColor = sineColor;
        lineRenderer.endColor   = sineColor;
        lineRenderer.startWidth = waveWidth;
        lineRenderer.endWidth   = waveWidth;
        var data = new SineWaveData()
        {
            amplitude  = 4,
            frequency  = 2,
            phaseShift = 0
        };

        GeneratePoints(data);
        lineRenderer.SetPositions(points.ToArray());
    }
Exemple #5
0
 private void OnSineWaveChange(SineWaveData data)
 {
     GeneratePoints(data);
 }