Infinity









How do I use Infinity
Below are practical examples compiled from projects for learning and reference purposes

Featured Snippets


File name: PhotonTransformViewPositionModel.cs Copy
35     public AnimationCurve InterpolateSpeedCurve = new AnimationCurve( new Keyframe[] {
36                                                                               new Keyframe( -1, 0, 0, Mathf.Infinity ),
37                                                                               new Keyframe( 0, 1, 0, 0 ),
38                                                                               new Keyframe( 1, 1, 0, 1 ),
39                                                                               new Keyframe( 4, 4, 1, 0 ) } );
File name: PhotonStreamQueue.cs Copy
74     public void Reset()
75     {
76         m_SampleCount = 0;
77         m_ObjectsPerSample = -1;
78
79         m_LastSampleTime = -Mathf.Infinity;
80         m_LastFrameCount = -1;
81
82         m_Objects.Clear();
83     }
File name: Finder.cs Copy
8  public static GameObject RayHitFromScreen(Vector3 hitPosition) {
9   Ray ray = Converter.ScreenPointToRay(hitPosition);
10   RaycastHit hit;
11   if (Physics.Raycast(ray, out hit, float.PositiveInfinity, GameManager.Instance.CLickableMask)) {
12      return hit.transform.gameObject;
13   }
14
15   return null;
16  }
File name: Finder.cs Copy
26  public static IClickable IClickableRayHitFromScreen(Vector3 hitPosition) {
27   Ray ray = Converter.ScreenPointToRay(hitPosition);
28   RaycastHit hit;
29   if (Physics.Raycast(ray, out hit, float.PositiveInfinity, GameManager.Instance.CLickableMask)) {
30    return hit.transform.gameObject.GetComponent(typeof(IClickable)) as IClickable;
31   }
32
33   return null;
34  }
File name: ScrollSnap.cs Copy
111  public void OnDrag(PointerEventData data) {
112   float dx = data.delta.x;
113   float dt = Time.deltaTime * 1000f;
114   float acceleration = Mathf.Abs(dx / dt);
115   if(acceleration > triggerAcceleration && acceleration != Mathf.Infinity) {
116    indexChangeTriggered = true;
117   }
118  }
File name: AnimationCurveBuilder.cs Copy
110         public void SetCurveActiveOnly(Transform root, Transform current, float time)
111         {
112             var path = AnimationUtility.CalculateTransformPath(current, root);
113             var obj = GetOrCreateAnimationCurves(path);
114
115             //IsActive curve
116             float val = (current.gameObject.activeInHierarchy) ? 1.0f : 0.0f;
117             obj.Curves[(int)AnimationCurveIndex.IsActive].AddKey(new Keyframe(time, val, float.PositiveInfinity, float.PositiveInfinity) { tangentMode = 0 });
118         }
File name: AnimationCurveBuilder.cs Copy
128         private void UpdateTransformCurve(ObjectCurves obj, Transform current, float time, TimelineKey lastTimelineKey, int zIndex = -1)
129         {
130             float val;
131             //IsActive curve
132             val = (current.gameObject.activeSelf) ? 1.0f : 0.0f;
133             obj.Curves[(int)AnimationCurveIndex.IsActive].AddKey(new Keyframe(time, val, float.PositiveInfinity, float.PositiveInfinity) { tangentMode = 0 });
134
135             //Position curves
136             obj.Curves[(int)AnimationCurveIndex.LocalPositionX].AddKey(new Keyframe(time, current.localPosition.x) { tangentMode = 0 }, lastTimelineKey);
137             obj.Curves[(int)AnimationCurveIndex.LocalPositionY].AddKey(new Keyframe(time, current.localPosition.y) { tangentMode = 0 }, lastTimelineKey);
138             obj.Curves[(int)AnimationCurveIndex.LocalPositionZ].AddKey(new Keyframe(time, current.localPosition.z, float.PositiveInfinity, float.PositiveInfinity)); //Z value always has instant transition
139
140             //Rotation curves
141             var quat = Quaternion.Euler(current.localEulerAngles);
142             obj.Curves[(int)AnimationCurveIndex.LocalRotationX].AddKey(new Keyframe(time, quat.x) { tangentMode = 0 }, lastTimelineKey);
143             obj.Curves[(int)AnimationCurveIndex.LocalRotationY].AddKey(new Keyframe(time, quat.y) { tangentMode = 0 }, lastTimelineKey);
144             obj.Curves[(int)AnimationCurveIndex.LocalRotationZ].AddKey(new Keyframe(time, quat.z) { tangentMode = 0 }, lastTimelineKey);
145             obj.Curves[(int)AnimationCurveIndex.LocalRotationW].AddKey(new Keyframe(time, quat.w) { tangentMode = 0 }, lastTimelineKey);
146
147             //Scale curves
148             obj.Curves[(int)AnimationCurveIndex.LocalScaleX].AddKey(new Keyframe(time, current.localScale.x) { tangentMode = 0 }, lastTimelineKey);
149             obj.Curves[(int)AnimationCurveIndex.LocalScaleY].AddKey(new Keyframe(time, current.localScale.y) { tangentMode = 0 }, lastTimelineKey);
150             obj.Curves[(int)AnimationCurveIndex.LocalScaleZ].AddKey(new Keyframe(time, current.localScale.z) { tangentMode = 0 }, lastTimelineKey);
151
152             //Sprite Curves
153             var spriteTimelineKey = lastTimelineKey as SpriteTimelineKey;
154             if (spriteTimelineKey != null)
155             {
156                 obj.IsSpriteKey = true;
157                 obj.Curves[(int)AnimationCurveIndex.ColorR].AddKey(new Keyframe(time, spriteTimelineKey.Tint.r) { tangentMode = 0 }, lastTimelineKey);
158                 obj.Curves[(int)AnimationCurveIndex.ColorG].AddKey(new Keyframe(time, spriteTimelineKey.Tint.g) { tangentMode = 0 }, lastTimelineKey);
159                 obj.Curves[(int)AnimationCurveIndex.ColorB].AddKey(new Keyframe(time, spriteTimelineKey.Tint.b) { tangentMode = 0 }, lastTimelineKey);
160                 obj.Curves[(int)AnimationCurveIndex.ColorA].AddKey(new Keyframe(time, spriteTimelineKey.Tint.a) { tangentMode = 0 }, lastTimelineKey);
161                 obj.Curves[(int)AnimationCurveIndex.ZIndex].AddKey(new Keyframe(time, zIndex, float.PositiveInfinity, float.PositiveInfinity));
162             }
163         }
File name: AnimationCurveUtils.cs Copy
36         public static void AddKey(this AnimationCurve curve, Keyframe keyframe, TimelineKey lastKey)
37         {
38             var keys = curve.keys;
39
40             //Early out - if this is the first key on this curve just add it
41             if (keys.Length == 0)
42             {
43                 curve.AddKey(keyframe);
44                 return;
45             }
46
47             if (lastKey == null)
48             {
49                 Debug.Log(string.Format("ERROR: NULL lastkey passed to AddKey when curve contains {0} keys", keys.Length));
50                 return;
51             }
52
53             //Get the last keyframe
54             Keyframe lastKeyframe = keys[keys.Length - 1];
55
56             //If no TimelineKey is supplied, default to Linear curve
57             CurveType curveType = lastKey.CurveType;
58
59             switch (curveType)
60             {
61                 case CurveType.Instant:
62                     lastKeyframe.outTangent = 0;
63                     curve.MoveKey(keys.Length - 1, lastKeyframe);
64
65                     keyframe.inTangent = float.PositiveInfinity;
66                     curve.AddKey(keyframe);
67                     break;
68
69                 case CurveType.Linear:
70                     var val = (keyframe.value - lastKeyframe.value) / (keyframe.time - lastKeyframe.time);
71                     lastKeyframe.outTangent = val;
72                     curve.MoveKey(keys.Length - 1, lastKeyframe);
73
74                     keyframe.inTangent = val;
75                     curve.AddKey(keyframe);
76                     break;
77
78                 case CurveType.Quadratic:
79                     {
80                         //Increase to cubic
81                         var c1 = (2 * lastKey.CurveParams[0]) / 3;
82                         var c2 = 1 - (2 * lastKey.CurveParams[0] + 1) / 3;
83
84                         //Convert [0,1] into unity-acceptable tangents
85                         c1 *= 3 * (keyframe.value - lastKeyframe.value) / (keyframe.time - lastKeyframe.time);
86                         c2 *= 3 * (keyframe.value - lastKeyframe.value) / (keyframe.time - lastKeyframe.time);
87
88                         //Set the out tangent for the previous frame and update
89                         lastKeyframe.outTangent = c1;
90                         curve.MoveKey(keys.Length - 1, lastKeyframe);
91
92                         //Set the in tangent for the current frame and add
93                         keyframe.inTangent = c2;
94                         curve.AddKey(keyframe);
95                         break;
96                     }
97
98                 case CurveType.Cubic:
99                     {
100                         //Get curve parameters
101                         var c1 = lastKey.CurveParams[0];
102                         var c2 = 1 - lastKey.CurveParams[1];
103
104                         //Convert [0,1] into unity-acceptable tangents
105                         c1 *= 3 * (keyframe.value - lastKeyframe.value) / (keyframe.time - lastKeyframe.time);
106                         c2 *= 3 * (keyframe.value - lastKeyframe.value) / (keyframe.time - lastKeyframe.time);
107
108                         //Set the out tangent for the previous frame and update
109                         lastKeyframe.outTangent = c1;
110                         curve.MoveKey(keys.Length - 1, lastKeyframe);
111
112                         //Set the in tangent for the current frame and add
113                         keyframe.inTangent = c2;
114                         curve.AddKey(keyframe);
115                         break;
116                     }
117
118                 default:
119                     Debug.LogWarning("CurveType " + curveType.ToString() + " not yet supported!");
120                     break;
121             }
122         }

Infinity 134 lượt xem

Gõ tìm kiếm nhanh...