63 lines
1.7 KiB
C#
Raw Normal View History

2025-01-13 14:05:32 +08:00
using QFramework;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XMLTool;
public class Point3DItem : MonoBehaviour
{
Point3DQuestion.Data data;
[SerializeField]
private float rotSpeed = 180.0f;
public void Init(Point3DQuestion.Data data)
{
this.data = data;
2025-01-13 15:14:02 +08:00
if (string.IsNullOrEmpty(data.name) == false)
{
gameObject.name = data.name;
}
2025-01-13 14:05:32 +08:00
if (string.IsNullOrEmpty(data.deviceName))
{
gameObject.transform.position = data.pos;
gameObject.transform.eulerAngles = data.rotate;
gameObject.transform.localScale = data.scale;
}
else
{
GameObject device = DeviceController.Instance.GetDeviceObj(data.deviceName);
gameObject.transform.parent = device.transform;
2025-01-13 15:14:02 +08:00
gameObject.transform.localPosition = Vector3.zero;
gameObject.transform.localEulerAngles = Vector3.zero;
gameObject.transform.localScale = Vector3.one;
2025-01-13 14:05:32 +08:00
}
rotSpeed = data.rotateSpeed;
TypeEventSystem.Global.Register<OnPoint3DQuestionDestroy>(OnObjDestroy).UnRegisterWhenGameObjectDestroyed(gameObject);
}
private void OnObjDestroy(OnPoint3DQuestionDestroy destroy)
{
GameObject.Destroy(gameObject);
}
private void OnMouseUpAsButton()
{
if (string.IsNullOrEmpty(data.clickEvent) == false)
{
StringEventSystem.Global.Send(data.clickEvent);
}
TypeEventSystem.Global.Send<OnPoint3DQuestionDestroy>();
}
private void OnMouseOver()
{
transform.Rotate(Vector3.forward * Time.deltaTime * rotSpeed);
}
}