Esempio n. 1
0
 public FSNLayerObject(FSNModule parent, GameObject realObject, IInGameSetting setting)
 {
     m_object = realObject;
     m_trans  = m_object.transform;
     m_coComp = FSNCoroutineComponent.GetFromGameObject(m_object);
     m_module = parent;
 }
Esempio n. 2
0
        public GObject(FSNModule parent, GameObject outerGameObj, GameObject realGameObj, IInGameSetting setting)
            : base(parent, outerGameObj, setting)
        {
            var newObjTr = realGameObj.transform;

            newObjTr.SetParent(outerGameObj.transform);
            newObjTr.localPosition = Vector3.zero;
            newObjTr.localRotation = Quaternion.identity;
            newObjTr.localScale    = Vector3.one;

            // 리스너 구하기 (null이어도 무관)
            m_listener = realGameObj.GetComponent <FSNBaseGameObjectEventListener>();
        }
 public BaseObjectLayerObject(FSNModule parent, GameObject gameObj, IInGameSetting setting)
     : base(parent, gameObj, setting)
 {
     // 내부 게임 오브젝트 생성
     if (useInnerObject)
     {
         var inner = new GameObject();
         inner.name = "(Inner)";
         var tr = inner.transform;
         tr.parent        = transform;
         tr.localPosition = Vector3.zero;
         tr.localRotation = Quaternion.identity;
         tr.localScale    = Vector3.one;
         innerGO          = inner;
     }
 }
Esempio n. 4
0
        public Text_NewUI(FSNModule parent, GameObject gameObj, IInGameSetting setting)
            : base(parent, gameObj, setting)
        {
            m_text      = gameObj.AddComponent <Text>();
            m_rectTrans = m_text.rectTransform;

            m_rectTrans.pivot = Vector2.zero;

            // 여백까지 고려한 텍스트 최대 width 설정
            float textWidth = FSNEngine.Instance.ScreenXSize - setting.TextMarginLeft - setting.TextMarginRight;

            m_rectTrans.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, textWidth);
            m_rectTrans.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 1f);

            m_text.horizontalOverflow = HorizontalWrapMode.Wrap;                // word-wrap
            m_text.verticalOverflow   = VerticalWrapMode.Overflow;              // 줄 갯수는 제한 없도록

            m_text.lineSpacing = setting.TextLineSpacing;

            switch (setting.TextAlign)
            {
            case FSNInGameSetting.TextAlignType.Left:
                m_text.alignment = TextAnchor.UpperLeft;
                break;

            case FSNInGameSetting.TextAlignType.Middle:
                m_text.alignment = TextAnchor.UpperCenter;
                break;

            case FSNInGameSetting.TextAlignType.Right:
                m_text.alignment = TextAnchor.UpperRight;
                break;
            }

            var module = parent as FSNTextModule_NewUI;

            m_text.font = module.font;

            // TEST : 그림자 효과를 추가해본다....
            var   shadow     = gameObj.AddComponent <Shadow>();
            float shadowDist = Mathf.Max(1f, setting.FontSize * 0.08f);

            shadow.effectColor    = new Color(0, 0, 0, 0.7f);
            shadow.effectDistance = new Vector2(shadowDist, -shadowDist);
        }
Esempio n. 5
0
        public Image_NewUI(FSNModule parent, GameObject gameObj, IInGameSetting setting)
            : base(parent, gameObj, setting)
        {
            m_image = innerGO.AddComponent <RawImage>();                                        // 안쪽의 오브젝트에 추가하기
            //m_canvasRenderer	= m_image.canvasRenderer;
            //m_renderer			= m_image.GetComponent<Renderer>();
            //m_image				= gameObject.AddComponent<RawImage>();	// 안쪽의 오브젝트에 추가하기
            m_rectTrans = m_image.rectTransform;

            m_rectTrans.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 0);
            m_rectTrans.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 0);
            m_rectTrans.pivot = Vector2.one / 2f;

            m_parentImageModule = parent as FSNImageModule_NewUI;
            var mat = m_parentImageModule.imageMaterial;

            if (mat != null)                                                                                            // 사용자 지정 마테리얼 설정
            {
                //m_image.material= new Material(mat);
                m_image.material             = mat;
                m_image.material.renderQueue = 2450;                    // 강제 렌더큐 설정 (Depth Write를 작동시키기 위해)
            }

            m_childCanvas = gameObj.AddComponent <Canvas>();
            gameObj.AddComponent <CanvasRenderer>();            // FIX : Canvas 가 움직이지 않던 문제 해결. 버그인가봄....
            m_childCanvas.overrideSorting = true;
            m_canvasTrans = gameObj.GetComponent <RectTransform>();

            //var dummyrenderer		= gameObj.AddComponent<RawImage>();				// (편법) child까지 렌더링 오더 소팅을 하기 위해 더미 렌더러를 생성한다.
            //dummyrenderer.enabled	= false;										// 렌더링할 필요가 없으므로 끄기
            //m_canvasTrans			= dummyrenderer.GetComponent<RectTransform>();	// 일반 transform을 이제 사용할 수 없다

            //Debug.Log("relativeDepth : " + m_image.GetComponent<CanvasRenderer>().relativeDepth);

            //m_canvasTrans	= m_rectTrans;

            //FSNCoroutineComponent.GetFromGameObject(gameObj).StartCoroutine(UpdateCo());	// 업데이트 루프 등록
        }
Esempio n. 6
0
 public ImageLayerObject(FSNModule parent, GameObject gameObj, IInGameSetting setting)
     : base(parent, gameObj, setting)
 {
 }
Esempio n. 7
0
 public Sound(FSNModule parent, GameObject realObject, IInGameSetting setting)
     : base(parent, realObject, setting)
 {
     m_asource = realObject.AddComponent <AudioSource>();
     m_asource.spatialBlend = 0;                 // 완전한 2D 사운드로
 }
 public Image_UnityGUI(FSNModule parent, GameObject gameObj, IInGameSetting setting)
     : base(parent, gameObj, setting)
 {
 }
Esempio n. 9
0
 public Text_UnityGUI(FSNModule parent, GameObject gameObj, IInGameSetting setting)
     : base(parent, gameObj, setting)
 {
     //var module				= parent as FSNTextModule_UnityGUI;
     //gameObject.guiText.font	= module.font;
 }