public static Rectangle MakeRectangle(Rectangle rectanglePrefab, RectanglePreview preview) { Rectangle rectangle = Instantiate(rectanglePrefab); rectangle.Init(preview); return(rectangle); }
public static RectanglePreview MakePreview(RectanglePreview previewPrefab, Vector3 startPosition) { RectanglePreview preview = Instantiate(previewPrefab, startPosition, Quaternion.identity); preview.Init(startPosition); return(preview); }
void EndPreview(Vector2 touchPos) { // Invoke GoodPreview event if conditions met if (currentCooldown <= 0 && activePreview.Length >= minLength) { OnGoodPreviewEnd?.Invoke(activePreview); currentCooldown = cooldown; } previewPool.ReturnToPool(activePreview); activePreview = null; }
/// <summary> /// Returns next available rectangle preview and sets it to active. /// Returns null if none can be sent . /// </summary> /// <returns>(Possibly) Rectangle preview fetched from pool.</returns> public RectanglePreview GetNextAvailable(Vector3 startPosition) { GameObject previewObject = pool.GetNextAvailable(); if (previewObject) { RectanglePreview previewScript = previewObject.GetComponent <RectanglePreview>(); if (previewScript) { previewScript.Init(startPosition); return(previewScript); } } return(null); }
/// <summary> /// Returns next available rectangle and sets it to active. /// Returns null if none can be sent . /// </summary> /// <returns>(Possibly) Rectangle fetched from pool.</returns> public Rectangle GetNextAvailable(RectanglePreview preview) { GameObject rectangleObject = pool.GetNextAvailable(); if (rectangleObject) { Rectangle rectangleScript = rectangleObject.GetComponent <Rectangle>(); if (rectangleScript) { rectangleScript.Init(preview); return(rectangleScript); } } return(null); }
void UpdateColor(RectanglePreview preview) { if (currentCooldown <= 0) { if (preview.Length < minLength) { preview.spriteRenderer.color = badPreviewColor; } else { preview.spriteRenderer.color = goodPreviewColor; } } else { preview.spriteRenderer.color = cooldownColor; } }
/// <summary> /// Returns a requested rectangle preview to the pool. /// Will not take rectangle previews that weren't initially in the pool. /// </summary> /// <param name="gameObject">Object returned.</param> public virtual void ReturnToPool(RectanglePreview preview) => pool.ReturnToPool(preview.gameObject);
void StartPreview(Vector2 touchPos) { activePreview = previewPool.GetNextAvailable(MainCamera.ScreenToWorldPoint(touchPos)); UpdateColor(activePreview); }
public void Init(RectanglePreview preview) { transform.position = preview.transform.position; transform.rotation = preview.transform.rotation; transform.localScale = preview.transform.localScale; }
public void MakeRectangle(RectanglePreview preview) { Rectangle rectangle = rectanglePool.GetNextAvailable(preview); StartCoroutine(ReturnRectangle(rectangle)); }