Files
aibis-dream/Assets/Scripts/SceneManagement/SceneCenter/Vehicle.cs
T
dingyuntian 0168b03234 1.4优化
1. 新建梦境专用场景
2. 增加单行对话框,梦境中全程使用该对话框
3. 增加已选择选项标记功能

TODO
1. 增加梦境选择框
2. 为选项增加已选择表现
2026-01-02 23:19:06 +08:00

56 lines
1.8 KiB
C#

using System.Collections.Generic;
using DG.Tweening;
using UnityEngine;
namespace AibisDream
{
public class Vehicle : MonoBehaviour
{
public float speed;
private Vector3 _target;
private readonly List<Tween> _tweenList = new();
private int _sortingLayerId;
private int _sortingLayerOrder;
// 仅负责让轮子转起来
private void OnEnable()
{
LoadSpawnData();
var car = GetComponent<SpriteRenderer>();
car.sortingOrder = _sortingLayerOrder;
car.sortingLayerID = _sortingLayerId;
// 加载轮子
foreach (Transform wheel in transform)
{
if (!wheel.name.StartsWith("轮子")) continue;
var wheelSprite = wheel.GetComponent<SpriteRenderer>();
wheelSprite.sortingOrder = _sortingLayerOrder + 1;
wheelSprite.sortingLayerID = _sortingLayerId;
// 转动
Tween tween = wheel.DORotate(_target, 1 / Mathf.Abs(speed), RotateMode.LocalAxisAdd)
.SetEase(Ease.Linear)
.SetLoops(-1, LoopType.Incremental);
_tweenList.Add(tween);
}
}
private void OnDisable()
{
_tweenList.ForEach(tween => tween.Kill());
_tweenList.Clear();
}
// 其他部分,主要是有关层级和方向
private void LoadSpawnData()
{
MobileObjectData data = transform.parent.GetComponent<AbsMobileObject>().mobileObjectData;
// 获取一些数据
_target = data.flipX ? new Vector3(0, 0, -360) : new Vector3(0, 0, 360);
_sortingLayerId = data.sortingLayerId;
_sortingLayerOrder = data.sortingOrder;
}
}
}