1

別のオブジェクトと衝突すると色が変わり、サイズが小さくなるオブジェクトがありますgameObject.transform.localScale /= 2;が、白haloです。

haloをオブジェクトの色と一致させたい。オブジェクトが緑色の場合、オブジェクトもhalo緑色になります。私のオブジェクトが青色の場合、haloも青色になります。また、オブジェクトが他のオブジェクトとの衝突を検出したときにhalo も減少するようにしたいのですが、どうすればよいかわかりません。

画面を押すと、コードの色が変わります(青、赤、または緑):

public class ChangeColor : MonoBehaviour {

    public Material[] materials;
    public Renderer rend;

    private int index = 1;

    // Use this for initialization
    void Start () {

        rend = GetComponent<Renderer> ();
        rend.enabled = true;

    }

    public void Update() {
        if (materials.Length == 0) {
            return;
        }
        if (Input.GetMouseButtonDown (0)) {
            index += 1;

            if (index == materials.Length + 1) {
                index = 1; 
            }
            print (index);

            rend.sharedMaterial = materials [index - 1];                        
        }
    }
}

私は使用を知っていますhaloが、プログラム的にはわかりません。

4

1 に答える 1

0

この Halo コンポーネントは、少し作業するだけでアクセスできます。コードを使用して説明します。

Private void Start() {   
    SerializedObject haloComponent = new SerializedObject(this.gameObject.GetComponent("Halo"));
    haloComponent?.FindProperty("m_Color").colorValue = Color.Red;
}

できることは他にもいくつかありますが、これが Halo への参照を取得する方法です。GetComponent<>Halo であるGetComponent("Halo")何かを検索していることと、Halo という名前の何かを検索していることに注意してください。コンポーネントは Halo という名前なので、魅力的に機能します。やってみて

于 2020-11-14T19:27:11.947 に答える