public CanvasSlotCommand(FxCanvasSlot obj, Exporter exporter) { ObjectType = CommandTypeCanvasSlot; //---------------- canvasID = exporter.GetObject(obj.canvas).ObjectID; channelName = obj.names[obj.channelName]; }
public BeginCanvasCommand(FxCanvasObject obj, Exporter exporter) { ObjectType = CommandTypeBeginCanvas; //------------------------- width = obj.width; height = obj.height; clearColor = obj.backgroundColor; _canvasObject = exporter.GetObject(obj) as CanvasObject; }
public DrawMeshCommand(Camera cam, GameObject gameObject, Exporter exporter) { ObjectType = CommandTypeDrawMesh; //------------------------------------------------- var meshfilter = gameObject.GetComponent <MeshFilter>(); var mesh = meshfilter.sharedMesh; _meshObject = exporter.GetObject(mesh) as MeshObject; // //------------------ }
public ChangeShaderCommand(Camera cam, GameObject gameObject, Exporter exporter) { ObjectType = CommandTypeChangeShader; //------------------------------------------------- var viewMatrix = cam.worldToCameraMatrix; var projectMatrix = cam.projectionMatrix; matrixVP = projectMatrix * viewMatrix; matirxObjectToWorld = gameObject.transform.localToWorldMatrix; //------------------ var renderer = gameObject.GetComponent <Renderer>(); var shader = renderer.material.shader; _shaderObject = exporter.GetObject(shader) as ShaderObject; //------------------ renderer.GetPropertyBlock(block); var count = shader.GetPropertyCount(); for (var i = 0; i < count; i++) { var p = new ShaderParameter(shader.GetPropertyName(i), ShaderParameter.GetTypeFromPropertyType(shader.GetPropertyType(i))); switch (p.type) { case ShaderParameter.ParameterTypeColor: p.colorValue = block.GetColor(p.name); if (p.colorValue == new Color(0, 0, 0, 0)) { p.colorValue = renderer.material.GetColor(p.name); } break; case ShaderParameter.ParameterTypeFloat: p.floatValue = block.GetFloat(p.name); if (p.floatValue == 0.0f) { p.floatValue = renderer.material.GetFloat(p.name); } break; case ShaderParameter.ParameterTypeTexture2D: { var tex = renderer.material.GetTexture(p.name); if (tex == null) { tex = Texture2D.whiteTexture; } p.textureValue = exporter.GetObject(tex) as TextureObject; } break; case ShaderParameter.ParameterTypeFloat4: p.vectorValue = block.GetVector(p.name); if (p.vectorValue == new Vector4(0, 0, 0, 0)) { p.vectorValue = renderer.material.GetVector(p.name); } break; } _parameters.Add(p); if (p.type == ShaderParameter.ParameterTypeTexture2D) { var texcoord = new ShaderParameter(p.name + "_ST", ShaderParameter.ParameterTypeFloat4); //texcoord.vectorValue = renderer.material.GetVector(texcoord.name); texcoord.vectorValue = block.GetVector(texcoord.name); if (texcoord.vectorValue == new Vector4(0, 0, 0, 0)) { texcoord.vectorValue = renderer.material.GetVector(texcoord.name); } _parameters.Add(texcoord); } } //------------------------------------------------------ }
public TextFxSlotCommand(Camera cam, GameObject gameObject, Exporter exporter) { ObjectType = CommandTypeTextFxSlot; //---------------------------------- var textobj = gameObject.GetComponent <TextFx>(); id = textobj.soltID; size = textobj.size; switch (textobj.align) { case TextAlignment.Left: textAlignment = AlignmentLeft; break; case TextAlignment.Center: textAlignment = AlignmentCenter; break; case TextAlignment.Right: textAlignment = AlignmentRight; break; } var viewMatrix = cam.worldToCameraMatrix; var projectMatrix = cam.projectionMatrix; matrixVP = projectMatrix * viewMatrix; matirxObjectToWorld = gameObject.transform.localToWorldMatrix; //----------time----------- starttime = textobj.startTime; duration = textobj.effectDuration; overlapPercent = textobj.interval; var clip = exporter.GetObject(textobj.clip) as AnimationClipObject; if (clip != null) { animationClips.Add(clip); } switch (textobj.animationType) { case TextAnimationType.Sequence: textAnimationType = TextAnimationTypeSequence; break; case TextAnimationType.Randomize: textAnimationType = TextAnimationTypeRandomize; break; } if (textobj.material != null) { var shader = exporter.GetObject(textobj.material.shader) as ShaderObject; if (shader != null) { shaderID = shader.ObjectID; } } else { Debug.LogError("material of text is nuall:" + textobj.gameObject.name); } }