Movimento de objetos Unity seguindo o mouse

        Você quer que seu objeto em movimento se mova onde quer que você clique com o mouse?

Por favor siga-me !

Primeiro, você precisa adicionar um Plano, suas paredes e seus objetos em movimento.

 

Para acompanhar o movimento do mouse, primeiro criamos um script

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class MovementController : MonoBehaviour
{
    public Transform goal;  // 目标位置的Transform组件
    private NavMeshAgent agent;  // NavMeshAgent组件用于控制移动

    // 在第一帧更新前调用
    void Start()
    {
        // 获取自身上的NavMeshAgent组件
        agent = GetComponent<NavMeshAgent>();
        
        // 设置初始目标位置为goal的位置
        agent.destination = goal.position;
    }

    // 在每一帧更新时调用
    void Update()
    {
        // 检测鼠标左键是否被点击
        if (Input.GetMouseButtonDown(0)) 
        {
            RaycastHit hit;  // 存储射线击中的信息
            // 从鼠标点击位置创建一条射线,进行射线检测
            if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 100)) 
            {
                // 如果射线击中物体,设置NavMeshAgent的目标位置为射线击中的点
                agent.destination = hit.point;
            }
        }
    }
}

Vamos analisar brevemente o código primeiro:

No início, você deve primeiro criar um objeto vazio e puxá-lo para a posição do script Objetivo. A função do objeto vazio é registrar a posição do ponto final inicial, de modo que mesmo que você não mova o mouse no início, o objeto pode chegar onde você quiser. Para onde ir

 

Pendure este script no objeto que deseja mover (aqui penduro o script no meu pilar vermelho para simplificar meu objeto)

Mesmo que o script seja interrompido, o objeto atual não poderá ser movido.

Nós vamos assar:

Abra a janela Navegação no Windows --> AI ---->Navegação

 Observe que você pode alternar continuamente entre as janelas Inspetor e Navegação

 

Primeiro, defina todos os nossos objetos, exceto os objetos em movimento, como estáticos 

Em seguida, encontre o objeto que queremos mover

Você pode ajustar o raio do agente adequadamente para que ele não se aproxime do obstáculo (ou seja, do objeto que você definiu como estático).

Em seguida, clique em Assar 

Desta forma, você pode operá-lo no Game!

 

 

Supongo que te gusta

Origin blog.csdn.net/weixin_74850661/article/details/132369679
Recomendado
Clasificación