/// <summary>
    /// [InitContoroller]
    /// 初期化を行う
    /// 引数1: This Agent
    /// </summary>
    public void InitContoroller(DogAIAgent thisAgent)
    {
        m_navMeshAgent = thisAgent.navMeshAgent;
        m_transform    = thisAgent.transform;
        m_rigidBody    = thisAgent.rigidBody;

        m_rigidBody.constraints = RigidbodyConstraints.FreezeRotation;
        m_rigidBody.isKinematic = true;
        m_rigidBody.useGravity  = true;
    }
Esempio n. 2
0
    /// <summary>
    /// [StartAIFunction]
    /// AIAgentで呼び出すStart関数
    /// 引数1: 自身の所属するAIAgent
    /// 引数2: 自身の所属するAITable
    /// </summary>
    public override void StartAIFunction(AIAgent aiAgent, AITable aiTable)
    {
        base.StartAIFunction(aiAgent, aiTable);
        dogAIAgent = aiAgent as DogAIAgent;

#if UNITY_EDITOR
        if (dogAIAgent == null)
        {
            Debug.LogError("Error!! DogAIFunction->StartAIFunction\n AIAgent->DogAIAgent cast failed");
        }
#endif
    }
Esempio n. 3
0
    /// <summary>
    /// [AddServant]
    /// DogAIAgentを登録する
    /// 引数1: DogAIAgent
    /// </summary>
    public void AddServant(DogAIAgent dogAgent)
    {
        //debug only, invalid key対策
#if UNITY_EDITOR
        if (m_servants.ContainsKey(dogAgent.aiAgentInstanceID))
        {
            Debug.LogError("Error!! ServantManager->AddServant\n ContainsKey(instanceID) == true");
            return;
        }
#endif

        m_servants.Add(dogAgent.aiAgentInstanceID, dogAgent);
    }
Esempio n. 4
0
    /// <summary>
    /// [RemoveServant]
    /// DogAIAgentを登録解除する
    /// 引数1: DogAIAgent
    /// </summary>
    public void RemoveServant(DogAIAgent dogAgent)
    {
        //debug only, invalid key対策
#if UNITY_EDITOR
        if (!m_servants.ContainsKey(dogAgent.aiAgentInstanceID))
        {
            Debug.LogError("Error!! ServantManager->RemoveServant\n ContainsKey(instanceID) == false");
            return;
        }
#endif

        m_servants.Remove(dogAgent.aiAgentInstanceID);
    }
Esempio n. 5
0
    /// <summary>
    /// [UnregisterPlayerOfServant]
    /// DogAIAgentとPlayerを紐付け解除する
    /// 引数1: DogAIAgent
    /// 引数2: PlayerObject
    /// </summary>
    public void UnregisterPlayerOfServant(DogAIAgent dogAgent, GameObject player)
    {
        //debug only, invalid key対策
#if UNITY_EDITOR
        if (!m_servants.ContainsKey(dogAgent.aiAgentInstanceID))
        {
            Debug.LogError("Error!! ServantManager->RegisterPlayerOfServant\n ContainsKey(instanceID) == false");
            return;
        }
        if (!m_servantByPlayers.ContainsKey(player.GetInstanceID()))
        {
            Debug.LogError("Error!! ServantManager->RegisterPlayerOfServant\n ContainsKey(instanceID) == false");
            return;
        }
#endif

        m_servantByPlayers[player.GetInstanceID()].Remove(dogAgent);
    }
Esempio n. 6
0
    /// <summary>
    /// [LinkPlayer]
    /// プレイヤーとの紐付けを行う
    /// 引数1: 紐付けるPlayer
    /// 引数2: 紐付けるDogAgent
    /// </summary>
    public void LinkPlayer(GameObject player, DogAIAgent dogAIAgent)
    {
        bool isOldLinked = isLinked;

        //ID登録
        linkPlayerID  = player.GetInstanceID();
        linkServantID = dogAIAgent != null ? dogAIAgent.aiAgentInstanceID : -1;
        //Managerに紐付け登録
        if (!isOldLinked)
        {
            PlayerAndTerritoryManager.instance.allPlayers[linkPlayerID].playerInfo.AddMarkPoint(this);
        }

        //Timer計測開始
        m_timer.Start();
        //ポイントタイマーをポーズさせる
        m_timer.Pause();
        //Callback
        LinkPoint();
    }
Esempio n. 7
0
    /// <summary>
    /// [RegisterPlayerOfServant]
    /// DogAIAgentとPlayerを紐付けする
    /// return: dogAgentのPlayer別Index
    /// 引数1: DogAIAgent
    /// 引数2: PlayerObject
    /// 引数3: dogAgent.linkPlayerServantsOwnIndex(out)
    /// </summary>
    public void RegisterPlayerOfServant(DogAIAgent dogAgent, GameObject player, out int linkPlayerServantsOwnIndex)
    {
        //debug only, invalid key対策
#if UNITY_EDITOR
        if (!m_servants.ContainsKey(dogAgent.aiAgentInstanceID))
        {
            Debug.LogError("Error!! ServantManager->RegisterPlayerOfServant\n ContainsKey(instanceID) == false");
            linkPlayerServantsOwnIndex = -1;
            return;
        }
        if (!m_servantByPlayers.ContainsKey(player.GetInstanceID()))
        {
            Debug.LogError("Error!! ServantManager->RegisterPlayerOfServant\n ContainsKey(instanceID) == false");
            linkPlayerServantsOwnIndex = -1;
            return;
        }
#endif

        m_servantByPlayers[player.GetInstanceID()].Add(dogAgent);
        linkPlayerServantsOwnIndex = m_servantByPlayers[player.GetInstanceID()].Count - 1;
    }