Unity3d permite que los objetos tridimensionales sigan al ratón

Imagen de efecto:

1. Crea un objeto tridimensional Cilindro Cilindro Objetivo

2. Crea el vocabulario Yellow shader

3. Monte el sombreador en el objeto de destino.

4. Cree el script MouseMove.cs

Código MouseMove.cs

using UnityEngine;
/*
 让物体完全跟随鼠标
     */
public class MouseMove : MonoBehaviour
{
    [Header("主相机")]
    [Tooltip("主相机")]
    /// <summary>
    /// 主相机
    /// </summary>
    public Camera m_mainCamera;
    [Header("目标物体")]
    [Tooltip("目标物体")]
    /// <summary>
    /// 目标物体
    /// </summary>
    public Transform m_target;

    void Start()
    {
        isDown = false;
        targetWTSP = m_mainCamera.WorldToScreenPoint(m_target.position);
    }
    /// <summary>
    /// 是否按下
    /// </summary>
    private bool isDown;
    /// <summary>
    /// 记录初始化时候target世界坐标转屏幕坐标时候的位置 WTSP==WorldToScreenPoint
    /// </summary>
    private Vector3 targetWTSP;
    void Update()
    {
        if (Input.GetMouseButtonDown(0)) {
            isDown = true;
        }
        if (Input.GetMouseButtonUp(0))
        {
            isDown = false;
        }
    }
    private void LateUpdate()
    {
        if (isDown)
        {
            Vector3 mouseVec3 = m_mainCamera.ScreenToWorldPoint(
                new Vector3(Input.mousePosition.x, Input.mousePosition.y, targetWTSP.z)
            );
            m_target.position = mouseVec3;
        }
    }
}

5. Cree un nuevo script de objeto vacío, monte el script MouseMove.cs y luego arrastre la cámara y los objetos de destino al script.

¡completar!

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/zhunju0089/article/details/103653022
Recomendado
Clasificación