54 lines
1.5 KiB
C#
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();
|
|
}
|
|
}
|
|
} |