private void spawnChild() { int childSpawnNodeCounter = parentSpawnNode; Vector3 positionBeforeSpawnNode = transform.position; float totalDistanceFromParent = 0; float distanceToNextNode = Vector3.Distance(positionBeforeSpawnNode, ownerArrowController.arrow.Nodes [childSpawnNodeCounter].Position.vector3()); float childSpawnDistance = (childrenSpawnTime [0] - spawnTime) * ownerArrowController.speed; while (totalDistanceFromParent + distanceToNextNode < childSpawnDistance) { totalDistanceFromParent += distanceToNextNode; positionBeforeSpawnNode = ownerArrowController.arrow.Nodes [childSpawnNodeCounter].Position.vector3(); ++childSpawnNodeCounter; distanceToNextNode = Vector3.Distance(positionBeforeSpawnNode, ownerArrowController.arrow.Nodes [childSpawnNodeCounter].Position.vector3()); } GameObject newChild = Instantiate(GameController.getInstance().followKeyPrefab); FollowKey childScript = newChild.GetComponent <FollowKey> (); childScript.spawnTime = childrenSpawnTime [0]; if (childrenSpawnTime.Count > 0) { childScript.setChildrenSpawnTime(childrenSpawnTime.GetRange(1, childrenSpawnTime.Count - 1)); } else { childScript.setChildrenSpawnTime(new List <float> ()); } childScript.setOwnerArrow(ownerArrow); childScript.parentSpawnNode = childSpawnNodeCounter; newChild.transform.position = (childSpawnDistance - totalDistanceFromParent) * Vector3.Normalize(ownerArrowController.arrow.Nodes [childSpawnNodeCounter].Position.vector3() - positionBeforeSpawnNode) + positionBeforeSpawnNode; childSpawned = true; }
private GameObject getFollowKeyInstance(int keySpawnNodeCounter) { GameObject newkey = Instantiate(GameController.getInstance().followKeyPrefab); FollowKey followKey = newkey.GetComponent <FollowKey> (); followKey.setChildrenSpawnTime(arrow.Keys [keyCounter].getChildrenSpawnTimes()); followKey.setOwnerArrow(transform); followKey.setParentSpawnNode(keySpawnNodeCounter); return(newkey); }
void Start() { parentFollowKey = GetComponentInParent <FollowKey> (); }