Exemple #1
0
    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;
        }
    }
Exemple #2
0
    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);
    }