You've already forked taptap2024_GJ_chidouren
84 lines
2.6 KiB
C#
84 lines
2.6 KiB
C#
|
|
using System.Collections.Generic;
|
|||
|
|
using Framework.Timer;
|
|||
|
|
using IcecreamView;
|
|||
|
|
using UnityEngine;
|
|||
|
|
|
|||
|
|
namespace System.Game
|
|||
|
|
{
|
|||
|
|
public class CameraController : ChooseController
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
private List<CameraNode> _gameCameras;
|
|||
|
|
private List<CameraNode> _obCameras;
|
|||
|
|
|
|||
|
|
private CameraNode _curCamera;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
public void Init()
|
|||
|
|
{
|
|||
|
|
RefreshChoose();
|
|||
|
|
this.OnSelect = OnSelectCamera;
|
|||
|
|
EventManager.Instance.BindEvent(EventCode.GAME_CAMERA_NEXT, CameraNext);
|
|||
|
|
EventManager.Instance.BindEvent(EventCode.GAME_CAMERA_SHAKE, CameraShake);
|
|||
|
|
EventManager.Instance.BindEvent(EventCode.GAME_CAMERA_CHANEG, CameraChangeType);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void OnSelectCamera(ChooseEntity obj)
|
|||
|
|
{
|
|||
|
|
this._curCamera = ((CameraNode) obj);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void CameraChangeType(EventArg obj)
|
|||
|
|
{
|
|||
|
|
var index = obj.GetValue<int>();
|
|||
|
|
if (index < this.ChooseDict.Count)
|
|||
|
|
{
|
|||
|
|
ActiveChoose(index);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void CameraShake(EventArg obj)
|
|||
|
|
{
|
|||
|
|
float inTime = obj.GetValue<float>(0);
|
|||
|
|
float time = obj.GetValue<float>(1);
|
|||
|
|
float outTime = obj.GetValue<float>(2);
|
|||
|
|
float shakeScale = obj.GetValue<float>(3);
|
|||
|
|
this._curCamera?.SetShake(inTime , time , outTime , shakeScale);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void CameraNext(EventArg obj)
|
|||
|
|
{
|
|||
|
|
var index = this._curCamera.ChooseIndex + 1;
|
|||
|
|
//Debug.Log("切换相机 form:" + this._curCamera.ChooseID);
|
|||
|
|
ActiveChoose(index >= this._gameCameras.Count ? 0 : index);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public override void RefreshChoose()
|
|||
|
|
{
|
|||
|
|
this._gameCameras = new List<CameraNode>();
|
|||
|
|
this._obCameras = new List<CameraNode>();
|
|||
|
|
var chooseList = new List<CameraNode>(GetComponentsInChildren<CameraNode>());
|
|||
|
|
RefreshChoose(chooseList);
|
|||
|
|
foreach (var chooseEntity in chooseList)
|
|||
|
|
{
|
|||
|
|
if (chooseEntity.CameraType == CameraType.Game)
|
|||
|
|
{
|
|||
|
|
this._gameCameras.Add(chooseEntity);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
this._obCameras.Add(chooseEntity);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void OnDestroy()
|
|||
|
|
{
|
|||
|
|
EventManager.Instance.UnBindEvent(EventCode.GAME_CAMERA_NEXT, CameraNext);
|
|||
|
|
EventManager.Instance.UnBindEvent(EventCode.GAME_CAMERA_SHAKE, CameraShake);
|
|||
|
|
EventManager.Instance.UnBindEvent(EventCode.GAME_CAMERA_CHANEG, CameraChangeType);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|