예제 #1
0
    private void OnTouchDown()
    {
        RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);

        if (hit)
        {
            var clickedObject = hit.transform.gameObject;
            if (clickedObject.GetComponent <WaterSegment>() != null)
            {
                activeSegment = clickedObject.GetComponent <WaterSegment>();
                mouseLastY    = Camera.main.ScreenToWorldPoint(Input.mousePosition).y;
            }
        }
    }
예제 #2
0
    private void OnTouchUp()
    {
        if (activeSegment == null)
        {
            return;
        }

        var mouseCurrentY = Camera.main.ScreenToWorldPoint(Input.mousePosition).y;

        waves.Add(new Wave()
        {
            X = activeSegment.NaturalPosition.x,
            T = 0,
            InitialAmplitude = Mathf.Clamp(mouseCurrentY - mouseLastY, MinWaveStart, MaxWaveStart)
        });
        activeSegment = null;
    }
예제 #3
0
    void Start()
    {
        WaterSegment lastSegment = null;

        for (float x = WaterStart; x < WaterEnd; x += SegmentWidth)
        {
            var segment = GameObject.Instantiate(WaterSegment);
            segment.transform.position = new Vector3(x, WaterOffset, 0);
            if (lastSegment != null)
            {
                lastSegment.Next = segment;
            }
            segment.Previous = lastSegment;
            segment.Initialize();
            lastSegment = segment;
            waterSegments.Add(segment);
        }
    }