Files
Main/Assets/Plugins/Code/Cinematic/CinematicEventData.cs
2025-01-25 04:38:09 +08:00

134 lines
3.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using UnityEngine;
using System;
using System.Collections.Generic;
using System.IO;
namespace Thousandto.Cinematic
{
//事件数据
[Serializable]
public class CinematicEventData : ICinematic
{
//[NonSerialized]
public bool FoldOut = true; //界面上控制折叠
public int EventType;
public KeyFrameEvent EventTypeEx;
public WrapMode WrapMode;
public float[] PositionV3 = new float[3];
public float[] RotationV3 = new float[3];
public float[] ScaleV3 = new float[3];
//模型、声音、特效的路径,根据事件类型,有不同意义
public string Param = "";
//编辑器模式下配置的模型路径
public string EditorParam = "";
public bool IsLocalPlayer = false;
//使用曲线
public bool UseCurve = true;
[NonSerialized]
public GameObject ParentGo; //当前事件所在的GameObject
[NonSerialized]
public CinematicObj CinematicObj; //当前事件所在的类对象
[NonSerialized]
public float AnimDuration; //动作播放间隔在触发PlayAnimByFrame的时候需要设置
public Vector3 Position
{
get
{
return new Vector3(PositionV3[0], PositionV3[1], PositionV3[2]);
}
set
{
PositionV3[0] = value.x;
PositionV3[1] = value.y;
PositionV3[2] = value.z;
}
}
public Vector3 Rotation
{
get
{
return new Vector3(RotationV3[0], RotationV3[1], RotationV3[2]);
}
set
{
RotationV3[0] = value.x;
RotationV3[1] = value.y;
RotationV3[2] = value.z;
}
}
public Vector3 Scale
{
get
{
return new Vector3(ScaleV3[0], ScaleV3[1], ScaleV3[2]);
}
set
{
ScaleV3[0] = value.x;
ScaleV3[1] = value.y;
ScaleV3[2] = value.z;
}
}
public override void WriteAll(BinaryWriter bw)
{
PrepareWriter(bw);
WriteInt(EventType);
WriteInt((int)EventTypeEx);
WriteInt((int)WrapMode);
WriteVector3(PositionV3);
WriteVector3(RotationV3);
WriteVector3(ScaleV3);
WriteString(Param);
WriteString(EditorParam);
WriteBool(IsLocalPlayer);
WriteBool(UseCurve);
}
public override void ReadAll(BinaryReader rd)
{
PrepareReader(rd);
EventType = ReadInt();
EventTypeEx = (KeyFrameEvent) ReadInt();
WrapMode = (WrapMode)ReadInt();
PositionV3 = ReadVector3();
RotationV3 = ReadVector3();
ScaleV3 = ReadVector3();
Param = ReadString();
EditorParam = ReadString();
IsLocalPlayer = ReadBool();
UseCurve = ReadBool();
}
public CinematicEventData()
{ }
public CinematicEventData(KeyFrameEvent e)
{
EventTypeEx = e;
}
public CinematicEventData Clone()
{
CinematicEventData data = new CinematicEventData();
data.EventType = EventType;
data.Position = Position;
data.Rotation = Rotation;
data.Scale = Scale;
data.EditorParam = EditorParam;
data.EventTypeEx = EventTypeEx;
data.WrapMode = WrapMode;
data.Param = Param;
data.EditorParam = EditorParam;
return data;
}
}
}