先修复一下,错误的场景 删除不必要的钓场资产 修复into场景 update:更新meta文件,修复报错 update:修复资源 修复第一章节建造 修复建造第三章 update:删除多余内容 update:更新README.md update:还原图标 update:更新README update:更新配置
77 lines
2.8 KiB
C#
77 lines
2.8 KiB
C#
using Cinemachine;
|
|
using System;
|
|
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));
|
|
[NonSerialized]
|
|
public Transform shell;
|
|
[NonSerialized]
|
|
public Transform shellSub;
|
|
[NonSerialized]
|
|
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);
|
|
}
|
|
}
|