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; } } }
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; }
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); } }