Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 统一切换颜色的按钮_C#_Unity3d - Fatal编程技术网

C# 统一切换颜色的按钮

C# 统一切换颜色的按钮,c#,unity3d,C#,Unity3d,一般来说,我对unity和编码非常陌生,我试图在unity中创建一个按钮,最终在我的游戏中打开一扇门,但我立即遇到了一个问题,当我与按钮碰撞时,它不会切换颜色,我不确定我的代码或unity中的设置是否有问题 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Button : MonoBehaviour { [SerializeField] Gam

一般来说,我对unity和编码非常陌生,我试图在unity中创建一个按钮,最终在我的游戏中打开一扇门,但我立即遇到了一个问题,当我与按钮碰撞时,它不会切换颜色,我不确定我的代码或unity中的设置是否有问题

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Button : MonoBehaviour
{
    [SerializeField]
    GameObject switchOn;

    [SerializeField]
    GameObject switchOff;

    public bool isOn = false;

    void Start () 
    {
        gameObject.GetComponent<SpriteRenderer>().sprite = switchOff.GetComponent<SpriteRenderer>().sprite;
    }

    void OnTriggerEnter2D(Collider2D col) 
    {
        gameObject.GetComponent<SpriteRenderer>().sprite = switchOn.GetComponent<SpriteRenderer>().sprite;

        isOn = true;
    }
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类按钮:MonoBehavior
{
[序列化字段]
游戏对象切换;
[序列化字段]
游戏对象关闭;
公共bool=false;
无效开始()
{
gameObject.GetComponent().sprite=关闭.GetComponent().sprite;
}
无效OnTriggerEnter2D(碰撞的R2D列)
{
gameObject.GetComponent().sprite=switch.GetComponent().sprite;
isOn=真;
}
}

我有两种不同的按钮纹理放在游戏对象的开关上,一种是绿色的,一种是红色的,有人知道代码是否有问题吗。确保你的玩家有一个刚体和一个碰撞器,确保你的门有一个碰撞器。还要确保在玩家对撞机上检查了触发器