public TutorialFinger CreateFinger(Transform parent, TutorialFingerData fingerData) { if (Fingers.ContainsKey(fingerData.Id)) { RemoveFinger(fingerData.Id); } GameObject fingerObj = GameObject.Instantiate(Services.ResourceService.Prefabs.GetPrefab("finger"), parent, false); TutorialFinger finger = fingerObj.GetComponent <TutorialFinger>(); finger.Setup(fingerData); Fingers.Add(finger.Data.Id, finger); return(finger); }
public TutorialFinger CreateFinger(string tutorialPositionObjectName, TutorialFingerData fingerData) { var positionObject = FindPositionObject(tutorialPositionObjectName); if (positionObject) { return(CreateFinger(positionObject.transform, fingerData)); } else { StartCoroutine(TryCreateFingerNTimes(20, tutorialPositionObjectName, fingerData)); } return(null); }
private IEnumerator TryCreateFingerNTimes(int count, string tutorialPositionObjectName, TutorialFingerData fingerData) { for (int i = 0; i < count; i++) { var positionObject = FindPositionObject(tutorialPositionObjectName); if (positionObject) { CreateFinger(positionObject.transform, fingerData); yield break; } else { yield return(new WaitForSeconds(.1f)); } } }