コード例 #1
0
    public override void ProcessFrame(Playable playable, FrameData info, object playerData)
    {
        NavMeshAgent trackBinding = playerData as NavMeshAgent;

        if (!trackBinding)
        {
            return;
        }

        int inputCount = playable.GetInputCount();

        for (int i = 0; i < inputCount; i++)
        {
            float inputWeight = playable.GetInputWeight(i);
            ScriptPlayable <NavigationControlBehaviour> inputPlayable = (ScriptPlayable <NavigationControlBehaviour>)playable.GetInput(i);
            NavigationControlBehaviour input = inputPlayable.GetBehaviour();

            if (inputWeight > 0.5f && !input.destinationSet && input.destination)
            {
                if (!trackBinding.isOnNavMesh)
                {
                    continue;
                }

                trackBinding.SetDestination(input.destination.position);
                input.destinationSet = true;
            }
        }
    }
コード例 #2
0
    public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
    {
        var playable = ScriptPlayable <NavigationControlBehaviour> .Create(graph, template);

        NavigationControlBehaviour clone = playable.GetBehaviour();

        return(playable);
    }