Unity3D :将代理移动到鼠标单击的位置

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

将代理移动到鼠标单击的位置

此脚本允许通过在对象表面上单击鼠标来选择导航网格上的目标点。单击位置由_射线投射_确定,而非像将激光束指向对象来查看其所在位置(有关此技术的完整描述,请参阅摄像机射线页面)。由于 GetComponent 函数的执行速度相当慢,因此该脚本在 Start 函数期间将其结果存储在变量中,而不是在 Update 中重复调用它。

    // MoveToClickPoint.cs
        using UnityEngine;
        using UnityEngine.AI;
    
        public class MoveToClickPoint : MonoBehaviour {
            NavMeshAgent agent;
        
            void Start() {
                agent = GetComponent<NavMeshAgent>();
            }
        
            void Update() {
                if (Input.GetMouseButtonDown(0)) {
                    RaycastHit hit;
                
                    if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 100)) {
                        agent.destination = hit.point;
                    }
                }
            }
        } 
    //MoveToClickPoint.js
        var agent: NavMeshAgent;
    
        function Start() {
            agent = GetComponent.<NavMeshAgent>();
        }

        function Update() {
            if (Input.GetMouseButtonDown(0)) {
                var hit: RaycastHit;
        
                if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), hit, 100)) {
                    agent.destination = hit.point;
                }
            }
        }

3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D :告诉导航网格代理移动到目标位置 (mvrlink.com)

下一篇:Unity3D :在一组点之间进行代理巡逻 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号