Unity - A计划(一年有效期) 扫二维码继续学习 二维码时效为半小时

(61评价)
价格: 2208.00元
秘密行动 - 警报问题
Nekros发起了问答2018-11-19
2
回复
662
浏览

unity 5.6.5f1

在看完7.Stealth秘密行动游戏开发-给游戏添加控制器GameController后,我创建了游戏控制器并添加了相应代码后无法控制警戒灯的闪烁,请问是怎么回事?

AlermLight

    public bool alermOn = false;
    public float animationSpeed = 1;//变化速度
    public static AlermLight _instance; 

    private float LowIntensity = 0;//警报灯不亮
    private float HighIntensity = 1;//警报灯最亮

    private float targetIntensity;
    //初始化、赋值
    void Awake()
    {
        GetComponent<Light>().intensity = 0f;
        targetIntensity = HighIntensity;
        //alermOn = true;
        _instance = this;
    }
	// Use this for initialization
	void Start () {
		
	}

	void Update () {

	    if (alermOn)
	    {
	        GetComponent<Light>().intensity = Mathf.Lerp(GetComponent<Light>().intensity, targetIntensity, Time.deltaTime * animationSpeed);
	        if (Mathf.Abs(GetComponent<Light>().intensity - targetIntensity) < 0.05f)
	        {
	            if (targetIntensity == HighIntensity)
	            {
	                targetIntensity = LowIntensity;
	            }
	            else if (targetIntensity == LowIntensity)
	            {
	                targetIntensity = HighIntensity;
	            }
	        }
	    }
	    else
	    {
	        GetComponent<Light>().intensity = Mathf.Lerp(GetComponent<Light>().intensity, 0,     Time.deltaTime * animationSpeed);
	    }

GameController

    public bool alermOn = false;

    void Awake()
    {
        alermOn = false;
    }

    void Update()
    {
        AlermLight._instance.alermOn = this.alermOn;
    }

 

所有回复
  • 老师_Trigger 2018-11-19

    同学你好,检查一下,首先开关alermOn有没有打开,对应警报方法有没有执行就是第一个脚本里的update方法里条件判断的两个分支是否都执行了,可以使用debug或是直接看Light的相关属性有没有变化,再去排查问题。

    • Nekros 2018-11-19

      我把GameController删了重弄了一个,结果恢复正常了。。。

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!