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; }
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; } }
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); }
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()); // 업데이트 루프 등록 }
public ImageLayerObject(FSNModule parent, GameObject gameObj, IInGameSetting setting) : base(parent, gameObj, setting) { }
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) { }
public Text_UnityGUI(FSNModule parent, GameObject gameObj, IInGameSetting setting) : base(parent, gameObj, setting) { //var module = parent as FSNTextModule_UnityGUI; //gameObject.guiText.font = module.font; }