备份CatanBuilding瘦身独立工程
This commit is contained in:
75
Assets/Scripts/UI/SmallGame/CannonRoot.cs
Normal file
75
Assets/Scripts/UI/SmallGame/CannonRoot.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
using Cinemachine;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Playables;
|
||||
|
||||
public class CannonRoot : MonoBehaviour
|
||||
{
|
||||
public Transform cannon;
|
||||
public PlayableDirector fire;
|
||||
public TMP_Text text_beilv;
|
||||
public Transform shellStartPos;
|
||||
[Header("点击按钮之后")]
|
||||
[Tooltip("播放开炮动画后炮弹出现时间")]
|
||||
public float shellShowStay = 0.55f;
|
||||
[Header("炮弹出现之后参数")]
|
||||
[Tooltip("炮弹飞行时间")]
|
||||
public float duration = 1.3f;
|
||||
[Tooltip("炮弹消失时间")]
|
||||
[Range(0, 2)]
|
||||
public float durationRatio = 1f;
|
||||
[Header("点击按钮之后相机时间轴")]
|
||||
[Tooltip("相机开始跟随时间")]
|
||||
public float cameraStartStayDuration = 0.8f;
|
||||
[Tooltip("相机飞行时间")]
|
||||
public float cameraDuration = 1.5f;
|
||||
[Tooltip("相机滞留时间")]
|
||||
public float cameraStayDuration = 0.8f;
|
||||
|
||||
public Transform virtualCamera;
|
||||
|
||||
|
||||
[Header("炮弹缩放参数")]
|
||||
public float shellScaleValue = 4.5f;
|
||||
public AnimationCurve shellScaleCurve = new AnimationCurve(new Keyframe(0, 0), new Keyframe(0.3f, 0.5f), new Keyframe(1, 1));
|
||||
[HideInInspector]
|
||||
public Transform shell;
|
||||
[HideInInspector]
|
||||
public Transform shellSub;
|
||||
[HideInInspector]
|
||||
public Transform virtualCamera1;
|
||||
private void Reset()
|
||||
{
|
||||
cannon = transform.Find("animationcannon/cannon").GetComponent<Transform>();
|
||||
fire = transform.Find("fire").GetComponent<PlayableDirector>();
|
||||
text_beilv = transform.Find("animationcannon/cannon/cannon1/text_beilv").GetComponent<TMP_Text>();
|
||||
shellStartPos = transform.Find("animationcannon/cannon/cannon1/shellstartpos").GetComponent<Transform>();
|
||||
virtualCamera = transform.Find("cannoncamera").GetComponent<Transform>();
|
||||
}
|
||||
private void Awake()
|
||||
{
|
||||
Transform cannonObj = transform.parent.Find("shell");
|
||||
if (cannonObj == null)
|
||||
{
|
||||
Debug.LogError("这是一个放在错误位置的轰炸相机和配置节点,干掉他");
|
||||
return;
|
||||
}
|
||||
shell = transform.parent.Find("shell").GetComponent<Transform>();
|
||||
shellSub = shell.Find("shell");
|
||||
virtualCamera1 = shell.Find("cannoncamera1").GetComponent<Transform>();
|
||||
}
|
||||
|
||||
public async void MoveCamera()
|
||||
{
|
||||
await Awaiters.Seconds(cameraStartStayDuration);
|
||||
virtualCamera1.position = virtualCamera.position;
|
||||
virtualCamera1.rotation = virtualCamera.rotation;
|
||||
virtualCamera1.gameObject.SetActive(true);
|
||||
virtualCamera1.SetParent(shell);
|
||||
await Awaiters.Seconds(cameraDuration);
|
||||
virtualCamera1.GetComponent<CinemachineVirtualCamera>().Follow = null;
|
||||
virtualCamera1.SetParent(transform.parent);
|
||||
await Awaiters.Seconds(cameraStayDuration);
|
||||
virtualCamera1.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user