簡體   English   中英

如何與對象交互?

[英]How do I interact with objects?

我的查詢

我剛剛學習 Unity,我還沒有找到關於如何在自上而下的游戲中與對象交互的全面指南。

我的解決方案

我使用以下代碼為對象創建了一個半徑,您可以在其中與所述對象進行交互,但是我不知道如何將計划付諸實施。 我見過人們使用 PlayerController,但我不確定是否應該將它與 RigidBody 一起使用。 這是我的 Interactable.cs:

using UnityEngine;

public class Interactable : MonoBehaviour
{
    public float radius = 1.0f;

    private void OnDrawGizmosSelected() {
        Gizmos.color = Color.yellow;
        Gizmos.DrawWireSphere(transform.position, radius);
    }
}

我需要什么幫助

當玩家在半徑內時,有人可以指出我如何與對象交互的正確方向,例如移除對象嗎?

這段代碼解決了你的問題。 您必須在每個 Interactable 對象的開頭注入播放器實例。 然后通過 Vector.Distance 測量距離就足夠了。 范圍內肯定有更短的距離。

private GameObject player;
public float radius = 1.0f;
public void OnEnable() => player = GameObject.FindWithTag("Player");
public void Update()
{
    var distance = Vector3.Distance(player.transform.position, transform.position);
    if (distance <= radius)
    {
        Debug.Log("Player is range of: "+name);
    }
}

另請記住,您已經指定了播放器標簽。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM