예제 #1
0
        public void SetNPCSign(NPCSignState state)
        {
            switch (state)
            {
            case NPCSignState.Doing:
                signState = NPCSignState.Doing;
                if (NPCDoingSign != null)
                {
                    NPCDoingSign.SetActive(true);
                }
                else
                {
                    AssetCacheMgr.GetInstanceAutoRelease(NPC_QUESTION_MARK_NAME, (prefabName, dbid, obj) =>
                    {
                        if (obj != null && Transform != null)
                        {
                            NPCDoingSign = obj as GameObject;
                            NPCDoingSign.transform.parent        = Transform.Find("slot_billboard");
                            NPCDoingSign.transform.localPosition = Vector3.zero;
                            NPCDoingSign.transform.localRotation = Quaternion.identity;
                            NPCDoingSign.transform.localScale    = new Vector3(1, 1, 1);

                            if (signState != NPCSignState.Doing)
                            {
                                NPCDoingSign.SetActive(false);
                                Debug.LogError("Are you kidding me?" + ID);
                            }
                            else
                            {
                                //Debug.Log("NPCDoingSign.SetActive(true)" + ID);
                            }
                        }
                        else
                        {
                            Debug.LogError("find dengyongjian" + ID);
                        }
                    });
                }
                break;

            case NPCSignState.Done:
                signState = NPCSignState.Done;
                if (NPCDoneSign != null)
                {
                    NPCDoneSign.SetActive(true);
                }
                else
                {
                    AssetCacheMgr.GetInstanceAutoRelease(NPC_EXCLAMATION_MARK_NAME, (prefabName, dbid, obj) =>
                    {
                        if (obj != null && Transform != null)
                        {
                            NPCDoneSign = obj as GameObject;
                            NPCDoneSign.transform.parent        = Transform.Find("slot_billboard");
                            NPCDoneSign.transform.localPosition = Vector3.zero;
                            NPCDoneSign.transform.localRotation = Quaternion.identity;
                            NPCDoneSign.transform.localScale    = new Vector3(1, 1, 1);

                            if (signState != NPCSignState.Done)
                            {
                                NPCDoneSign.SetActive(false);
                                Debug.LogError("Are you kidding me?" + ID);
                            }
                            else
                            {
                                //Debug.Log("NPCDoingSign.SetActive(true)" + ID);
                            }
                        }
                        else
                        {
                            Debug.LogError("find dengyongjian" + ID);
                        }
                    });
                }
                break;

            case NPCSignState.None:
                if (NPCDoingSign != null)
                {
                    NPCDoingSign.SetActive(false);
                }
                if (NPCDoneSign != null)
                {
                    NPCDoneSign.SetActive(false);
                }
                break;
            }
        }
예제 #2
0
        public void SetNPCSign(NPCSignState state)
        {
            switch (state)
            {
                case NPCSignState.Doing:
                    signState = NPCSignState.Doing;
                    if (NPCDoingSign != null)
                    {
                        NPCDoingSign.SetActive(true);
                    }
                    else
                    {
                        AssetCacheMgr.GetInstanceAutoRelease(NPC_QUESTION_MARK_NAME, (prefabName, dbid, obj) =>
                        {
                            if (obj != null && Transform != null)
                            {
                                NPCDoingSign = obj as GameObject;
                                NPCDoingSign.transform.parent = Transform.FindChild("slot_billboard");
                                NPCDoingSign.transform.localPosition = Vector3.zero;
                                NPCDoingSign.transform.localRotation = Quaternion.identity;
                                NPCDoingSign.transform.localScale = new Vector3(1, 1, 1);

                                if (signState != NPCSignState.Doing)
                                {
                                    NPCDoingSign.SetActive(false);
                                    LoggerHelper.Error("Are you kidding me?" + ID);
                                }
                                else
                                {
                                    LoggerHelper.Info("NPCDoingSign.SetActive(true)" + ID);
                                }
                            }
                            else
                            {
                                LoggerHelper.Error("find dengyongjian" + ID);
                            }
                        });
                    }
                    break;

                case NPCSignState.Done:
                    signState = NPCSignState.Done;
                    if (NPCDoneSign != null)
                    {
                        NPCDoneSign.SetActive(true);
                    }
                    else
                    {
                        AssetCacheMgr.GetInstanceAutoRelease(NPC_EXCLAMATION_MARK_NAME, (prefabName, dbid, obj) =>
                        {
                            if (obj != null && Transform != null)
                            {
                                NPCDoneSign = obj as GameObject;
                                NPCDoneSign.transform.parent = Transform.FindChild("slot_billboard");
                                NPCDoneSign.transform.localPosition = Vector3.zero;
                                NPCDoneSign.transform.localRotation = Quaternion.identity;
                                NPCDoneSign.transform.localScale = new Vector3(1, 1, 1);

                                if (signState != NPCSignState.Done)
                                {
                                    NPCDoneSign.SetActive(false);
                                    LoggerHelper.Error("Are you kidding me?" + ID);
                                }
                                else
                                {
                                    LoggerHelper.Info("NPCDoingSign.SetActive(true)" + ID);
                                }
                            }
                            else
                            {
                                LoggerHelper.Error("find dengyongjian" + ID);
                            }
                        });
                    }
                    break;

                case NPCSignState.None:
                    if (NPCDoingSign != null)
                    {
                        NPCDoingSign.SetActive(false);
                    }
                    if (NPCDoneSign != null)
                    {
                        NPCDoneSign.SetActive(false);
                    }
                    break;
            }
        }