using UnityEngine; public class FortuneTeller : MonoBehaviour { private Transform mytransform; public Material main_material; public Transform ef_shuffle; private GameObject c_plane; private Renderer creatrender; private float creat_delay; private bool efon; private Vector3 targetVector; private void Awake() { mytransform = base.transform; } private void OnEnable() { ef_shuffle.gameObject.SetActive(true); targetVector = new Vector3(0f, 0.2f, 0.5f); mytransform.position = targetVector - Vector3.up * 2f; if (c_plane != null) { Object.Destroy(c_plane); } creat_delay = 0f; efon = false; } public void FortuneMesh(int _atk, int _def, int _hp, int _rate) { c_plane = new GameObject("fortunemesh"); MeshFilter meshFilter = c_plane.AddComponent(); Mesh mesh = new Mesh(); c_plane.AddComponent(); mesh.vertices = new Vector3[4] { Vector3.up * _atk * 0.1f, Vector3.right * _def * 0.1f, -Vector3.right * _rate * 0.1f, -Vector3.up * _hp * 0.1f }; mesh.uv = new Vector2[4] { Vector2.up, Vector2.one, Vector2.zero, Vector2.right }; creatrender = c_plane.GetComponent(); creatrender.enabled = false; creatrender.sharedMaterial = main_material; mesh.triangles = new int[6] { 0, 1, 2, 2, 1, 3 }; mesh.RecalculateNormals(); meshFilter.mesh = mesh; c_plane.transform.position = mytransform.position + Vector3.forward * 0.1f + Vector3.up * -0.32f; c_plane.transform.parent = mytransform; c_plane.layer = mytransform.gameObject.layer; } private void Update() { if (creat_delay > 3f) { if (creatrender != null) { creatrender.enabled = true; } ef_shuffle.gameObject.SetActive(false); efon = true; } else if (!efon) { creat_delay += Time.deltaTime; } mytransform.position = Vector3.MoveTowards(mytransform.position, targetVector, Time.deltaTime * 5f); } }