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);
    }
示例#2
0
            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);
                    }
                }
            }