Skip to content

Commit 159a763

Browse files
version update
1 parent f6f44f1 commit 159a763

5 files changed

Lines changed: 326 additions & 23 deletions

File tree

Assets/harunadev/PrismStudio.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 246 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,287 @@
11
%YAML 1.1
22
%TAG !u! tag:unity3d.com,2011:
3-
--- !u!1 &5892130515242338651
3+
--- !u!1 &12463398119130359
44
GameObject:
55
m_ObjectHideFlags: 0
66
m_CorrespondingSourceObject: {fileID: 0}
77
m_PrefabInstance: {fileID: 0}
88
m_PrefabAsset: {fileID: 0}
99
serializedVersion: 6
1010
m_Component:
11-
- component: {fileID: 172343229795831016}
12-
- component: {fileID: 7402735349345704329}
11+
- component: {fileID: 7965861441830745695}
12+
- component: {fileID: 6336150367631636774}
13+
- component: {fileID: 8975688429523202899}
1314
m_Layer: 0
14-
m_Name: VirtualTracker (Manual Prefab)
15+
m_Name: z
1516
m_TagString: Untagged
1617
m_Icon: {fileID: 0}
1718
m_NavMeshLayer: 0
1819
m_StaticEditorFlags: 0
1920
m_IsActive: 1
20-
--- !u!4 &172343229795831016
21+
--- !u!4 &7965861441830745695
2122
Transform:
2223
m_ObjectHideFlags: 0
2324
m_CorrespondingSourceObject: {fileID: 0}
2425
m_PrefabInstance: {fileID: 0}
2526
m_PrefabAsset: {fileID: 0}
26-
m_GameObject: {fileID: 5892130515242338651}
27+
m_GameObject: {fileID: 12463398119130359}
2728
serializedVersion: 2
28-
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
29+
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
2930
m_LocalPosition: {x: 0, y: 0, z: 0}
3031
m_LocalScale: {x: 1, y: 1, z: 1}
3132
m_ConstrainProportionsScale: 0
3233
m_Children: []
33-
m_Father: {fileID: 0}
34+
m_Father: {fileID: 172343229795831016}
3435
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
35-
--- !u!114 &7402735349345704329
36+
--- !u!1818360608 &6336150367631636774
37+
PositionConstraint:
38+
m_ObjectHideFlags: 0
39+
m_CorrespondingSourceObject: {fileID: 0}
40+
m_PrefabInstance: {fileID: 0}
41+
m_PrefabAsset: {fileID: 0}
42+
m_GameObject: {fileID: 12463398119130359}
43+
m_Enabled: 1
44+
serializedVersion: 2
45+
m_Weight: 1
46+
m_TranslationAtRest: {x: 0, y: 0, z: 0}
47+
m_TranslationOffset: {x: 0, y: 0, z: 0}
48+
m_AffectTranslationX: 0
49+
m_AffectTranslationY: 0
50+
m_AffectTranslationZ: 1
51+
m_Active: 1
52+
m_IsLocked: 1
53+
m_Sources:
54+
- sourceTransform: {fileID: 0}
55+
weight: 0.001
56+
- sourceTransform: {fileID: 172343229795831016}
57+
weight: 1
58+
--- !u!114 &8975688429523202899
3659
MonoBehaviour:
3760
m_ObjectHideFlags: 0
3861
m_CorrespondingSourceObject: {fileID: 0}
3962
m_PrefabInstance: {fileID: 0}
4063
m_PrefabAsset: {fileID: 0}
41-
m_GameObject: {fileID: 5892130515242338651}
64+
m_GameObject: {fileID: 12463398119130359}
4265
m_Enabled: 1
4366
m_EditorHideFlags: 0
4467
m_Script: {fileID: -802764141, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3}
4568
m_Name:
4669
m_EditorClassIdentifier:
4770
rootTransform: {fileID: 0}
4871
shapeType: 0
49-
radius: 0.01
72+
radius: 0.00000001
5073
height: 2
5174
position: {x: 0, y: 0, z: 0}
5275
rotation: {x: 0, y: 0, z: 0, w: 1}
53-
collisionTags:
54-
- PrismStudio Tracker 0
76+
collisionTags: []
77+
--- !u!1 &1084464433050461503
78+
GameObject:
79+
m_ObjectHideFlags: 0
80+
m_CorrespondingSourceObject: {fileID: 0}
81+
m_PrefabInstance: {fileID: 0}
82+
m_PrefabAsset: {fileID: 0}
83+
serializedVersion: 6
84+
m_Component:
85+
- component: {fileID: 6546033797197395061}
86+
- component: {fileID: 727341377454902112}
87+
- component: {fileID: 2188424287283193286}
88+
m_Layer: 0
89+
m_Name: x
90+
m_TagString: Untagged
91+
m_Icon: {fileID: 0}
92+
m_NavMeshLayer: 0
93+
m_StaticEditorFlags: 0
94+
m_IsActive: 1
95+
--- !u!4 &6546033797197395061
96+
Transform:
97+
m_ObjectHideFlags: 0
98+
m_CorrespondingSourceObject: {fileID: 0}
99+
m_PrefabInstance: {fileID: 0}
100+
m_PrefabAsset: {fileID: 0}
101+
m_GameObject: {fileID: 1084464433050461503}
102+
serializedVersion: 2
103+
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
104+
m_LocalPosition: {x: 0, y: 0, z: 0}
105+
m_LocalScale: {x: 1, y: 1, z: 1}
106+
m_ConstrainProportionsScale: 0
107+
m_Children: []
108+
m_Father: {fileID: 172343229795831016}
109+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
110+
--- !u!1818360608 &727341377454902112
111+
PositionConstraint:
112+
m_ObjectHideFlags: 0
113+
m_CorrespondingSourceObject: {fileID: 0}
114+
m_PrefabInstance: {fileID: 0}
115+
m_PrefabAsset: {fileID: 0}
116+
m_GameObject: {fileID: 1084464433050461503}
117+
m_Enabled: 1
118+
serializedVersion: 2
119+
m_Weight: 1
120+
m_TranslationAtRest: {x: 0, y: 0, z: 0}
121+
m_TranslationOffset: {x: 0, y: 0, z: 0}
122+
m_AffectTranslationX: 1
123+
m_AffectTranslationY: 0
124+
m_AffectTranslationZ: 0
125+
m_Active: 1
126+
m_IsLocked: 1
127+
m_Sources:
128+
- sourceTransform: {fileID: 0}
129+
weight: 0.001
130+
- sourceTransform: {fileID: 172343229795831016}
131+
weight: 1
132+
--- !u!114 &2188424287283193286
133+
MonoBehaviour:
134+
m_ObjectHideFlags: 0
135+
m_CorrespondingSourceObject: {fileID: 0}
136+
m_PrefabInstance: {fileID: 0}
137+
m_PrefabAsset: {fileID: 0}
138+
m_GameObject: {fileID: 1084464433050461503}
139+
m_Enabled: 1
140+
m_EditorHideFlags: 0
141+
m_Script: {fileID: -802764141, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3}
142+
m_Name:
143+
m_EditorClassIdentifier:
144+
rootTransform: {fileID: 0}
145+
shapeType: 0
146+
radius: 0.00000001
147+
height: 2
148+
position: {x: 0, y: 0, z: 0}
149+
rotation: {x: 0, y: 0, z: 0, w: 1}
150+
collisionTags: []
151+
--- !u!1 &3336083597888334462
152+
GameObject:
153+
m_ObjectHideFlags: 0
154+
m_CorrespondingSourceObject: {fileID: 0}
155+
m_PrefabInstance: {fileID: 0}
156+
m_PrefabAsset: {fileID: 0}
157+
serializedVersion: 6
158+
m_Component:
159+
- component: {fileID: 8996142502059668828}
160+
- component: {fileID: 2077925362497864894}
161+
- component: {fileID: 5018287375078654805}
162+
m_Layer: 0
163+
m_Name: y
164+
m_TagString: Untagged
165+
m_Icon: {fileID: 0}
166+
m_NavMeshLayer: 0
167+
m_StaticEditorFlags: 0
168+
m_IsActive: 1
169+
--- !u!4 &8996142502059668828
170+
Transform:
171+
m_ObjectHideFlags: 0
172+
m_CorrespondingSourceObject: {fileID: 0}
173+
m_PrefabInstance: {fileID: 0}
174+
m_PrefabAsset: {fileID: 0}
175+
m_GameObject: {fileID: 3336083597888334462}
176+
serializedVersion: 2
177+
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
178+
m_LocalPosition: {x: 0, y: 0, z: 0}
179+
m_LocalScale: {x: 1, y: 1, z: 1}
180+
m_ConstrainProportionsScale: 0
181+
m_Children: []
182+
m_Father: {fileID: 172343229795831016}
183+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
184+
--- !u!1818360608 &2077925362497864894
185+
PositionConstraint:
186+
m_ObjectHideFlags: 0
187+
m_CorrespondingSourceObject: {fileID: 0}
188+
m_PrefabInstance: {fileID: 0}
189+
m_PrefabAsset: {fileID: 0}
190+
m_GameObject: {fileID: 3336083597888334462}
191+
m_Enabled: 1
192+
serializedVersion: 2
193+
m_Weight: 1
194+
m_TranslationAtRest: {x: 0, y: 0, z: 0}
195+
m_TranslationOffset: {x: 0, y: 0, z: 0}
196+
m_AffectTranslationX: 0
197+
m_AffectTranslationY: 1
198+
m_AffectTranslationZ: 0
199+
m_Active: 1
200+
m_IsLocked: 1
201+
m_Sources:
202+
- sourceTransform: {fileID: 0}
203+
weight: 0.001
204+
- sourceTransform: {fileID: 172343229795831016}
205+
weight: 1
206+
--- !u!114 &5018287375078654805
207+
MonoBehaviour:
208+
m_ObjectHideFlags: 0
209+
m_CorrespondingSourceObject: {fileID: 0}
210+
m_PrefabInstance: {fileID: 0}
211+
m_PrefabAsset: {fileID: 0}
212+
m_GameObject: {fileID: 3336083597888334462}
213+
m_Enabled: 1
214+
m_EditorHideFlags: 0
215+
m_Script: {fileID: -802764141, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3}
216+
m_Name:
217+
m_EditorClassIdentifier:
218+
rootTransform: {fileID: 0}
219+
shapeType: 0
220+
radius: 0.00000001
221+
height: 2
222+
position: {x: 0, y: 0, z: 0}
223+
rotation: {x: 0, y: 0, z: 0, w: 1}
224+
collisionTags: []
225+
--- !u!1 &5892130515242338651
226+
GameObject:
227+
m_ObjectHideFlags: 0
228+
m_CorrespondingSourceObject: {fileID: 0}
229+
m_PrefabInstance: {fileID: 0}
230+
m_PrefabAsset: {fileID: 0}
231+
serializedVersion: 6
232+
m_Component:
233+
- component: {fileID: 172343229795831016}
234+
- component: {fileID: 3340801928727204814}
235+
m_Layer: 0
236+
m_Name: VirtualTracker (Manual Prefab)
237+
m_TagString: Untagged
238+
m_Icon: {fileID: 0}
239+
m_NavMeshLayer: 0
240+
m_StaticEditorFlags: 0
241+
m_IsActive: 1
242+
--- !u!4 &172343229795831016
243+
Transform:
244+
m_ObjectHideFlags: 0
245+
m_CorrespondingSourceObject: {fileID: 0}
246+
m_PrefabInstance: {fileID: 0}
247+
m_PrefabAsset: {fileID: 0}
248+
m_GameObject: {fileID: 5892130515242338651}
249+
serializedVersion: 2
250+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
251+
m_LocalPosition: {x: 0, y: 0, z: 0}
252+
m_LocalScale: {x: 1, y: 1, z: 1}
253+
m_ConstrainProportionsScale: 0
254+
m_Children:
255+
- {fileID: 6546033797197395061}
256+
- {fileID: 8996142502059668828}
257+
- {fileID: 7965861441830745695}
258+
m_Father: {fileID: 0}
259+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
260+
--- !u!1773428102 &3340801928727204814
261+
ParentConstraint:
262+
m_ObjectHideFlags: 0
263+
m_CorrespondingSourceObject: {fileID: 0}
264+
m_PrefabInstance: {fileID: 0}
265+
m_PrefabAsset: {fileID: 0}
266+
m_GameObject: {fileID: 5892130515242338651}
267+
m_Enabled: 1
268+
serializedVersion: 2
269+
m_Weight: 1
270+
m_TranslationAtRest: {x: 0, y: 0, z: 0}
271+
m_RotationAtRest: {x: 0, y: 0, z: 0}
272+
m_TranslationOffsets:
273+
- {x: 0, y: 0, z: 0}
274+
m_RotationOffsets:
275+
- {x: 0, y: 0, z: 0}
276+
m_AffectTranslationX: 1
277+
m_AffectTranslationY: 1
278+
m_AffectTranslationZ: 1
279+
m_AffectRotationX: 1
280+
m_AffectRotationY: 1
281+
m_AffectRotationZ: 1
282+
m_Active: 1
283+
m_IsLocked: 1
284+
m_Sources:
285+
- sourceTransform: {fileID: 1628141206562102982, guid: 8edf58b65e37faa4cbfe429de3538124,
286+
type: 3}
287+
weight: 1

Assets/harunadev/PrismStudio/VirtualTracker/VirtualTrackerCreator.cs

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
using System.Collections.Generic;
44
using UnityEditor;
55
using UnityEngine;
6+
using UnityEngine.Animations;
7+
using VRC.SDK3.Avatars.Components;
68
using VRC.SDK3.Dynamics.Contact.Components;
79

810
public class VirtualTrackerCreator : EditorWindow
911
{
1012

11-
public readonly string version = "1.0";
13+
public readonly string version = "1.1";
1214

1315
[MenuItem("GameObject/PrismStudio VirtualTracker/0")] static void c0(MenuCommand menuCommand) { CreateTracker(0, menuCommand); }
1416
[MenuItem("GameObject/PrismStudio VirtualTracker/1")] static void c1(MenuCommand menuCommand) { CreateTracker(1, menuCommand); }
@@ -62,14 +64,42 @@ static void CreateTracker(int index, MenuCommand menuCommand)
6264

6365
static void CreateTracker(int index, GameObject parent)
6466
{
65-
GameObject go = new GameObject("VirtualTracker " + index);
66-
GameObjectUtility.SetParentAndAlign(go, parent);
67-
VRCContactSender s = go.AddComponent<VRCContactSender>();
68-
s.shapeType = VRC.Dynamics.ContactBase.ShapeType.Sphere;
69-
s.radius = 0.01f;
70-
s.collisionTags.Add("PrismStudio Tracker " + index);
71-
Undo.RegisterCreatedObjectUndo(go, "Create " + go.name);
72-
Selection.activeObject = go;
67+
VRCAvatarDescriptor targetavatar = parent.GetComponentInParent<VRCAvatarDescriptor>();
68+
69+
if (targetavatar != null)
70+
{
71+
GameObject go = (GameObject)PrefabUtility.InstantiatePrefab(AssetDatabase.LoadAssetAtPath("Assets/harunadev/PrismStudio/VirtualTracker/VirtualTracker (Manual Prefab).prefab", typeof(GameObject)));
72+
go.name = "VirtualTracker " + index;
73+
74+
GameObjectUtility.SetParentAndAlign(go, targetavatar.gameObject);
75+
76+
go.transform.Find("x").GetComponent<PositionConstraint>().SetSource(0, new ConstraintSource()
77+
{
78+
sourceTransform = parent.transform,
79+
weight = 0.001f
80+
});
81+
go.transform.Find("y").GetComponent<PositionConstraint>().SetSource(0, new ConstraintSource()
82+
{
83+
sourceTransform = parent.transform,
84+
weight = 0.001f
85+
});
86+
go.transform.Find("z").GetComponent<PositionConstraint>().SetSource(0, new ConstraintSource()
87+
{
88+
sourceTransform = parent.transform,
89+
weight = 0.001f
90+
});
91+
92+
go.transform.Find("x").GetComponent<VRCContactSender>().collisionTags.Add("ps_vt_" + index + "_x");
93+
go.transform.Find("y").GetComponent<VRCContactSender>().collisionTags.Add("ps_vt_" + index + "_y");
94+
go.transform.Find("z").GetComponent<VRCContactSender>().collisionTags.Add("ps_vt_" + index + "_z");
95+
96+
Undo.RegisterCreatedObjectUndo(go, "Create " + go.name);
97+
Selection.activeObject = go;
98+
99+
} else
100+
{
101+
Debug.LogError("Selected object is not in VRCAvatarDescriptor!");
102+
}
73103
}
74104

75105

0 commit comments

Comments
 (0)