IEnumerator FadeOut() { if( null == m_Renderers) yield break; eMonster_Grade eGrade = m_MonsterEntity.GetProperty<eMonster_Grade>( eComponentProperty.GRADE); if( eMonster_Grade.Boss == eGrade) yield return new WaitForSeconds( AsTableManager.Instance.GetTbl_GlobalWeight_Record( 56).Value * 0.001f); fadeTime = 1.0f; while( true) { fadeTime -= Time.deltaTime; float alpha = Mathf.Clamp01( fadeTime); foreach( Renderer ren in m_Renderers) { if( null == ren) continue; ren.material.SetFloat( "_Alpha", alpha); } if( 0.0f >= alpha) { if( ( null == MonsterEntity) || ( null == MonsterEntity.ModelObject) || ( null == MonsterEntity.ModelObject.gameObject)) { Debug.LogError( "AsMonsterFsm::FadeOut()[ null == monsterEntity ]"); yield break; } MonsterEntity.ModelObject.gameObject.SetActiveRecursively( false); #region -MonsterLines if( null != prevBalloon) { prevBalloon.Owner = null; prevBalloon = null; } #endregion yield break; } yield return null; } }
void PromptLines( string line) { if( null == line) return; if( null != prevBalloon) { GameObject.DestroyImmediate( prevBalloon.gameObject); prevBalloon = null; } GameObject go = GameObject.Instantiate( ResourceLoad.LoadGameObject( "UI/Optimization/Prefab/GUI_Balloon")) as GameObject; Debug.Assert( null != go); AsChatBalloonBase balloon = go.GetComponent<AsChatBalloonBase>(); Debug.Assert( null != balloon); balloon.OwnerType = eBalloonOwnerType.Monster; balloon.gameObject.transform.localPosition = Vector3.zero; balloon.Owner = m_Entity; balloon.SetText( line); prevBalloon = balloon; }
public AsChatBalloonBase AddChatBalloon( AsChatBalloonBase chatBalloon, string msg) { if( null == ModelObject) return null; DeleteChatBalloon(); AsChatBalloonBase balloon = GameObject.Instantiate( chatBalloon) as AsChatBalloonBase; balloon.gameObject.transform.localPosition = Vector3.zero; balloon.Owner = this; balloon.SetText( msg); balloon.isNeedDelete = false; prevBalloon = balloon; Vector3 worldPos = ModelObject.transform.position; worldPos.y += characterController.height; Vector3 screenPos = CameraMgr.Instance.WorldToScreenPoint( worldPos); Vector3 vRes = CameraMgr.Instance.ScreenPointToUIRay( screenPos); vRes.y += 2.0f; vRes.z = 0.0f; balloon.gameObject.transform.position = vRes; return balloon; }
public void DeleteChatBalloon() { if( null == ModelObject) return; if( null != prevBalloon) { GameObject.DestroyImmediate( prevBalloon.gameObject); prevBalloon = null; } }
public void AddChatBalloon( AsChatBalloonBase chatBalloon, string msg) { if( null == ModelObject) return; if( null != prevBalloon) { GameObject.DestroyImmediate( prevBalloon.gameObject); prevBalloon = null; } AsChatBalloonBase balloon = GameObject.Instantiate( chatBalloon) as AsChatBalloonBase; balloon.gameObject.transform.localPosition = Vector3.zero; balloon.Owner = this; balloon.SetText( msg); prevBalloon = balloon; Vector3 worldPos = ModelObject.transform.position; worldPos.y += characterController.height; Vector3 screenPos = CameraMgr.Instance.WorldToScreenPoint( worldPos); Vector3 vRes = CameraMgr.Instance.ScreenPointToUIRay( screenPos); vRes.y += 2.0f; vRes.z = 0.0f; balloon.gameObject.transform.position = vRes; }