コード例 #1
0
        public override bool Tick()
        {
            Entity       agent = context.agent;
            WaypointPath path  = context.path;

            Debug.Assert(path != null, nameof(path) + " != null");

            WaypointTracker tracker       = path.GetTrackerForEntity(context.agent.index);
            int             completedLaps = tracker.CompletedLaps;

            Vector3 waypoint = tracker.CurrentWaypoint;

            float distSquared = agent.transformInfo.DistanceToSquared(waypoint);

            if (distSquared < 20 * 20)   // todo replace with a radius per waypoint
            {
                tracker.Progress();
            }

            waypoint = tracker.CurrentWaypoint;
            ApproachType approachType = tracker.IsFinalWaypoint ? ApproachType.Arrive : ApproachType.Normal;

            agent.FlightSystem.SetTargetPosition(waypoint, approachType);
            return(tracker.CompletedLaps != completedLaps);
        }
コード例 #2
0
        protected override float Score(WaypointContext context)
        {
            WaypointPath path = context.path;

            if (path == null)
            {
                return(0);
            }
            WaypointTracker tracker     = path.GetTrackerForEntity(context.agent.index);
            Vector3         waypoint    = tracker.CurrentWaypoint;
            float           distSquared = context.agent.transformInfo.DistanceToSquared(waypoint);

            return(MathUtil.PercentageOfRangeClamped(distSquared, minDist * minDist, maxDist * maxDist));
        }
コード例 #3
0
ファイル: SynthiaCarAI.cs プロジェクト: j4lley/octane4unity
    void Start()
    {
        UnityStandardAssets.Utility.WaypointCircuit cir = (UnityStandardAssets.Utility.WaypointCircuit)Instantiate(circuit, carpath);


        GameObject target = new GameObject();

        target.transform.parent = transform;
        traker         = new WaypointTracker(transform, cir, target.transform);
        detectionRange = 0;
        controller     = GetComponent <CarController>();

        rays = new Ray[3];

        this.tag = "Vehicle";
    }