A*算法模拟实现

本文记录了在Unity3D环境中,作者个人实现A*寻路算法的过程,通过创建并管理游戏对象,实现了路径点的搜索与定位。
摘要由CSDN通过智能技术生成

自己模拟实现了一些寻路功能,自己记录一下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CreatPoint : MonoBehaviour
{
//public Transform point;
//public Transform cheekBoard;
//int count = 15;
private List points;
// Start is called before the first frame update
void Start()
{
StartCoroutine(FindNear(nearPoint));
points = new List();
StartCoroutine(Text());
points.AddRange(GameObject.FindGameObjectsWithTag(“point”));
points.AddRange(GameObject.FindGameObjectsWithTag(“NoPoint”));
}

private RaycastHit hit;
public float speed = 3f;
private Vector3 dir = Vector3.zero;
public GameObject finallPoint;
public GameObject nearPoint;
public Dictionary<GameObject, Vector4> openList = new Dictionary<GameObject, Vector4>();
public List<GameObject> OpenList;
public Dictionary<GameObject, Vector4> closeList = new Dictionary<GameObject, Vector4>();
public int i = 0;
// Update is called once per frame
void Update()
{
    //if(closeList.ContainsKey(finallPoint)) Debug.Log(closeList[finallPoint].w);
    #region
    //OpenList = new List<GameObject>();
    //OpenList.AddRange(openList.Keys);
    //foreach (GameObject item in OpenList)
    //{
    //    item.GetComponent<SpriteRenderer>().color = Color.yellow;
    //}
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    if (Physics.Raycast(ray, out hit, 1000))
    {
        if (Input.GetMouseButtonDown(0))
        {
            //筛选是否点击到障碍物
            if (hit.collider.tag != "point") return;
            StopAllCoroutines();
            finallPoint &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值