Framework/Assets/TestScripts/tttt.cs

54 lines
1.5 KiB
C#

using Framework.Scripts.Runtime.Engine.Engine.Camera;
using Framework.Scripts.Runtime.Engine.Engine.Camera.CameraControl;
using UnityEngine;
namespace TestScripts
{
public class tttt : MonoBehaviour
{
private IRaycastable _raycastComponent;
private ICameraController _cameraControlComponent;
void Awake()
{
// 为组件赋值,可以通过查找对象或者直接赋值的方式
_raycastComponent = new CameraRaycastComponent();
_cameraControlComponent = new CameraControlComponent();
if (_raycastComponent == null || _cameraControlComponent == null)
{
Debug.LogError("缺少必要的组件");
}
}
void OnEnable()
{
_raycastComponent.OnRaycastHit += HandleRaycastHit;
}
void OnDisable()
{
_raycastComponent.OnRaycastHit -= HandleRaycastHit;
}
// 处理射线命中事件并打印物体名称
void HandleRaycastHit(RaycastHit hit)
{
Debug.Log("Raycast hit: " + hit.collider.name);
// 在这里可以添加更多处理逻辑,比如交互或特效
}
void Update()
{
// 调用射线功能
if (Input.GetMouseButtonDown(0)) // 比如当按下鼠标左键时
{
_raycastComponent?.PerformRaycast();
}
// 调用镜头控制功能
_cameraControlComponent?.ControlCamera();
}
}
}