本文整理汇总了C#中EffectNode类的典型用法代码示例。如果您正苦于以下问题:C# EffectNode类的具体用法?C# EffectNode怎么用?C# EffectNode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
EffectNode类属于命名空间,在下文中一共展示了EffectNode类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: AttractionForceAffector
public AttractionForceAffector(float magnitude, Vector3 pos, EffectNode node)
: base(node)
{
Magnitude = magnitude;
Position = pos;
UseCurve = false;
}
开发者ID:wskidmore,项目名称:mdc,代码行数:7,代码来源:Affector.cs
示例2: TimedSequenceEditorEffectEditor
public TimedSequenceEditorEffectEditor(EffectNode effectNode)
{
InitializeComponent();
_effectNode = effectNode;
IEnumerable<IEffectEditorControl> controls = ApplicationServices.GetEffectEditorControls(_effectNode.Effect.Descriptor.TypeId);
if (controls == null) {
Label l = new Label();
l.Text = "Can't find any effect editors that can edit this effect!";
l.Anchor = AnchorStyles.None;
tableLayoutPanelEffectEditors.Controls.Add(l);
tableLayoutPanelEffectEditors.SetColumnSpan(l, 2);
return;
}
_controls = new List<IEffectEditorControl>();
object[] values = _effectNode.Effect.ParameterValues;
// if there were multiple controls returned, or there was only a single control needed (ie. the efffect parameters had only
// a single item) then add controls inside a ParameterEditor wrapper using editors for that type, and label them appropriately.
// if it was only a single control returned, it must have matched the entire effect (by GUID or signature), so just dump the
// control it, and let it deal with everything it needs to.
if (controls.Count() > 1 || (controls.Count() == 1 && (_effectNode.Effect.Descriptor as IEffectModuleDescriptor).Parameters.Count == 1)) {
_usedSingleControl = false;
int i = 0;
foreach (IEffectEditorControl ec in controls) {
// as it's a single control for a single parameter, it *should* take the corresponding indexed parameter from the effect.
// so pull that individual parameter out, and give it to the control as a single item. This is a bit of an assumption
// and seems...... prone to breaking. TODO: review.
ec.EffectParameterValues = values[i].AsEnumerable().ToArray();
ec.TargetEffect = effectNode.Effect;
Label l = new Label();
l.Width = 1;
l.Height = 1;
l.Text = _effectNode.Effect.Parameters[i].Name + ":";
l.AutoSize = true;
l.Anchor = AnchorStyles.None;
tableLayoutPanelEffectEditors.Controls.Add(l);
(ec as Control).Anchor = AnchorStyles.None;
tableLayoutPanelEffectEditors.Controls.Add(ec as Control);
// save the editor control into a list we can use as a reference later on, to pull the data back out of them in the right order.
_controls.Add(ec);
i++;
}
} else {
_usedSingleControl = true;
IEffectEditorControl control = controls.First();
control.EffectParameterValues = _effectNode.Effect.ParameterValues;
control.TargetEffect = effectNode.Effect;
tableLayoutPanelEffectEditors.Controls.Add(control as Control);
tableLayoutPanelEffectEditors.SetColumnSpan((control as Control), 2);
_controls.Add(control);
}
}
开发者ID:kjburns31,项目名称:vixen-modules,代码行数:60,代码来源:TimedSequenceEditorEffectEditor.cs
示例3: TimedSequenceElement
public TimedSequenceElement(EffectNode effectNode)
: base()
{
StartTime = effectNode.StartTime;
Duration = effectNode.TimeSpan;
EffectNode = effectNode;
}
开发者ID:stewmc,项目名称:vixen,代码行数:7,代码来源:TimedSequenceElement.cs
示例4: TimedSequenceElement
public TimedSequenceElement(EffectNode effectNode)
: base()
{
StartTime = effectNode.StartTime;
Duration = effectNode.TimeSpan;
EffectNode = effectNode;
//BorderColor = Color.Black;
//BackColor = Color.FromArgb(0, 0, 0, 0);
}
开发者ID:Jchuchla,项目名称:vixen,代码行数:9,代码来源:TimedSequenceElement.cs
示例5: _DataListener
protected override bool _DataListener(IEffectNode effectNode)
{
//*** compensation delta, user-configurable
IEffectNode contextRelativeEffectNode = new EffectNode(effectNode.Effect,
effectNode.StartTime + TimingSource.Position);
Sequence.SequenceData.EffectData.AddData(contextRelativeEffectNode);
// We don't want any handlers beyond the executor to get live data.
return true;
}
开发者ID:Jchuchla,项目名称:vixen,代码行数:9,代码来源:ScriptExecutor.cs
示例6: GetEmitRotation
public Vector3 GetEmitRotation(EffectNode node)
{
Vector3 ret = Vector3.zero;
//Set Direction:
//NOTICE:SPHERE AND CIRCLE Emitter, default dir is spread from the center. not influenced with the IsRandomDir and VelocityAxis.
if (Layer.EmitType == (int)EMITTYPE.SPHERE)
{
if (!Layer.SyncClient)
{
ret = node.Position - (Layer.ClientTransform.position + Layer.EmitPoint);
}
else
{
ret = node.Position - Layer.EmitPoint;
}
}
else if (Layer.EmitType == (int)EMITTYPE.CIRCLE)
{
Vector3 dir;
if (!Layer.SyncClient)
dir = node.Position - (Layer.ClientTransform.position + Layer.EmitPoint);
else
dir = node.Position - Layer.EmitPoint;
Vector3 target = Vector3.RotateTowards(dir, Layer.CircleDir, (90 - Layer.AngleAroundAxis) * Mathf.Deg2Rad, 1);
Quaternion rot = Quaternion.FromToRotation(dir, target);
ret = rot * dir;
}
else if (Layer.IsRandomDir)
{
//first, rotate y around z 30 degrees
Quaternion rotY = Quaternion.Euler(0, 0, Layer.AngleAroundAxis);
//second, rotate around y 360 random dir;
Quaternion rotAround = Quaternion.Euler(0, Random.Range(0, 360), 0);
//last, rotate the dir to OriVelocityAxis
Quaternion rotTo = Quaternion.FromToRotation(Vector3.up, Layer.OriVelocityAxis);
ret = rotTo * rotAround * rotY * Vector3.up;
}
else
{
ret = Layer.OriVelocityAxis;
}
return ret;
}
开发者ID:wskidmore,项目名称:mdc,代码行数:43,代码来源:Emitter.cs
示例7: InitAffectors
protected List<Affector> InitAffectors(EffectNode node)
{
List<Affector> AffectorList = new List<Affector>();
if (UVAffectorEnable)
{
UVAnimation uvAnim = new UVAnimation();
if (UVType == 1)
{
float perWidth = OriUVDimensions.x / Cols;
float perHeight = Mathf.Abs(OriUVDimensions.y / Rows);
Vector2 cellSize = new Vector2(perWidth, perHeight);
uvAnim.BuildUVAnim(OriTopLeftUV, cellSize, Cols, Rows, Cols * Rows);
}
UVDimension = uvAnim.UVDimensions[0];
UVTopLeft = uvAnim.frames[0];
if (uvAnim.frames.Length != 1)
{
uvAnim.loopCycles = LoopCircles;
Affector aft = new UVAffector(uvAnim, UVTime, node, RandomStartFrame);
AffectorList.Add(aft);
}
}
else
{
UVDimension = OriUVDimensions;
UVTopLeft = OriTopLeftUV;
}
if (RotAffectorEnable && RotateType != RSTYPE.NONE)
{
Affector aft;
if (RotateType == RSTYPE.CURVE)
aft = new RotateAffector(RotateCurve, node);
else
aft = new RotateAffector(DeltaRot, node);
AffectorList.Add(aft);
}
if (ScaleAffectorEnable && ScaleType != RSTYPE.NONE)
{
Affector aft;
if (UseSameScaleCurve)
ScaleYCurve = ScaleXCurve;
if (ScaleType == RSTYPE.CURVE)
aft = new ScaleAffector(ScaleXCurve, ScaleYCurve, node);
else
aft = new ScaleAffector(DeltaScaleX, DeltaScaleY, node);
AffectorList.Add(aft);
}
if (ColorAffectorEnable /*&& ColorAffectType != 0*/)
{
ColorAffector aft = new ColorAffector(this, node);
AffectorList.Add(aft);
}
if (JetAffectorEnable)
{
Affector aft = new JetAffector(JetMag,JetMagType,JetCurve,node);
AffectorList.Add(aft);
}
if (VortexAffectorEnable)
{
Affector aft;
aft = new VortexAffector(VortexObj, VortexMagType, VortexMag, VortexCurve, VortexDirection, VortexInheritRotation, node);
AffectorList.Add(aft);
}
if (UVRotAffectorEnable)
{
Affector aft;
float xscroll = UVRotXSpeed;
float yscroll = UVRotYSpeed;
if (RandomUVRotateSpeed)
{
xscroll = Random.Range(UVRotXSpeed,UVRotXSpeedMax);
yscroll = Random.Range(UVRotYSpeed,UVRotYSpeedMax);
}
aft = new UVRotAffector(xscroll, yscroll, node);
AffectorList.Add(aft);
}
if (GravityAffectorEnable)
{
Affector aft;
aft = new GravityAffector(GravityObject, GravityAftType, GravityMagType, IsGravityAccelerate,GravityDirection, GravityMag, GravityCurve, node);
AffectorList.Add(aft);
if (GravityAftType == GAFTTYPE.Spherical && GravityObject == null)
{
Debug.LogWarning("Gravity Object is missing, automatically set to effect layer self:" + gameObject.name);
GravityObject = transform;
}
}
if (AirAffectorEnable)
{
//.........这里部分代码省略.........
开发者ID:sylafrs,项目名称:rugby,代码行数:101,代码来源:EffectLayer.cs
示例8: Init
protected void Init()
{
//added 2012.6.24
InitCollision();
Owner = transform.parent.gameObject.GetComponent<XffectComponent>();
if (Owner == null)
Debug.LogError("you must set EffectLayer to be XffectComponent's child.");
//fixed 2012.6.2. ignoring the red errors.
if (ClientTransform == null)
{
Debug.LogWarning("effect layer: "+ gameObject.name + " haven't assign a client transform, automaticly set to itself.");
ClientTransform = transform;
}
AvailableENodes = new EffectNode[MaxENodes];
ActiveENodes = new EffectNode[MaxENodes];
for (int i = 0; i < MaxENodes; i++)
{
EffectNode n = new EffectNode(i, ClientTransform, SyncClient, this);
List<Affector> afts = InitAffectors(n);
n.SetAffectorList(afts);
if (RenderType == 0)
n.SetType(SpriteWidth, SpriteHeight, (STYPE)SpriteType, (ORIPOINT)OriPoint, SpriteUVStretch, 60f);
else if (RenderType == 1)
{
float rwidth = RibbonWidth;
float rlen = RibbonLen;
if (UseRandomRibbon)
{
rwidth = Random.Range(RibbonWidthMin, RibbonWidthMax);
rlen = Random.Range(RibbonLenMin, RibbonLenMax);
}
n.SetType(FaceToObject, FaceObject, rwidth, MaxRibbonElements, rlen, ClientTransform.position + EmitPoint, StretchType, 60f);
}
else if (RenderType == 2)
{
n.SetType(ConeSize,ConeSegment,ConeAngle, transform.rotation * OriVelocityAxis,0,60f,UseConeAngleChange,ConeDeltaAngle);
}
else if (RenderType == 3)
{
Vector3 dir = Vector3.zero;
if (OriVelocityAxis == Vector3.zero)
{
OriVelocityAxis = Vector3.up;
}
dir = transform.rotation * OriVelocityAxis;
n.SetType(CMesh,dir,60f);
}
AvailableENodes[i] = n;
}
AvailableNodeCount = MaxENodes;
emitter = new Emitter(this);
}
开发者ID:sylafrs,项目名称:rugby,代码行数:57,代码来源:EffectLayer.cs
示例9: RemoveActiveNode
public void RemoveActiveNode(EffectNode node)
{
if (AvailableNodeCount == MaxENodes)
Debug.LogError("out index!");
if (ActiveENodes[node.Index] == null) //already removed
return;
ActiveENodes[node.Index] = null;
AvailableENodes[node.Index] = node;
AvailableNodeCount++;
}
开发者ID:sylafrs,项目名称:rugby,代码行数:10,代码来源:EffectLayer.cs
示例10: AddActiveNode
public void AddActiveNode(EffectNode node)
{
if (AvailableNodeCount == 0)
Debug.LogError("out index!");
if (AvailableENodes[node.Index] == null) //already added
return;
ActiveENodes[node.Index] = node;
AvailableENodes[node.Index] = null;
AvailableNodeCount--;
}
开发者ID:sylafrs,项目名称:rugby,代码行数:10,代码来源:EffectLayer.cs
示例11: RotateAffector
public RotateAffector(float delta, EffectNode node)
: base(node)
{
Type = RSTYPE.SIMPLE;
Delta = delta;
}
开发者ID:wskidmore,项目名称:mdc,代码行数:6,代码来源:Affector.cs
示例12: setupNewElementFromNode
private TimedSequenceElement setupNewElementFromNode(EffectNode node)
{
TimedSequenceElement element = new TimedSequenceElement(node);
element.ContentChanged += ElementContentChangedHandler;
element.TimeChanged += ElementTimeChangedHandler;
return element;
}
开发者ID:komby,项目名称:vixen,代码行数:7,代码来源:TimedSequenceEditorForm.cs
示例13: addElementForEffectNodeTPL
/// <summary>
/// Populates the TimelineControl grid with a new TimedSequenceElement for the given EffectNode.
/// Will add a single TimedSequenceElement to in each row that each targeted element of
/// the EffectNode references. It will also add callbacks to event handlers for the element.
/// </summary>
/// <param name="node">The EffectNode to make element(s) in the grid for.</param>
private TimedSequenceElement addElementForEffectNodeTPL(EffectNode node)
{
TimedSequenceElement element = setupNewElementFromNode(node);
// for the effect, make a single element and add it to every row that represents its target elements
node.Effect.TargetNodes.AsParallel().WithCancellation(cancellationTokenSource.Token)
.ForAll(target =>
{
if (_elementNodeToRows.ContainsKey(target))
{
// Add the element to each row that represents the element this command is in.
foreach (Row row in _elementNodeToRows[target])
{
if (!_effectNodeToElement.ContainsKey(node))
{
_effectNodeToElement[node] = element;
}
row.AddElement(element);
}
}
else
{
// we don't have a row for the element this effect is referencing; most likely, the row has
// been deleted, or we're opening someone else's sequence, etc. Big fat TODO: here for that, then.
// dunno what we want to do: prompt to add new elements for them? map them to others? etc.
const string message = "No Timeline.Row is associated with a target ElementNode for this EffectNode. It now exists in the sequence, but not in the GUI.";
Logging.Error(message);
MessageBox.Show(message);
}
});
TimelineControl.grid.RenderElement(element);
return element;
}
开发者ID:komby,项目名称:vixen,代码行数:39,代码来源:TimedSequenceEditorForm.cs
示例14: RemoveEffectNodeAndElement
public void RemoveEffectNodeAndElement(EffectNode node)
{
//Debug.WriteLine("{0} RemoveEffectNodeAndElement(InstanceId={1})", (int)DateTime.Now.TimeOfDay.TotalMilliseconds, node.Effect.InstanceId);
// Lookup this effect node's Timeline Element
TimedSequenceElement tse = (TimedSequenceElement)_effectNodeToElement[node];
foreach (Row row in TimelineControl) // Remove the element from all rows
row.RemoveElement(tse);
// TODO: Unnecessary?
tse.ContentChanged -= ElementContentChangedHandler; // Unregister event handlers
tse.TimeChanged -= ElementTimeChangedHandler;
_effectNodeToElement.Remove(node); // Remove the effect node from the map
_sequence.RemoveData(node); // Remove the effect node from sequence
}
开发者ID:komby,项目名称:vixen,代码行数:17,代码来源:TimedSequenceEditorForm.cs
示例15: LinearForceAffector
public LinearForceAffector(Vector3 force, EffectNode node)
: base(node)
{
Force = force;
}
开发者ID:wskidmore,项目名称:mdc,代码行数:5,代码来源:Affector.cs
示例16: VortexAffector
public VortexAffector(float mag, Vector3 dir, EffectNode node)
: base(node)
{
Magnitude = mag;
Direction = dir;
UseCurve = false;
}
开发者ID:wskidmore,项目名称:mdc,代码行数:7,代码来源:Affector.cs
示例17: UVAffector
public UVAffector(UVAnimation frame, float time, EffectNode node)
: base(node)
{
Frames = frame;
UVTime = time;
}
开发者ID:wskidmore,项目名称:mdc,代码行数:6,代码来源:Affector.cs
示例18: ScaleAffector
public ScaleAffector(float x, float y, EffectNode node)
: base(node)
{
Type = RSTYPE.SIMPLE;
DeltaX = x;
DeltaY = y;
}
开发者ID:wskidmore,项目名称:mdc,代码行数:7,代码来源:Affector.cs
示例19: JetAffector
public JetAffector(float min, float max, EffectNode node)
: base(node)
{
MinAcceleration = min;
MaxAcceleration = max;
}
开发者ID:wskidmore,项目名称:mdc,代码行数:6,代码来源:Affector.cs
示例20: SetEmitPosition
public void SetEmitPosition(EffectNode node)
{
Vector3 retPos = Vector3.zero;
if (Layer.EmitType == (int)EMITTYPE.BOX)
{
Vector3 center = Layer.EmitPoint;
float x = Random.Range(center.x - Layer.BoxSize.x / 2, center.x + Layer.BoxSize.x / 2);
float y = Random.Range(center.y - Layer.BoxSize.y / 2, center.y + Layer.BoxSize.y / 2);
float z = Random.Range(center.z - Layer.BoxSize.z / 2, center.z + Layer.BoxSize.z / 2);
retPos.x = x; retPos.y = y; retPos.z = z;
if (!Layer.SyncClient)
retPos = Layer.ClientTransform.position + retPos;
}
else if (Layer.EmitType == (int)EMITTYPE.POINT)
{
retPos = Layer.EmitPoint;
if (!Layer.SyncClient)
{
retPos = Layer.ClientTransform.position + Layer.EmitPoint;
}
}
else if (Layer.EmitType == (int)EMITTYPE.SPHERE)
{
retPos = Layer.EmitPoint;
if (!Layer.SyncClient)
{//ͬ���Ļ���NodeUpdate������λ��
retPos = Layer.ClientTransform.position + Layer.EmitPoint;
}
Vector3 r = Vector3.up * Layer.Radius;
Quaternion rot = Quaternion.Euler(Random.Range(0, 360), Random.Range(0, 360), Random.Range(0, 360));
retPos = rot * r + retPos;
}
//NOTICE LINE Direction currently is based on ClientTransform's forward
else if (Layer.EmitType == (int)EMITTYPE.LINE)
{
Vector3 left = Layer.EmitPoint + Layer.ClientTransform.localRotation * Vector3.forward * Layer.LineLengthLeft;
Vector3 right = Layer.EmitPoint + Layer.ClientTransform.localRotation * Vector3.forward * Layer.LineLengthRight;
Vector3 dir = right - left;
float p = (float)(node.Index + 1) / Layer.MaxENodes;
float length = dir.magnitude * p;
retPos = left + dir.normalized * length;
if (!Layer.SyncClient)
retPos = Layer.ClientTransform.TransformPoint(retPos);
}
else if (Layer.EmitType == (int)EMITTYPE.CIRCLE)
{
float p = (float)(node.Index + 1) / Layer.MaxENodes;
float rangle;
rangle = 360 * p;
Quaternion rotY = Quaternion.Euler(0, rangle, 0);
Vector3 v = rotY * (Vector3.right * Layer.Radius);
Quaternion rotTo = Quaternion.FromToRotation(Vector3.up, Layer.CircleDir);
retPos = rotTo * v;
if (!Layer.SyncClient)
retPos = Layer.ClientTransform.position + retPos + Layer.EmitPoint;
else
retPos = retPos + Layer.EmitPoint;
}
node.SetLocalPosition(retPos);
}
开发者ID:wskidmore,项目名称:mdc,代码行数:60,代码来源:Emitter.cs
注:本文中的EffectNode类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论