添加配置,修改InitPlane.json
MoveComponent
在Logic文件夹内新建Component文件夹,在其中添加游戏中需要用到的泛用性强但是需要Mono脚本的组件。Component类似于Module,但是它需要依赖Mono。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| using UnityEngine;
public class MoveComponent : MonoBehaviour { private float _speed; public void Init(float speed) { _speed = speed; }
public void Move(Vector2 dir) { if (_speed != 0) { transform.Translate(_speed * Time.deltaTime * dir); } else Debug.LogError("当前速度未初始化"); } }
|
CameraMove
修改CameraMove
,复用移动组件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| using UnityEngine;
public class CameraMove : MonoBehaviour, IUpdate { private float _speed; private MoveComponent _moveCo;
private void Start() { _speed = 0; var reader = ReaderMgr.Instance.GetReader(Pathes.GAME_CONFIG); reader["cameraSpeed"].Get<float>(value => { _speed = value; _moveCo = gameObject.AddOrGet<MoveComponent>(); _moveCo.Init(_speed); }); LifeCycleMgr.Instance.Add(LifeName.UPDATE, this); } public void UpdateFun() { _moveCo.Move(Vector2.up); } private void OnDestroy() { LifeCycleMgr.Instance.Remove(LifeName.UPDATE, this); } }
|
gameObject.AddOrGet
在子弹生成那一节会讲到