void Start() { selfTransform = transform; selfRenderer = GetComponent <Renderer>(); if (selfRenderer == null) { selfRenderer = GetComponentInChildren <Renderer>(); } var u2p = GlobalHub.Instance.Url2Point; if (u2p.ContainsKey(url)) { point = u2p[url]; // 从缓存字典提取,清空字典则新加载场景颜色为初始化颜色 } switch (EnteractType) { case ENTERACT_TYPE.CLR_EXC: enteract = new ColorExchanger(this, selfRenderer.material) { Url = url, Point = point, wrap = this }; // 场景唤醒时发送一条消息,如开启颜色已经正确的门 // 延迟发送,规避时序问题 StartCoroutine(PostColorAct()); break; case ENTERACT_TYPE.CLR_SPR: enteract = new ColorSpring(this, selfRenderer.material) { Url = url, Point = point, wrap = this, }; break; case ENTERACT_TYPE.TLK: enteract = new TalkActor(this) { Point = point, currentPoint = point, Url = url }; break; default: Debug.LogErrorFormat(this, "交互类型未指定"); return; } }
override protected void Start() { base.Start(); if (p_cEnteract == null) { p_cEnteract = this; } enteract = p_cEnteract.GetComponentInChildren <IEnteract>(); if (enteract == null) { Debug.LogErrorFormat(this, "控制器引用为空"); return; } EventManager.Instance.AddListener(EVENT_TYPE.COLOR_ACT, this); }