ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

Unityで2DのRPGを作る - NPCとの会話処理を修正する(猫の冒険)

Unity で 2DRPG 作りに奮闘してます。
今回は NPC と会話する際に問題となっていた点を修正しました。

問題点としては、動き回るNPCに話しかける時、背中ごしだったり。。。
そのほかに、話しかけようとすると遠ざかったりするので、近づいたら、立ち止まり、プレイヤーに向きをかえるように修正しました。
f:id:a1026302:20201104131441p:plain

スクリプト

修正

    player = GameObject.Find("Player(Clone)");

    // PlayerとNPCの距離を計算
    float distance = Vector2.Distance(
        transform.position, 
        player.transform.position
    );
   
   // PlayerとNPCが閾値より近づいたら、Playerに向きをかえて動かない。
   if (distance > distance_val)
        {
            Vector2? vector = new Vector2( 
                (transform.position.x - player.transform.position.x) * -1, 
                (transform.position.y - player.transform.position.y) * -1
            );
            setStateToAnimator(vector: vector != Vector2.zero ? vector : (Vector2?)null);
            isReachTargetPosition = true;
            return;
        }

プレイ動画

これで、背中越しに話しかけることがなくなりました。
www.youtube.com