示例#1
0
    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;
 }