using System.Collections.Generic; using Game.Component.SceneProp; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.Serialization; namespace Game.Component { public class ScenePart : MonoBehaviour { public PolygonCollider2D cameraCollider; public Transform createPos; public int completeConditionNumber = 10; public float playerBaseSpeed = 4f; [Header("关卡背景音乐")]public string BGM = ""; [FormerlySerializedAs ("completeProp")] public SuccessProp successProp; [LabelText ("当前完成数:")] private int _currentConditionNumber = 0; public int LossCount; public int CurrentConditionNumber => this._currentConditionNumber; private List _enemyEntities; private List _baseProps; public SuccessProp SuccessProp => this.successProp; public float CurProgress => this._currentConditionNumber * 1f / completeConditionNumber; public bool IsCondition => _currentConditionNumber >= completeConditionNumber; public bool AddConditionNumber (int number = 1) { this._currentConditionNumber += number; return _currentConditionNumber >= completeConditionNumber; } public void RefreshInit () { this._currentConditionNumber = 0; foreach (var enemyEntity in this._enemyEntities) { enemyEntity.ResetState (); } foreach (var baseProp in this._baseProps) { baseProp.ResetProp (); } this.successProp.gameObject.SetActive (false); } public void InitPart () { this._enemyEntities = new List (); this._enemyEntities = new List (transform.GetComponentsInChildren (true)); this._baseProps = new List (transform.GetComponentsInChildren (true)); } } }