void FixedUpdate() { float XPosition = transform.position.x; float YPosition = transform.position.y; float OffsetDistance = 0.0f; if (EntryTime < EntryDelay) { OffsetDistance = EntryDistance * (1 - EntryTime / EntryDelay); EntryTime += Time.deltaTime; } else if (DelayTime < ClawDelay) { DelayTime += Time.deltaTime; } else if (ClawTravel < ClawDistance) { ClawTravel += ClawSpeed * Time.deltaTime; } else { EntryTime = 0; DelayTime = 0; ClawTravel = 0; OffsetDistance = EntryDistance; clawPosition = (ClawPosition)Mathf.FloorToInt(Random.value * 4); } if (clawPosition > ClawPosition.TopRight) { transform.rotation = Quaternion.Euler(0, 0, 180); if (clawPosition == ClawPosition.RightTop) { YPosition = TopPosition; } else { YPosition = BottomPosition; } XPosition = HorizontalPosition + OffsetDistance - ClawTravel; } else { transform.rotation = Quaternion.Euler(0, 0, 270); if (clawPosition == ClawPosition.TopLeft) { XPosition = LeftPosition; } else { XPosition = RightPosition; } YPosition = VerticalPosition + OffsetDistance - ClawTravel; } transform.localPosition = new Vector3(XPosition, YPosition, 0); }
void Start() { clawPosition = (ClawPosition)Mathf.FloorToInt(Random.value * 4); }