public virtual void Initialize() { StepsVisu = new SequencerStepUI[Steps]; notes = new NoteObject[StepSize]; float angle = 360f / Steps; for (int i = 0; i < Steps; i++) { Quaternion rot = Quaternion.AngleAxis(angle * i, Vector3.up); var pos = rot * (root.transform.forward * distance); StepsVisu[i] = Instantiate <GameObject>(stepPrefab.gameObject, pos, rot, root.transform).GetComponent <SequencerStepUI>(); StepsVisu[i].Initialize(sequencer, this, i); } receptacles = new SequencerNoteReceptacle[StepSize]; for (int i = 0; i < StepSize; i++) { var pos = root.transform.up * heightDistance * (i + 2); var rot = new Quaternion(); receptacles[i] = Instantiate <GameObject>(receptaclePrefab.gameObject, pos, rot, root.transform).GetComponent <SequencerNoteReceptacle>(); receptacles[i].Initialize(sequencer, this, i); } initialized = true; }
public virtual void Initialize(Sequencer sequencer, SequencerStepUI step, int height, bool initialState) { filter = GetComponent <MeshFilter>(); renderer = GetComponent <MeshRenderer>(); meshInitial = filter.mesh; Sequencer = sequencer; Step = step; Height = height; State = initialState; renderer.material = State ? on : off; initialized = true; }