コード例 #1
0
ファイル: GetCandyAction.cs プロジェクト: LudoRathowm/FunCamp
    public override bool checkProceduralPrecondition(GameObject agent)
    {
        CandyGiverComponent[] GenerousPeople = (CandyGiverComponent[]) UnityEngine.GameObject.FindObjectsOfType ( typeof(CandyGiverComponent));
        CandyGiverComponent closest = null;
        float closestDist = 0;

        foreach (CandyGiverComponent giver in GenerousPeople) {
            if (!giver.KidsIGaveCandiesToAlready.Contains(this.gameObject.GetComponent<CandyCollector>())){
            if (closest == null) {
                // first one, so choose it for now
                closest = giver;
                closestDist = (giver.gameObject.transform.position - agent.transform.position).magnitude;
            } else {
                // is this one closer than the last?
                float dist = (giver.gameObject.transform.position - agent.transform.position).magnitude;
                if (dist < closestDist) {
                    // we found a closer one, use it
                    closest = giver;
                    closestDist = dist;
                }
            }
            }}
        if (closest == null)
            return false;

        targetCandyGiver = closest;
        targetCandyGiver.KidsIGaveCandiesToAlready.Add(this.gameObject.GetComponent<CandyCollector>());
        target = targetCandyGiver.gameObject;

        return closest != null;
    }
コード例 #2
0
ファイル: GetCandyAction.cs プロジェクト: LudoRathowm/FunCamp
 public override void reset()
 {
     givenCandy = false;
     targetCandyGiver = null;
     startTime = 0;
 }