DRHPS/code-csharp/en_US/APF_StrayAnimals.cs
2025-04-08 11:31:35 +08:00

56 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
public class APF_StrayAnimals : MonoBehaviour
{
public List<Transform> sprites;
public float speed = 2f;
public float width = 3f;
public float height = 2f;
public float followDelay = 0.2f;
private float timeOffset;
private List<float> spriteOffsets;
private void Start()
{
timeOffset = UnityEngine.Random.Range(0f, MathF.PI * 2f);
spriteOffsets = new List<float>();
for (int i = 0; i < sprites.Count; i++)
{
spriteOffsets.Add((float)i * followDelay);
}
}
private void Update()
{
MoveSprites();
}
private void MoveSprites()
{
for (int i = 0; i < sprites.Count; i++)
{
if (sprites[i] != null)
{
float f = Time.time * speed + timeOffset - spriteOffsets[i];
float x = Mathf.Cos(f) * width;
float y = Mathf.Sin(f) * height;
Vector3 vector = new Vector3(x, y, sprites[i].position.z);
float num = (0f - Mathf.Sin(f)) * width;
Mathf.Cos(f);
_ = height;
sprites[i].position = base.transform.position + vector;
bool flipX = num < 0f;
sprites[i].GetComponentInChildren<SpriteRenderer>().flipX = flipX;
}
}
}
}