1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【unity学习笔记】第一人称射击游戏(2)

【unity学习笔记】第一人称射击游戏(2)

时间:2022-01-07 17:54:58

相关推荐

【unity学习笔记】第一人称射击游戏(2)

这篇博客主要记录一下敌人自动寻路以及点击地面移动的相关知识点

简单的自动寻路功能,新增了可以去多个位置巡逻

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.AI;public class _nav : MonoBehaviour{private NavMeshAgent foxNav;public Transform playerTrans;public Transform[] transforms;float time = 0;int i = 0;void Start(){foxNav = GetComponent<NavMeshAgent>();foxNav.SetDestination(transforms[i].position);}// Update is called once per framevoid Update(){//自动寻路// foxNav.SetDestination(playerTrans.position);//若距离很小,就设为到达if (Vector3.Distance(foxNav.nextPosition, foxNav.destination) < 0.2f){this.transform.position = foxNav.nextPosition;time += Time.deltaTime;if (time > 3){time = 0;foxNav.SetDestination(transforms[(i++)%transforms.Length].position);}}}}

用鼠标点击地面,游戏对象便会走到相应位置

//摄像机跟随的设置

public class _cameraPos : MonoBehaviour{public Transform Player;Vector3 cameraPos;void Start(){//固定三维向量差cameraPos = transform.position - Player.transform.position;}// Update is called once per framevoid Update(){transform.position = Player.transform.position + cameraPos;cameraPos = transform.position - Player.transform.position;// transform.position = new Vector3(Player.transform.position.x + cameraPos.x, Player.transform.position.y + cameraPos.y, Player.transform.position.z + cameraPos.z);}}

具体代码

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.AI;public class _Game2PlayerMove : MonoBehaviour{private NavMeshAgent playerNav;void Start(){playerNav = GetComponent<NavMeshAgent>();}// Update is called once per framevoid Update(){//通过鼠标点击人物移动if (Input.GetMouseButtonDown(0)){//从鼠标位置发射一条射线Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hit;//如果射线检测到物体/碰撞盒if (Physics.Raycast(ray, out hit)){playerNav.SetDestination(hit.point);//物体下一步的位置// Debug.Log(playerNav.nextPosition + "nextPosition");//物体终点的位置//Debug.Log(playerNav.destination + "destination");}}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。