/// <summary> /// 指定されたノーツを画面上に生成する /// </summary> public void GenerateObject(MusicNote note, int colorIndex = -1) { // 初期化処理 MusicNoteGameObject noteObject = GetNoteObject(); note.SetGameObject(noteObject); // 画像設定 if (note.Place.IsLeftSide() || note.Place.IsRightSide()) { noteObject.NoteImage.sprite = noteSprites[1]; } else { noteObject.NoteImage.sprite = noteSprites[0]; } // 色設定 if (colorIndex == -1) { noteObject.NoteColor = Color.white; } else { noteObject.NoteColor = MusicConst.NotesColor[colorIndex]; } }
/// <summary> /// 同時押し線の初期設定 /// </summary> public void Initialize(MusicNoteGameObject startObject, MusicNoteGameObject endObject) { this.startObject = startObject; this.endObject = endObject; gameObject.SetActive(true); }
/// <summary> /// 対応する生成済みGameObjectを設定する /// </summary> public void SetGameObject(MusicNoteGameObject noteObject) { NoteObject = noteObject; IsAppeared = true; noteObject.Initialize(this); }
/// <summary> /// 利用可能なノーツを取得する、ない場合は作成する /// </summary> /// <returns>The note object.</returns> private MusicNoteGameObject GetNoteObject() { // 再利用可能オブジェクトがある場合は使用する MusicNoteGameObject noteObject = generatedNoteGameObjects.Find(obj => !obj.IsActive); if (noteObject != null) { return(noteObject); } // 生成処理 noteObject = Instantiate(noteObjectPrefab, noteObjectRoot) as MusicNoteGameObject; generatedNoteGameObjects.Add(noteObject); return(noteObject); }