// Use this for initialization void Start() { m_way.start(); foreach (PathMovementAnchor anchor in m_items) { if (anchor.m_target == null) { continue; } Vector3 on_path = get_pos_on_path_local(anchor.m_offset); Vector3 local_pos = transform.InverseTransformPoint(anchor.m_target.transform.position); anchor.pos_offset = local_pos - on_path; } int num_items = m_items.Count; for (int idx = 0; idx < num_items; ++idx) { PathMovementAnchor source = m_items[idx]; if (source.m_target == null) { continue; } for (int i = 0; i < source.m_duplicate_amount; ++i) { PathMovementAnchor copy = new PathMovementAnchor(); copy.m_offset = (source.m_offset + (float)(i + 1) * source.m_duplicate_distance) % 1.0f; copy.pos_offset = source.pos_offset; Vector3 on_path = get_pos_on_path_local(copy.m_offset); copy.m_target = (GameObject)Object.Instantiate(source.m_target, transform.TransformPoint(on_path), source.m_target.transform.rotation); m_items.Add(copy); } } }
// Use this for initialization void Start() { m_start_position = transform.localPosition; m_way.start(); }