예제 #1
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        DiffusesNodeMap script = (DiffusesNodeMap)target;

        if (GUILayout.Button("Bake"))
        {
            script.bake = true;
        }
    }
예제 #2
0
    private void OnEnable()
    {
        NPCManager = FindObjectOfType <NPCManager>();
        if (NPCManager == null)
        {
            Debug.LogError("NPCManager is null");
        }

        player = FindObjectOfType <CPMovement>().GetComponent <CPMovement>();
        if (player == null)
        {
            Debug.LogError("CPMovement or Player Logic are not assigned.");
        }
        else
        {
            playerLogic = player.GetComponent <PlayerLogic>();
        }

        _diffuseNavMap               = FindObjectOfType <DiffusesNodeMap>();
        skinnedMeshRenderer          = GetComponentInChildren <SkinnedMeshRenderer>();
        skinnedMeshRenderer.material = skinnedMeshRenderer.sharedMaterials[skinnedMeshMaterialIndex];
        _animator      = GetComponent <Animator>();
        rb             = GetComponent <Rigidbody>();
        NPCBoxCollider = GetComponent <BoxCollider>();

        viewArcNodes  = new List <Vector3>();
        originalScale = transform.localScale;

        behaviourState                 = new Context(); // optionally add things you might need access to in your leaf nodes
        behaviourState.enemy           = playerLogic;
        behaviourState.me              = this;
        behaviourTree                  = CreateBehaviourTree();
        behaviourState._originalRadius = _NPCAgent.stoppingDistance;

        info.avoidanceRange  = _avoidanceRange;
        info.scriptReference = this;
        NPCManager._NPCList.Add(info);
        _diffuseNavMap.RegisterObject(transform);
    }