private void RpcOnPathComplete() { // reconstructs the path and calls the original OnPathComplete List <Vector3> vPath = new List <Vector3>(); foreach (var vector in vectorPath) { vPath.Add(vector); } var path = ABPath.FakePath(vPath); aiUnetPath.RpcOnPathComplete(path); }
public void OnPathReturned(Path p, bool add, Vector3 endpos, bool okayLookAt, Vector3 toLookAt) { if (!add) { //if (pathObj != null) // pathObj.Release(this); pathObj = p as ABPath; //pathObj.Claim(this); SetFirstWaypoint(); if (okayLookAt) { /* * pathObj.vectorPath.Add(endpos - (toLookAt - endpos).normalized * halfHeight * 8); * pathObj.path.Add(pathObj.path[pathObj.path.Count - 1]); * pathObj.vectorPath.Add(endpos + (toLookAt - endpos).normalized * halfHeight * 4); * pathObj.path.Add(pathObj.path[pathObj.path.Count - 1]); */ //DesiredOrientationAtLastWaypoint = (toLookAt - endpos).normalized; } else { var pc = PathCount; //DesiredOrientationAtLastWaypoint = (pathObj.vectorPath[pc - 1] - pathObj.vectorPath[pc - 2]).normalized; } } else { if (!ActualPathExists()) { //if(pathObj != null) // pathObj.Release(this); pathObj = p as ABPath; //pathObj.Claim(this); SetFirstWaypoint(); if (okayLookAt) { /* * pathObj.vectorPath.Add(endpos - (toLookAt - endpos).normalized * halfHeight * 8); * pathObj.path.Add(pathObj.path[pathObj.path.Count - 1]); * pathObj.vectorPath.Add(endpos + (toLookAt - endpos).normalized * halfHeight * 4); * pathObj.path.Add(pathObj.path[pathObj.path.Count - 1]); */ //DesiredOrientationAtLastWaypoint = (toLookAt - endpos).normalized; } } else { var newVectorPath = pathObj.vectorPath.Concat(p.vectorPath.Skip(1)).ToList(); var newNodePath = pathObj.path.Concat(p.path.Skip(1)).ToList(); if (okayLookAt) { /* * newVectorPath.Add(endpos - (toLookAt - endpos).normalized * halfHeight * 8); * newNodePath.Add(newNodePath[newNodePath.Count - 1]); * pathObj.vectorPath.Add(endpos + (toLookAt - endpos).normalized * halfHeight * 4); * pathObj.path.Add(pathObj.path[pathObj.path.Count - 1]); */ //DesiredOrientationAtLastWaypoint = (toLookAt - endpos).normalized; } pathObj = ABPath.FakePath(newVectorPath, newNodePath); } } }