public FreeBaseEffect() { obj3D = new UnityObject3D(new GameObject("Obj3d")); oriObj3D = new UnityObject3D(new GameObject("OriObj3d")); model3D = new UnityEffectModel3D(obj3D, 0); _fixInfo = new EffectFixInfo(); }
public static IEnumerator LoadEffectTexture(IEffectModel3D effect, string imageUrl) { // while (effect.meshRender == null) // { // yield return null; // } // // imageUrl = imageUrl.Replace(".atf", ".png"); // var assetPath = GetEffectAssetPath(imageUrl); // // var loadOperation = AssetPool.Instance.LoadAndAdd<Texture2D>(assetPath); // yield return loadOperation.Operation; // var texture = loadOperation.Result; // if (texture == null) // { // _logger.ErrorFormat("Failed to load free effect texture {0} ", assetPath); // yield break; // } // // if (effect.meshRender is SpriteRenderer) // { // var width = texture.width; // var height = texture.height; // (effect.meshRender as SpriteRenderer).sprite = Sprite.Create(texture, new Rect(0, 0, width, height), // new Vector2(0.5f, 0.5f), 100f, 0, SpriteMeshType.FullRect); // if (width > height) // { // var scale = effect.meshRender.transform.localScale; // scale.x = ((float)(height) / width); // effect.meshRender.transform.localScale = scale; // } // else // { // var scale = effect.meshRender.transform.localScale; // scale.y = -((float)(width) / height); // effect.meshRender.transform.localScale = scale; // } // } // else // { // var mat = effect.material; // // mat.mainTexture = texture; // } yield break; }
public static IEnumerator LoadParticle(IEffectModel3D effect, string url) { // var assetPath = GetParticleAssetPath(url); // // var loadOperation = AssetPool.Instance.LoadAndAdd<GameObject>(assetPath); // yield return loadOperation.Operation; // // if (loadOperation.Result == null) // { // _logger.ErrorFormat("failed to load particle {0}", assetPath); // yield break; // } // // var go = GameObject.Instantiate(loadOperation.Result); // go.transform.parent = effect.gameObject.transform; // // go.transform.localPosition = Vector3.zero; // go.transform.localScale = new Vector3(-1, 1, 1); // go.transform.localEulerAngles = new Vector3(0, 90, 0); yield break; }
public static IEnumerator LoadEffectModel(IEffectModel3D effect, string modelUrl) { // if (!string.IsNullOrEmpty(modelUrl)) // { // modelUrl = modelUrl.Replace(".wmdl", ".prefab"); // var assetPath = GetEffectAssetPath(modelUrl); // var loadOperation = AssetPool.Instance.LoadAndAdd<GameObject>(assetPath); // yield return loadOperation.Operation; // // if (loadOperation.Result == null) // { // _logger.ErrorFormat("failed to load effect model {0}", assetPath); // yield break; // } // // var meshObj = GameObject.Instantiate(loadOperation.Result); // meshObj.transform.parent = effect.gameObject.transform; // // meshObj.transform.localPosition = Vector3.zero; // meshObj.transform.localScale = new Vector3(1, 1, 1); // meshObj.transform.localEulerAngles = new Vector3(0, 0, 0); // // var meshRender = meshObj.GetComponentInChildren<MeshRenderer>(); // meshRender.shadowCastingMode = ShadowCastingMode.Off; // effect.meshRender = meshRender; // } // else // { // var go = effect.gameObject; // var spriteObj = new GameObject("Sprite"); // spriteObj.transform.parent = go.transform; // // spriteObj.transform.localPosition = Vector3.zero; // spriteObj.transform.localScale = new Vector3(1, -1, 1); // spriteObj.transform.localEulerAngles = new Vector3(90, 270, 0); // // var spriteRender = spriteObj.AddComponent<SpriteRenderer>(); // effect.meshRender = spriteRender; // } // // var mat = new Material(Shader.Find("SSJJ/Diffuse")); // if (effect.depthMode == 0 || effect.depthMode == 1) // { // mat.SetInt("_ZTest", (int)CompareFunction.LessEqual); // } // else // { // mat.SetInt("_ZTest", (int)CompareFunction.Always); // } // if (effect.depthMode == 0 || effect.depthMode == 2) // { // mat.SetInt("_ZWrite", 1); // } // else // { // mat.SetInt("_ZWrite", 0); // } // mat.mainTexture = GetTransparentTexture(); // mat.renderQueue = RenderQueueConstant.SceneObjectTransparnt; // effect.material = mat; yield break; }