Skip to content

Commit 3717dab

Browse files
committed
add components
1 parent 0b5c018 commit 3717dab

File tree

2 files changed

+201
-0
lines changed

2 files changed

+201
-0
lines changed

Editor/Util/AvatarMenuCreatorForMA.Editor.Util.asmdef

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@
2121
"name": "com.vrchat.base",
2222
"expression": "[3.7.0,4)",
2323
"define": "HAS_VRC_CONSTRAINT"
24+
},
25+
{
26+
"name": "com.vrchat.base",
27+
"expression": "[3.5.2,4)",
28+
"define": "HAS_VRC_HEADCHOP"
2429
}
2530
],
2631
"noEngineReferences": false

Editor/Util/TypeMemberUtil.cs

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using VRC.SDK3.Dynamics.PhysBone.Components;
66
using UnityEngine;
77
using UnityEngine.Animations;
8+
using VRC.SDK3.Avatars.Components;
89
#if HAS_VRC_CONSTRAINT
910
using VRC.SDK3.Dynamics.Constraint.Components;
1011
#endif
@@ -94,6 +95,201 @@ public MemberInfoContainer(MemberInfo memberInfo)
9495
{ typeof(VRCRotationConstraint), VRCConstraintCommonMembers(typeof(VRCRotationConstraint)) },
9596
{ typeof(VRCScaleConstraint), VRCConstraintCommonMembers(typeof(VRCScaleConstraint)) },
9697
#endif
98+
{
99+
typeof(AudioSource),
100+
new MemberInfoContainer[]
101+
{
102+
new MemberInfoContainer(typeof(AudioSource).GetProperty(nameof(AudioSource.mute))) { Field = "Mute" },
103+
new MemberInfoContainer(typeof(AudioSource).GetProperty(nameof(AudioSource.bypassEffects))) { Field = "BypassEffects" },
104+
new MemberInfoContainer(typeof(AudioSource).GetProperty(nameof(AudioSource.bypassListenerEffects))) { Field = "BypassListenerEffects" },
105+
new MemberInfoContainer(typeof(AudioSource).GetProperty(nameof(AudioSource.bypassReverbZones))) { Field = "BypassReverbZones" },
106+
new MemberInfoContainer(typeof(AudioSource).GetProperty(nameof(AudioSource.playOnAwake))) { Field = "m_PlayOnAwake" },
107+
new MemberInfoContainer(typeof(AudioSource).GetProperty(nameof(AudioSource.loop))) { Field = "Loop" },
108+
new MemberInfoContainer(typeof(AudioSource).GetProperty(nameof(AudioSource.priority))) { Field = "Priority" },
109+
new MemberInfoContainer(typeof(AudioSource).GetProperty(nameof(AudioSource.volume))) { Field = "m_Volume" },
110+
new MemberInfoContainer(typeof(AudioSource).GetProperty(nameof(AudioSource.pitch))) { Field = "m_Pitch" },
111+
new MemberInfoContainer(typeof(AudioSource).GetProperty(nameof(AudioSource.panStereo))) { Field = "Pan2D", Label = "Stereo Pan" },
112+
new MemberInfoContainer(typeof(AudioSource).GetProperty(nameof(AudioSource.dopplerLevel))) { Field = "DopplerLevel" },
113+
new MemberInfoContainer(typeof(AudioSource).GetProperty(nameof(AudioSource.minDistance))) { Field = "MinDistance" },
114+
new MemberInfoContainer(typeof(AudioSource).GetProperty(nameof(AudioSource.maxDistance))) { Field = "MaxDistance" },
115+
}
116+
},
117+
{
118+
typeof(VRCSpatialAudioSource),
119+
new MemberInfoContainer[]
120+
{
121+
new MemberInfoContainer(typeof(VRCSpatialAudioSource).GetField(nameof(VRCSpatialAudioSource.Gain))),
122+
new MemberInfoContainer(typeof(VRCSpatialAudioSource).GetField(nameof(VRCSpatialAudioSource.Far))),
123+
new MemberInfoContainer(typeof(VRCSpatialAudioSource).GetField(nameof(VRCSpatialAudioSource.Near))),
124+
new MemberInfoContainer(typeof(VRCSpatialAudioSource).GetField(nameof(VRCSpatialAudioSource.VolumetricRadius))),
125+
new MemberInfoContainer(typeof(VRCSpatialAudioSource).GetField(nameof(VRCSpatialAudioSource.EnableSpatialization))),
126+
new MemberInfoContainer(typeof(VRCSpatialAudioSource).GetField(nameof(VRCSpatialAudioSource.UseAudioSourceVolumeCurve))),
127+
}
128+
},
129+
{
130+
typeof(MeshRenderer),
131+
new MemberInfoContainer[]{ new MemberInfoContainer(typeof(MeshRenderer).GetProperty(nameof(MeshRenderer.receiveShadows))) { Field = "m_ReceiveShadows" } }
132+
},
133+
{
134+
typeof(SkinnedMeshRenderer),
135+
new MemberInfoContainer[]
136+
{
137+
new MemberInfoContainer(typeof(SkinnedMeshRenderer).GetProperty(nameof(SkinnedMeshRenderer.receiveShadows))) { Field = "m_ReceiveShadows" },
138+
new MemberInfoContainer(typeof(SkinnedMeshRenderer).GetProperty(nameof(SkinnedMeshRenderer.skinnedMotionVectors))) { Field = "m_SkinnedMotionVectors" },
139+
new MemberInfoContainer(typeof(SkinnedMeshRenderer).GetProperty(nameof(SkinnedMeshRenderer.updateWhenOffscreen))) { Field = "m_UpdateWhenOffscreen" },
140+
// new MemberInfoContainer(typeof(Bounds).GetProperty(nameof(Bounds.center))) { Field = "m_AABB.m_Center", Label = "Bounds.Center" },
141+
// new MemberInfoContainer(typeof(Bounds).GetProperty(nameof(Bounds.extents))) { Field = "m_AABB.m_Extent", Label = "Bounds.Extents" },
142+
}
143+
},
144+
{
145+
typeof(Rigidbody),
146+
new MemberInfoContainer[]
147+
{
148+
new MemberInfoContainer(typeof(Rigidbody).GetProperty(nameof(Rigidbody.mass))) { Field = "m_Mass" },
149+
new MemberInfoContainer(typeof(Rigidbody).GetProperty(nameof(Rigidbody.drag))) { Field = "m_Drag" },
150+
new MemberInfoContainer(typeof(Rigidbody).GetProperty(nameof(Rigidbody.angularDrag))) { Field = "m_AngularDrag" },
151+
new MemberInfoContainer(typeof(Rigidbody).GetProperty(nameof(Rigidbody.inertiaTensor))) { Field = "m_InertiaTensor" },
152+
new MemberInfoContainer(typeof(Rigidbody).GetProperty(nameof(Rigidbody.centerOfMass))) { Field = "m_CenterOfMass" },
153+
new MemberInfoContainer(typeof(Rigidbody).GetProperty(nameof(Rigidbody.isKinematic))) { Field = "m_IsKinematic" },
154+
new MemberInfoContainer(typeof(Rigidbody).GetProperty(nameof(Rigidbody.useGravity))) { Field = "m_UseGravity" },
155+
}
156+
},
157+
{
158+
typeof(BoxCollider),
159+
new MemberInfoContainer[]
160+
{
161+
new MemberInfoContainer(typeof(BoxCollider).GetProperty(nameof(BoxCollider.isTrigger))) { Field = "m_IsTrigger" },
162+
new MemberInfoContainer(typeof(BoxCollider).GetProperty(nameof(BoxCollider.center))) { Field = "m_Center" },
163+
new MemberInfoContainer(typeof(BoxCollider).GetProperty(nameof(BoxCollider.size))) { Field = "m_Size" },
164+
}
165+
},
166+
{
167+
typeof(SphereCollider),
168+
new MemberInfoContainer[]
169+
{
170+
new MemberInfoContainer(typeof(SphereCollider).GetProperty(nameof(SphereCollider.isTrigger))) { Field = "m_IsTrigger" },
171+
new MemberInfoContainer(typeof(SphereCollider).GetProperty(nameof(SphereCollider.center))) { Field = "m_Center" },
172+
new MemberInfoContainer(typeof(SphereCollider).GetProperty(nameof(SphereCollider.radius))) { Field = "m_Radius" },
173+
}
174+
},
175+
{
176+
typeof(CapsuleCollider),
177+
new MemberInfoContainer[]
178+
{
179+
new MemberInfoContainer(typeof(CapsuleCollider).GetProperty(nameof(CapsuleCollider.isTrigger))) { Field = "m_IsTrigger" },
180+
new MemberInfoContainer(typeof(CapsuleCollider).GetProperty(nameof(CapsuleCollider.center))) { Field = "m_Center" },
181+
new MemberInfoContainer(typeof(CapsuleCollider).GetProperty(nameof(CapsuleCollider.radius))) { Field = "m_Radius" },
182+
new MemberInfoContainer(typeof(CapsuleCollider).GetProperty(nameof(CapsuleCollider.height))) { Field = "m_Height" },
183+
}
184+
},
185+
{
186+
typeof(MeshCollider),
187+
new MemberInfoContainer[]
188+
{
189+
new MemberInfoContainer(typeof(MeshCollider).GetProperty(nameof(MeshCollider.isTrigger))) { Field = "m_IsTrigger" },
190+
new MemberInfoContainer(typeof(MeshCollider).GetProperty(nameof(MeshCollider.convex))) { Field = "m_Convex" },
191+
}
192+
},
193+
{
194+
typeof(WheelCollider),
195+
new MemberInfoContainer[]
196+
{
197+
new MemberInfoContainer(typeof(WheelCollider).GetProperty(nameof(WheelCollider.isTrigger))) { Field = "m_IsTrigger" },
198+
new MemberInfoContainer(typeof(WheelCollider).GetProperty(nameof(WheelCollider.mass))) { Field = "m_Mass" },
199+
new MemberInfoContainer(typeof(WheelCollider).GetProperty(nameof(WheelCollider.radius))) { Field = "m_Radius" },
200+
new MemberInfoContainer(typeof(WheelCollider).GetProperty(nameof(WheelCollider.wheelDampingRate))) { Field = "m_WheelDampingRate" },
201+
new MemberInfoContainer(typeof(WheelCollider).GetProperty(nameof(WheelCollider.suspensionDistance))) { Field = "m_SuspensionDistance" },
202+
new MemberInfoContainer(typeof(WheelCollider).GetProperty(nameof(WheelCollider.forceAppPointDistance))) { Field = "m_ForceAppPointDistance" },
203+
new MemberInfoContainer(typeof(WheelCollider).GetProperty(nameof(WheelCollider.center))) { Field = "m_Center" },
204+
// new MemberInfoContainer(typeof(WheelCollider).GetProperty(nameof(WheelCollider.suspensionSpring))) { Field = "m_SuspensionSpring" },
205+
// new MemberInfoContainer(typeof(WheelCollider).GetProperty(nameof(WheelCollider.forwardFriction))) { Field = "m_ForwardFriction" },
206+
// new MemberInfoContainer(typeof(WheelCollider).GetProperty(nameof(WheelCollider.sidewaysFriction))) { Field = "m_SidewaysFriction" },
207+
}
208+
},
209+
{
210+
typeof(VRCPhysBoneCollider),
211+
new MemberInfoContainer[]
212+
{
213+
new MemberInfoContainer(typeof(VRCPhysBoneCollider).GetField(nameof(VRCPhysBoneCollider.shapeType))),
214+
new MemberInfoContainer(typeof(VRCPhysBoneCollider).GetField(nameof(VRCPhysBoneCollider.radius))),
215+
new MemberInfoContainer(typeof(VRCPhysBoneCollider).GetField(nameof(VRCPhysBoneCollider.height))),
216+
new MemberInfoContainer(typeof(VRCPhysBoneCollider).GetField(nameof(VRCPhysBoneCollider.position))),
217+
new MemberInfoContainer(typeof(VRCPhysBoneCollider).GetField(nameof(VRCPhysBoneCollider.rotation))),
218+
new MemberInfoContainer(typeof(VRCPhysBoneCollider).GetField(nameof(VRCPhysBoneCollider.insideBounds))),
219+
new MemberInfoContainer(typeof(VRCPhysBoneCollider).GetField(nameof(VRCPhysBoneCollider.bonesAsSpheres))),
220+
}
221+
},
222+
#if HAS_VRC_HEADCHOP
223+
{
224+
typeof(VRCHeadChop),
225+
new MemberInfoContainer[]
226+
{
227+
new MemberInfoContainer(typeof(VRCHeadChop).GetField(nameof(VRCHeadChop.globalScaleFactor))),
228+
}
229+
},
230+
#endif
231+
{
232+
typeof(Camera),
233+
new MemberInfoContainer[]
234+
{
235+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.backgroundColor))) { Field = "m_BackGroundColor", Label = "BackGround" },
236+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.orthographic))) { Field = "orthographic" },
237+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.orthographicSize))) { Field = "orthographic size" },
238+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.fieldOfView))) { Field = "field of view" },
239+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.iso))) { Field = "m_Iso" },
240+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.shutterSpeed))) { Field = "m_ShutterSpeed" },
241+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.aperture))) { Field = "m_Aperture" },
242+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.focusDistance))) { Field = "m_FocusDistance" },
243+
// new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.curvature))) { Field = "m_Curvature" },
244+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.barrelClipping))) { Field = "m_BarrelClipping" },
245+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.anamorphism))) { Field = "m_Anamorphism" },
246+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.focalLength))) { Field = "m_FocalLength" },
247+
// new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.sensorSize))) { Field = "m_SensorSize" },
248+
// new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.lensShift))) { Field = "m_LensShift" },
249+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.nearClipPlane))) { Field = "near clip plane" },
250+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.farClipPlane))) { Field = "far clip plane" },
251+
// new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.rect))) { Field = "m_NormalizedViewPortRect", Label = "Viewport Rect" },
252+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.depth))) { Field = "m_Depth" },
253+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.useOcclusionCulling))) { Field = "m_OcclusionCulling" },
254+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.allowHDR))) { Field = "m_HDR" },
255+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.allowMSAA))) { Field = "m_AllowMSAA" },
256+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.stereoSeparation))) { Field = "m_StereoSeparation" },
257+
new MemberInfoContainer(typeof(Camera).GetProperty(nameof(Camera.stereoConvergence))) { Field = "m_StereoConvergence" },
258+
}
259+
},
260+
{
261+
typeof(Cloth),
262+
new MemberInfoContainer[]
263+
{
264+
new MemberInfoContainer(typeof(Cloth).GetProperty(nameof(Cloth.bendingStiffness))) { Field = "m_BendingStiffness" },
265+
new MemberInfoContainer(typeof(Cloth).GetProperty(nameof(Cloth.stretchingStiffness))) { Field = "m_StretchingStiffness" },
266+
new MemberInfoContainer(typeof(Cloth).GetProperty(nameof(Cloth.useTethers))) { Field = "m_UseTethers" },
267+
new MemberInfoContainer(typeof(Cloth).GetProperty(nameof(Cloth.useGravity))) { Field = "m_UseGravity" },
268+
new MemberInfoContainer(typeof(Cloth).GetProperty(nameof(Cloth.damping))) { Field = "m_Damping" },
269+
new MemberInfoContainer(typeof(Cloth).GetProperty(nameof(Cloth.externalAcceleration))) { Field = "m_ExternalAcceleration" },
270+
new MemberInfoContainer(typeof(Cloth).GetProperty(nameof(Cloth.randomAcceleration))) { Field = "m_RandomAcceleration" },
271+
new MemberInfoContainer(typeof(Cloth).GetProperty(nameof(Cloth.worldVelocityScale))) { Field = "m_WorldVelocityScale" },
272+
new MemberInfoContainer(typeof(Cloth).GetProperty(nameof(Cloth.worldAccelerationScale))) { Field = "m_WorldAccelerationScale" },
273+
new MemberInfoContainer(typeof(Cloth).GetProperty(nameof(Cloth.friction))) { Field = "m_Friction" },
274+
new MemberInfoContainer(typeof(Cloth).GetProperty(nameof(Cloth.collisionMassScale))) { Field = "m_CollisionMassScale" },
275+
new MemberInfoContainer(typeof(Cloth).GetProperty(nameof(Cloth.enableContinuousCollision))) { Field = "m_UseContinuousCollision" },
276+
new MemberInfoContainer(typeof(Cloth).GetProperty(nameof(Cloth.sleepThreshold))) { Field = "m_SleepThreshold" },
277+
}
278+
},
279+
{
280+
typeof(Light),
281+
new MemberInfoContainer[]
282+
{
283+
new MemberInfoContainer(typeof(Light).GetProperty(nameof(Light.range))) { Field = "m_Range" },
284+
new MemberInfoContainer(typeof(Light).GetProperty(nameof(Light.spotAngle))) { Field = "m_SpotAngle" },
285+
new MemberInfoContainer(typeof(Light).GetProperty(nameof(Light.colorTemperature))) { Field = "m_ColorTemperature" },
286+
new MemberInfoContainer(typeof(Light).GetProperty(nameof(Light.color))) { Field = "m_Color" },
287+
new MemberInfoContainer(typeof(Light).GetProperty(nameof(Light.bounceIntensity))) { Field = "m_BounceIntensity" },
288+
new MemberInfoContainer(typeof(Light).GetProperty(nameof(Light.intensity))) { Field = "m_Intensity" },
289+
// new MemberInfoContainer(typeof(Light).GetProperty(nameof(Light.shadows))) { Field = "m_Shadows" },
290+
// m_DrawHalo private?
291+
}
292+
},
97293
};
98294

99295
static Dictionary<Type, TypeMember[]> AvailableMembersCache = new Dictionary<Type, TypeMember[]>();

0 commit comments

Comments
 (0)