Showing
8 changed files
with
521 additions
and
157 deletions
1 | using UnityEngine; | 1 | using UnityEngine; |
2 | +using UnityEngine.UI; | ||
2 | using System.Collections; | 3 | using System.Collections; |
3 | using System.Collections.Generic; | 4 | using System.Collections.Generic; |
4 | using Kinect = Windows.Kinect; | 5 | using Kinect = Windows.Kinect; |
6 | +using System.IO; | ||
7 | +using System; | ||
8 | + | ||
5 | 9 | ||
6 | public class BodySourceView : MonoBehaviour | 10 | public class BodySourceView : MonoBehaviour |
7 | { | 11 | { |
8 | public Material BoneMaterial; | 12 | public Material BoneMaterial; |
13 | + public Material xbot; | ||
9 | public GameObject BodySourceManager; | 14 | public GameObject BodySourceManager; |
10 | 15 | ||
11 | private Dictionary<ulong, GameObject> _Bodies = new Dictionary<ulong, GameObject>(); | 16 | private Dictionary<ulong, GameObject> _Bodies = new Dictionary<ulong, GameObject>(); |
12 | private BodySourceManager _BodyManager; | 17 | private BodySourceManager _BodyManager; |
13 | 18 | ||
19 | + public Text IfSpineIsStraight; | ||
20 | + public Text HipBalance; | ||
21 | + public Text AngleLeftKnee; | ||
22 | + public Text AngleRightKnee; | ||
23 | + public Text KneeToeLeft; | ||
24 | + public Text KneeToeRight; | ||
25 | + public Text LeftLegUp; | ||
26 | + public Text RightLegUp; | ||
27 | + | ||
28 | + string hipbal, leftkneewarning, rightkneewarning, leftsidehighkick, rightsidehighkick; | ||
29 | + | ||
14 | private Dictionary<Kinect.JointType, Kinect.JointType> _BoneMap = new Dictionary<Kinect.JointType, Kinect.JointType>() | 30 | private Dictionary<Kinect.JointType, Kinect.JointType> _BoneMap = new Dictionary<Kinect.JointType, Kinect.JointType>() |
15 | { | 31 | { |
16 | { Kinect.JointType.FootLeft, Kinect.JointType.AnkleLeft }, | 32 | { Kinect.JointType.FootLeft, Kinect.JointType.AnkleLeft }, |
... | @@ -43,8 +59,20 @@ public class BodySourceView : MonoBehaviour | ... | @@ -43,8 +59,20 @@ public class BodySourceView : MonoBehaviour |
43 | { Kinect.JointType.Neck, Kinect.JointType.Head }, | 59 | { Kinect.JointType.Neck, Kinect.JointType.Head }, |
44 | }; | 60 | }; |
45 | 61 | ||
46 | - void Update () | 62 | + |
63 | + void Update() | ||
47 | { | 64 | { |
65 | + | ||
66 | + IfSpineIsStraight.text = "허리를 곧게: Tracking"; | ||
67 | + HipBalance.text = "양쪽 힙 균형: Calculating"; | ||
68 | + AngleLeftKnee.text = "왼쪽 무릎 각도: Tracking"; | ||
69 | + AngleRightKnee.text = "오른쪽 무릎 각도: Tracking"; | ||
70 | + KneeToeLeft.text = "왼쪽 무릎과 발끝: Tracking"; | ||
71 | + KneeToeRight.text = "오른쪽 무릎과 발끝: Tracking"; | ||
72 | + LeftLegUp.text = "왼쪽 다리 들어올린 각도: Tracking"; | ||
73 | + RightLegUp.text = "오른쪽 다리 들어올린 각도: Tracking"; | ||
74 | + | ||
75 | + | ||
48 | if (BodySourceManager == null) | 76 | if (BodySourceManager == null) |
49 | { | 77 | { |
50 | return; | 78 | return; |
... | @@ -63,48 +91,49 @@ public class BodySourceView : MonoBehaviour | ... | @@ -63,48 +91,49 @@ public class BodySourceView : MonoBehaviour |
63 | } | 91 | } |
64 | 92 | ||
65 | List<ulong> trackedIds = new List<ulong>(); | 93 | List<ulong> trackedIds = new List<ulong>(); |
66 | - foreach(var body in data) | 94 | + foreach (var body in data) |
67 | { | 95 | { |
68 | if (body == null) | 96 | if (body == null) |
69 | { | 97 | { |
70 | continue; | 98 | continue; |
71 | } | 99 | } |
72 | 100 | ||
73 | - if(body.IsTracked) | 101 | + if (body.IsTracked) |
74 | { | 102 | { |
75 | - trackedIds.Add (body.TrackingId); | 103 | + trackedIds.Add(body.TrackingId); |
76 | } | 104 | } |
77 | } | 105 | } |
78 | 106 | ||
79 | List<ulong> knownIds = new List<ulong>(_Bodies.Keys); | 107 | List<ulong> knownIds = new List<ulong>(_Bodies.Keys); |
80 | 108 | ||
81 | // First delete untracked bodies | 109 | // First delete untracked bodies |
82 | - foreach(ulong trackingId in knownIds) | 110 | + foreach (ulong trackingId in knownIds) |
83 | { | 111 | { |
84 | - if(!trackedIds.Contains(trackingId)) | 112 | + if (!trackedIds.Contains(trackingId)) |
85 | { | 113 | { |
86 | Destroy(_Bodies[trackingId]); | 114 | Destroy(_Bodies[trackingId]); |
87 | _Bodies.Remove(trackingId); | 115 | _Bodies.Remove(trackingId); |
88 | } | 116 | } |
89 | } | 117 | } |
90 | 118 | ||
91 | - foreach(var body in data) | 119 | + foreach (var body in data) |
92 | { | 120 | { |
93 | if (body == null) | 121 | if (body == null) |
94 | { | 122 | { |
95 | continue; | 123 | continue; |
96 | } | 124 | } |
97 | 125 | ||
98 | - if(body.IsTracked) | 126 | + if (body.IsTracked) |
99 | { | 127 | { |
100 | - if(!_Bodies.ContainsKey(body.TrackingId)) | 128 | + if (!_Bodies.ContainsKey(body.TrackingId)) |
101 | { | 129 | { |
102 | _Bodies[body.TrackingId] = CreateBodyObject(body.TrackingId); | 130 | _Bodies[body.TrackingId] = CreateBodyObject(body.TrackingId); |
103 | - | ||
104 | } | 131 | } |
132 | + | ||
105 | RefreshBodyObject(body, _Bodies[body.TrackingId]); | 133 | RefreshBodyObject(body, _Bodies[body.TrackingId]); |
106 | } | 134 | } |
107 | } | 135 | } |
136 | + | ||
108 | } | 137 | } |
109 | 138 | ||
110 | private GameObject CreateBodyObject(ulong id) | 139 | private GameObject CreateBodyObject(ulong id) |
... | @@ -118,8 +147,13 @@ public class BodySourceView : MonoBehaviour | ... | @@ -118,8 +147,13 @@ public class BodySourceView : MonoBehaviour |
118 | LineRenderer lr = jointObj.AddComponent<LineRenderer>(); | 147 | LineRenderer lr = jointObj.AddComponent<LineRenderer>(); |
119 | lr.SetVertexCount(2); | 148 | lr.SetVertexCount(2); |
120 | lr.material = BoneMaterial; | 149 | lr.material = BoneMaterial; |
150 | + ////////////////// | ||
151 | + //lr.material = xbot; | ||
152 | + | ||
153 | + ///////////////// | ||
121 | lr.SetWidth(0.05f, 0.05f); | 154 | lr.SetWidth(0.05f, 0.05f); |
122 | 155 | ||
156 | + | ||
123 | jointObj.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f); | 157 | jointObj.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f); |
124 | jointObj.name = jt.ToString(); | 158 | jointObj.name = jt.ToString(); |
125 | jointObj.transform.parent = body.transform; | 159 | jointObj.transform.parent = body.transform; |
... | @@ -128,31 +162,128 @@ public class BodySourceView : MonoBehaviour | ... | @@ -128,31 +162,128 @@ public class BodySourceView : MonoBehaviour |
128 | return body; | 162 | return body; |
129 | } | 163 | } |
130 | 164 | ||
165 | + int num = 0; | ||
166 | + string str = ""; | ||
167 | + | ||
131 | private void RefreshBodyObject(Kinect.Body body, GameObject bodyObject) | 168 | private void RefreshBodyObject(Kinect.Body body, GameObject bodyObject) |
132 | { | 169 | { |
133 | 170 | ||
171 | + //StreamWriter sw = new StreamWriter(new FileStream("a.txt", FileMode.Create)); | ||
172 | + // sw.WriteLine("Hello"); | ||
173 | + //sw.Close(); | ||
174 | + // Debug.Log("바디트래킹됨=================" + num++); | ||
175 | + //NewBehaviourScript.test(); | ||
176 | + // str += "바디트래킹됨=================" + num++ + "\n"; | ||
177 | + | ||
178 | + | ||
179 | + | ||
134 | for (Kinect.JointType jt = Kinect.JointType.SpineBase; jt <= Kinect.JointType.ThumbRight; jt++) | 180 | for (Kinect.JointType jt = Kinect.JointType.SpineBase; jt <= Kinect.JointType.ThumbRight; jt++) |
135 | { | 181 | { |
182 | + | ||
136 | Kinect.Joint sourceJoint = body.Joints[jt]; | 183 | Kinect.Joint sourceJoint = body.Joints[jt]; |
137 | - Debug.Log(body.Joints[jt].JointType); | ||
138 | - Debug.Log(sourceJoint.Position.X * 10); | ||
139 | - Debug.Log(sourceJoint.Position.Y * 10); | ||
140 | - Debug.Log(sourceJoint.Position.Z * 10); | ||
141 | Kinect.Joint? targetJoint = null; | 184 | Kinect.Joint? targetJoint = null; |
142 | 185 | ||
143 | - if(_BoneMap.ContainsKey(jt)) | 186 | + /////////////////////////// |
187 | + Angles MyAngles = new Angles(); | ||
188 | + byte[] ReadAngles = MyAngles.GetVector(body); | ||
189 | + // ReadAngles[0].ToString(); | ||
190 | + //Debug.Log("HipLeft " + ReadAngles[1].ToString()); | ||
191 | + //Debug.Log("HipRight " + ReadAngles[2].ToString()); | ||
192 | + //Debug.Log("KneeLeft " + ReadAngles[3].ToString()); | ||
193 | + //Debug.Log("KneeRight " + ReadAngles[4].ToString()); | ||
194 | + | ||
195 | + | ||
196 | + if (ReadAngles[1] - ReadAngles[2] <= 5) | ||
197 | + { | ||
198 | + hipbal = "양쪽 균형이 잡혀있습니다."; | ||
199 | + } | ||
200 | + else { | ||
201 | + hipbal = "양쪽 힘이 동일하지 않습니다. 균형을 잡으세요"; | ||
202 | + } | ||
203 | + | ||
204 | + if (ReadAngles[5] > 90) | ||
205 | + { | ||
206 | + leftkneewarning = "왼쪽 무릎이 발끝을 넘어갔습니다."; | ||
207 | + } | ||
208 | + else { | ||
209 | + leftkneewarning = ""; | ||
210 | + } | ||
211 | + if (ReadAngles[6] > 90) | ||
212 | + { | ||
213 | + rightkneewarning = "오른쪽 무릎이 발끝을 넘어갔습니다."; | ||
214 | + } | ||
215 | + else | ||
216 | + { | ||
217 | + rightkneewarning = ""; | ||
218 | + } | ||
219 | + | ||
220 | + if (ReadAngles[7] < 45) | ||
221 | + { | ||
222 | + leftsidehighkick = "왼쪽 다리를 좀 더 높이 들어올리세요"; | ||
223 | + } | ||
224 | + else { | ||
225 | + leftsidehighkick = ""; | ||
226 | + } | ||
227 | + | ||
228 | + if (ReadAngles[8] < 45) | ||
229 | + { | ||
230 | + rightsidehighkick = "오른쪽 다리를 좀 더 높이 들어올리세요"; | ||
231 | + } | ||
232 | + else | ||
233 | + { | ||
234 | + rightsidehighkick = ""; | ||
235 | + } | ||
236 | + | ||
237 | + | ||
238 | + IfSpineIsStraight.text = "허리를 곧게: " + ReadAngles[0].ToString(); | ||
239 | + HipBalance.text = "양쪽 힙 균형: " + hipbal; | ||
240 | + AngleLeftKnee.text = "왼쪽 무릎 각도: " + ReadAngles[3].ToString(); | ||
241 | + AngleRightKnee.text = "오른쪽 무릎 각도: " + ReadAngles[4].ToString(); | ||
242 | + KneeToeLeft.text = "올바르지 않은 자세: " + leftkneewarning; | ||
243 | + KneeToeRight.text = "올바르지 않은 자세: " + rightkneewarning; | ||
244 | + LeftLegUp.text = "왼쪽 다리 운동중: " + leftsidehighkick; | ||
245 | + RightLegUp.text = "오른쪽 다리 운동중: " + rightsidehighkick; | ||
246 | + | ||
247 | + /////////////////////////// | ||
248 | + | ||
249 | + Debug.Log(body.Joints[Kinect.JointType.SpineBase].Position.X); | ||
250 | + if (body.Joints[jt].JointType.ToString() == "SpineBase") | ||
251 | + { | ||
252 | + Debug.Log(sourceJoint.Position.X); | ||
253 | + | ||
254 | + //str += sourceJoint.Position.X; | ||
255 | + //str += "\n"; | ||
256 | + Debug.Log(sourceJoint.Position.Y); | ||
257 | + | ||
258 | + //str += sourceJoint.Position.Y; | ||
259 | + //str += "\n"; | ||
260 | + Debug.Log(sourceJoint.Position.Z); | ||
261 | + } | ||
262 | + //str += body.Joints[jt].JointType; | ||
263 | + //str += "\n"; | ||
264 | + | ||
265 | + | ||
266 | + //str += sourceJoint.Position.Z; | ||
267 | + //str += "\n"; | ||
268 | + //Debug.Log("<<<<<<<<<<<<<<<<<"); | ||
269 | + | ||
270 | + // str += "<<<<<<<<<<<<<<<<<<<\n"; | ||
271 | + | ||
272 | + | ||
273 | + if (_BoneMap.ContainsKey(jt)) | ||
144 | { | 274 | { |
145 | targetJoint = body.Joints[_BoneMap[jt]]; | 275 | targetJoint = body.Joints[_BoneMap[jt]]; |
146 | } | 276 | } |
277 | + | ||
147 | Transform jointObj = bodyObject.transform.Find(jt.ToString()); | 278 | Transform jointObj = bodyObject.transform.Find(jt.ToString()); |
148 | jointObj.localPosition = GetVector3FromJoint(sourceJoint); | 279 | jointObj.localPosition = GetVector3FromJoint(sourceJoint); |
149 | 280 | ||
150 | LineRenderer lr = jointObj.GetComponent<LineRenderer>(); | 281 | LineRenderer lr = jointObj.GetComponent<LineRenderer>(); |
151 | - if(targetJoint.HasValue) | 282 | + if (targetJoint.HasValue) |
152 | { | 283 | { |
153 | lr.SetPosition(0, jointObj.localPosition); | 284 | lr.SetPosition(0, jointObj.localPosition); |
154 | lr.SetPosition(1, GetVector3FromJoint(targetJoint.Value)); | 285 | lr.SetPosition(1, GetVector3FromJoint(targetJoint.Value)); |
155 | - lr.SetColors(GetColorForState (sourceJoint.TrackingState), GetColorForState(targetJoint.Value.TrackingState)); | 286 | + lr.SetColors(GetColorForState(sourceJoint.TrackingState), GetColorForState(targetJoint.Value.TrackingState)); |
156 | } | 287 | } |
157 | else | 288 | else |
158 | { | 289 | { |
... | @@ -180,4 +311,73 @@ public class BodySourceView : MonoBehaviour | ... | @@ -180,4 +311,73 @@ public class BodySourceView : MonoBehaviour |
180 | { | 311 | { |
181 | return new Vector3(joint.Position.X * 10, joint.Position.Y * 10, joint.Position.Z * 10); | 312 | return new Vector3(joint.Position.X * 10, joint.Position.Y * 10, joint.Position.Z * 10); |
182 | } | 313 | } |
314 | + | ||
315 | + | ||
316 | + public class Angles | ||
317 | + { | ||
318 | + public double AngleBetweenTwoVectors(Vector3 Va, Vector3 Vb) | ||
319 | + { | ||
320 | + double dotProduct; | ||
321 | + | ||
322 | + Va.Normalize(); | ||
323 | + Vb.Normalize(); | ||
324 | + dotProduct = Vector3.Dot(Va, Vb); | ||
325 | + | ||
326 | + return (double)Math.Acos(dotProduct) * (180/ Math.PI); | ||
327 | + | ||
328 | + } | ||
329 | + | ||
330 | + public byte[] GetVector(Kinect.Body body) | ||
331 | + { | ||
332 | + Vector3 SpineShoulder = new Vector3(body.Joints[Kinect.JointType.SpineShoulder].Position.X, body.Joints[Kinect.JointType.SpineShoulder].Position.Y, body.Joints[Kinect.JointType.SpineShoulder].Position.Z); | ||
333 | + Vector3 RightShoulder = new Vector3(body.Joints[Kinect.JointType.ShoulderRight].Position.X, body.Joints[Kinect.JointType.ShoulderRight].Position.Y, body.Joints[Kinect.JointType.ShoulderRight].Position.Z); | ||
334 | + Vector3 LeftShoulder = new Vector3(body.Joints[Kinect.JointType.ShoulderLeft].Position.X, body.Joints[Kinect.JointType.ShoulderLeft].Position.Y, body.Joints[Kinect.JointType.ShoulderLeft].Position.Z); | ||
335 | + Vector3 RightElbow = new Vector3(body.Joints[Kinect.JointType.ElbowRight].Position.X, body.Joints[Kinect.JointType.ElbowRight].Position.Y, body.Joints[Kinect.JointType.ElbowRight].Position.Z); | ||
336 | + Vector3 LeftElbow = new Vector3(body.Joints[Kinect.JointType.ElbowLeft].Position.X, body.Joints[Kinect.JointType.ElbowLeft].Position.Y, body.Joints[Kinect.JointType.ElbowLeft].Position.Z); | ||
337 | + Vector3 RightWrist = new Vector3(body.Joints[Kinect.JointType.WristRight].Position.X, body.Joints[Kinect.JointType.WristRight].Position.Y, body.Joints[Kinect.JointType.WristRight].Position.Z); | ||
338 | + Vector3 LeftWrist = new Vector3(body.Joints[Kinect.JointType.WristLeft].Position.X, body.Joints[Kinect.JointType.WristLeft].Position.Y, body.Joints[Kinect.JointType.WristLeft].Position.Z); | ||
339 | + Vector3 UpVector = new Vector3((float)0.0, (float)1.0, (float)0.0); | ||
340 | + ////////////////////////////////////// | ||
341 | + Vector3 SpineMid = new Vector3(body.Joints[Kinect.JointType.SpineMid].Position.X, body.Joints[Kinect.JointType.SpineMid].Position.Y, body.Joints[Kinect.JointType.SpineMid].Position.Z); | ||
342 | + Vector3 SpineBase = new Vector3(body.Joints[Kinect.JointType.SpineBase].Position.X, body.Joints[Kinect.JointType.SpineBase].Position.Y, body.Joints[Kinect.JointType.SpineBase].Position.Z); | ||
343 | + Vector3 HipLeft = new Vector3(body.Joints[Kinect.JointType.HipLeft].Position.X, body.Joints[Kinect.JointType.HipLeft].Position.Y, body.Joints[Kinect.JointType.HipLeft].Position.Z); | ||
344 | + Vector3 KneeLeft = new Vector3(body.Joints[Kinect.JointType.KneeLeft].Position.X, body.Joints[Kinect.JointType.KneeLeft].Position.Y, body.Joints[Kinect.JointType.KneeLeft].Position.Z); | ||
345 | + Vector3 AnkleLeft = new Vector3(body.Joints[Kinect.JointType.AnkleLeft].Position.X, body.Joints[Kinect.JointType.AnkleLeft].Position.Y, body.Joints[Kinect.JointType.AnkleLeft].Position.Z); | ||
346 | + Vector3 HipRight = new Vector3(body.Joints[Kinect.JointType.HipRight].Position.X, body.Joints[Kinect.JointType.HipRight].Position.Y, body.Joints[Kinect.JointType.HipRight].Position.Z); | ||
347 | + Vector3 KneeRight = new Vector3(body.Joints[Kinect.JointType.KneeRight].Position.X, body.Joints[Kinect.JointType.KneeRight].Position.Y, body.Joints[Kinect.JointType.KneeRight].Position.Z); | ||
348 | + Vector3 AnkleRight = new Vector3(body.Joints[Kinect.JointType.AnkleRight].Position.X, body.Joints[Kinect.JointType.AnkleRight].Position.Y, body.Joints[Kinect.JointType.AnkleRight].Position.Z); | ||
349 | + Vector3 FootRight = new Vector3(body.Joints[Kinect.JointType.FootRight].Position.X, body.Joints[Kinect.JointType.FootRight].Position.Y, body.Joints[Kinect.JointType.FootRight].Position.Z); | ||
350 | + Vector3 FootLeft = new Vector3(body.Joints[Kinect.JointType.FootLeft].Position.X, body.Joints[Kinect.JointType.FootLeft].Position.Y, body.Joints[Kinect.JointType.FootLeft].Position.Z); | ||
351 | + | ||
352 | + /* | ||
353 | + double AngleRightElbow = AngleBetweenTwoVectors(RightElbow - RightShoulder, RightElbow - RightWrist); | ||
354 | + double AngleRightShoulder = AngleBetweenTwoVectors(UpVector, RightShoulder - RightElbow); | ||
355 | + double AngleLeftElbow = AngleBetweenTwoVectors(LeftElbow - LeftShoulder, LeftElbow - LeftWrist); | ||
356 | + double AngleLeftShoulder = AngleBetweenTwoVectors(UpVector, LeftShoulder - LeftElbow); | ||
357 | + */ | ||
358 | + | ||
359 | + double StraightSpine = AngleBetweenTwoVectors(SpineShoulder - SpineMid, SpineBase - SpineMid); //스쿼트, 런지 - Joint 3개로도 가능 | ||
360 | + | ||
361 | + double AngleLeftHip = AngleBetweenTwoVectors(SpineBase - SpineShoulder, HipLeft - KneeLeft); //스쿼트, 런지 | ||
362 | + double AngleRightHip = AngleBetweenTwoVectors(SpineBase - SpineShoulder, HipRight - KneeRight); //스쿼트, 런지 | ||
363 | + double AngleLeftKnee = AngleBetweenTwoVectors(KneeLeft - HipLeft, KneeLeft - AnkleLeft); //스쿼트, 런지, 사이드하이킥 - Joint 3개로도 가능 | ||
364 | + double AngleRightKnee = AngleBetweenTwoVectors(KneeRight - HipRight, KneeRight - AnkleRight); //스쿼트, 런지, 사이드하이킥 - Joint 3개로도 가능 | ||
365 | + | ||
366 | + double KneeToeLeft = AngleBetweenTwoVectors(AnkleLeft - FootLeft, KneeLeft - FootLeft); //스쿼트 - Joint 3개로도 가능 | ||
367 | + double KneeToeRight = AngleBetweenTwoVectors(AnkleRight - FootRight, KneeRight - FootRight); //스쿼트 - Joint 3개로도 가능 | ||
368 | + double LeftLegUp = AngleBetweenTwoVectors(SpineMid - SpineShoulder, KneeLeft - HipLeft); //사이드 하이킥 | ||
369 | + double RightLegUp = AngleBetweenTwoVectors(SpineMid - SpineShoulder, KneeRight - HipRight); //사이드 하이킥 | ||
370 | + | ||
371 | + | ||
372 | + byte[] Angles = { Convert.ToByte(StraightSpine), | ||
373 | + Convert.ToByte(AngleLeftHip), Convert.ToByte(AngleRightHip), | ||
374 | + Convert.ToByte(AngleLeftKnee), Convert.ToByte(AngleRightKnee), | ||
375 | + Convert.ToByte(KneeToeLeft), Convert.ToByte(KneeToeRight), | ||
376 | + Convert.ToByte(LeftLegUp), Convert.ToByte(RightLegUp)}; | ||
377 | + | ||
378 | + return Angles; | ||
379 | + } | ||
380 | + } | ||
381 | + | ||
382 | + | ||
183 | } | 383 | } | ... | ... |
... | @@ -306,6 +306,116 @@ Transform: | ... | @@ -306,6 +306,116 @@ Transform: |
306 | m_Father: {fileID: 0} | 306 | m_Father: {fileID: 0} |
307 | m_RootOrder: 1 | 307 | m_RootOrder: 1 |
308 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} | 308 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} |
309 | +--- !u!1 &485542712 | ||
310 | +GameObject: | ||
311 | + m_ObjectHideFlags: 0 | ||
312 | + m_CorrespondingSourceObject: {fileID: 0} | ||
313 | + m_PrefabInstance: {fileID: 0} | ||
314 | + m_PrefabAsset: {fileID: 0} | ||
315 | + serializedVersion: 6 | ||
316 | + m_Component: | ||
317 | + - component: {fileID: 485542716} | ||
318 | + - component: {fileID: 485542715} | ||
319 | + - component: {fileID: 485542714} | ||
320 | + - component: {fileID: 485542713} | ||
321 | + - component: {fileID: 485542717} | ||
322 | + m_Layer: 0 | ||
323 | + m_Name: Quad | ||
324 | + m_TagString: Untagged | ||
325 | + m_Icon: {fileID: 0} | ||
326 | + m_NavMeshLayer: 0 | ||
327 | + m_StaticEditorFlags: 0 | ||
328 | + m_IsActive: 1 | ||
329 | +--- !u!64 &485542713 | ||
330 | +MeshCollider: | ||
331 | + m_ObjectHideFlags: 0 | ||
332 | + m_CorrespondingSourceObject: {fileID: 0} | ||
333 | + m_PrefabInstance: {fileID: 0} | ||
334 | + m_PrefabAsset: {fileID: 0} | ||
335 | + m_GameObject: {fileID: 485542712} | ||
336 | + m_Material: {fileID: 0} | ||
337 | + m_IsTrigger: 0 | ||
338 | + m_Enabled: 1 | ||
339 | + serializedVersion: 4 | ||
340 | + m_Convex: 0 | ||
341 | + m_CookingOptions: 30 | ||
342 | + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} | ||
343 | +--- !u!23 &485542714 | ||
344 | +MeshRenderer: | ||
345 | + m_ObjectHideFlags: 0 | ||
346 | + m_CorrespondingSourceObject: {fileID: 0} | ||
347 | + m_PrefabInstance: {fileID: 0} | ||
348 | + m_PrefabAsset: {fileID: 0} | ||
349 | + m_GameObject: {fileID: 485542712} | ||
350 | + m_Enabled: 1 | ||
351 | + m_CastShadows: 1 | ||
352 | + m_ReceiveShadows: 1 | ||
353 | + m_DynamicOccludee: 1 | ||
354 | + m_MotionVectors: 1 | ||
355 | + m_LightProbeUsage: 1 | ||
356 | + m_ReflectionProbeUsage: 1 | ||
357 | + m_RayTracingMode: 2 | ||
358 | + m_RenderingLayerMask: 1 | ||
359 | + m_RendererPriority: 0 | ||
360 | + m_Materials: | ||
361 | + - {fileID: 2100000, guid: baf5dc6a6a18ea54d80a95d5475c91e9, type: 2} | ||
362 | + m_StaticBatchInfo: | ||
363 | + firstSubMesh: 0 | ||
364 | + subMeshCount: 0 | ||
365 | + m_StaticBatchRoot: {fileID: 0} | ||
366 | + m_ProbeAnchor: {fileID: 0} | ||
367 | + m_LightProbeVolumeOverride: {fileID: 0} | ||
368 | + m_ScaleInLightmap: 1 | ||
369 | + m_ReceiveGI: 1 | ||
370 | + m_PreserveUVs: 0 | ||
371 | + m_IgnoreNormalsForChartDetection: 0 | ||
372 | + m_ImportantGI: 0 | ||
373 | + m_StitchLightmapSeams: 1 | ||
374 | + m_SelectedEditorRenderState: 3 | ||
375 | + m_MinimumChartSize: 4 | ||
376 | + m_AutoUVMaxDistance: 0.5 | ||
377 | + m_AutoUVMaxAngle: 89 | ||
378 | + m_LightmapParameters: {fileID: 0} | ||
379 | + m_SortingLayerID: 0 | ||
380 | + m_SortingLayer: 0 | ||
381 | + m_SortingOrder: 0 | ||
382 | +--- !u!33 &485542715 | ||
383 | +MeshFilter: | ||
384 | + m_ObjectHideFlags: 0 | ||
385 | + m_CorrespondingSourceObject: {fileID: 0} | ||
386 | + m_PrefabInstance: {fileID: 0} | ||
387 | + m_PrefabAsset: {fileID: 0} | ||
388 | + m_GameObject: {fileID: 485542712} | ||
389 | + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} | ||
390 | +--- !u!4 &485542716 | ||
391 | +Transform: | ||
392 | + m_ObjectHideFlags: 0 | ||
393 | + m_CorrespondingSourceObject: {fileID: 0} | ||
394 | + m_PrefabInstance: {fileID: 0} | ||
395 | + m_PrefabAsset: {fileID: 0} | ||
396 | + m_GameObject: {fileID: 485542712} | ||
397 | + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | ||
398 | + m_LocalPosition: {x: 0, y: 0, z: 210} | ||
399 | + m_LocalScale: {x: 100, y: 100, z: 100} | ||
400 | + m_Children: [] | ||
401 | + m_Father: {fileID: 0} | ||
402 | + m_RootOrder: 8 | ||
403 | + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||
404 | +--- !u!114 &485542717 | ||
405 | +MonoBehaviour: | ||
406 | + m_ObjectHideFlags: 0 | ||
407 | + m_CorrespondingSourceObject: {fileID: 0} | ||
408 | + m_PrefabInstance: {fileID: 0} | ||
409 | + m_PrefabAsset: {fileID: 0} | ||
410 | + m_GameObject: {fileID: 485542712} | ||
411 | + m_Enabled: 1 | ||
412 | + m_EditorHideFlags: 0 | ||
413 | + m_Script: {fileID: 11500000, guid: 4381b5042657b804ba0695ce7a8c7128, type: 3} | ||
414 | + m_Name: | ||
415 | + m_EditorClassIdentifier: | ||
416 | + BodySrcManager: {fileID: 0} | ||
417 | + TrackedJoint: 11 | ||
418 | + multiplier: 10 | ||
309 | --- !u!1 &566176846 | 419 | --- !u!1 &566176846 |
310 | GameObject: | 420 | GameObject: |
311 | m_ObjectHideFlags: 0 | 421 | m_ObjectHideFlags: 0 |
... | @@ -788,99 +898,6 @@ MonoBehaviour: | ... | @@ -788,99 +898,6 @@ MonoBehaviour: |
788 | m_StringArgument: | 898 | m_StringArgument: |
789 | m_BoolArgument: 0 | 899 | m_BoolArgument: 0 |
790 | m_CallState: 2 | 900 | m_CallState: 2 |
791 | ---- !u!1 &1942547945 | ||
792 | -GameObject: | ||
793 | - m_ObjectHideFlags: 0 | ||
794 | - m_CorrespondingSourceObject: {fileID: 0} | ||
795 | - m_PrefabInstance: {fileID: 0} | ||
796 | - m_PrefabAsset: {fileID: 0} | ||
797 | - serializedVersion: 6 | ||
798 | - m_Component: | ||
799 | - - component: {fileID: 1942547949} | ||
800 | - - component: {fileID: 1942547948} | ||
801 | - - component: {fileID: 1942547947} | ||
802 | - - component: {fileID: 1942547946} | ||
803 | - m_Layer: 0 | ||
804 | - m_Name: Cube (1) | ||
805 | - m_TagString: Untagged | ||
806 | - m_Icon: {fileID: 0} | ||
807 | - m_NavMeshLayer: 0 | ||
808 | - m_StaticEditorFlags: 0 | ||
809 | - m_IsActive: 1 | ||
810 | ---- !u!65 &1942547946 | ||
811 | -BoxCollider: | ||
812 | - m_ObjectHideFlags: 0 | ||
813 | - m_CorrespondingSourceObject: {fileID: 0} | ||
814 | - m_PrefabInstance: {fileID: 0} | ||
815 | - m_PrefabAsset: {fileID: 0} | ||
816 | - m_GameObject: {fileID: 1942547945} | ||
817 | - m_Material: {fileID: 0} | ||
818 | - m_IsTrigger: 0 | ||
819 | - m_Enabled: 1 | ||
820 | - serializedVersion: 2 | ||
821 | - m_Size: {x: 1, y: 1, z: 1} | ||
822 | - m_Center: {x: 0, y: 0, z: 0} | ||
823 | ---- !u!23 &1942547947 | ||
824 | -MeshRenderer: | ||
825 | - m_ObjectHideFlags: 0 | ||
826 | - m_CorrespondingSourceObject: {fileID: 0} | ||
827 | - m_PrefabInstance: {fileID: 0} | ||
828 | - m_PrefabAsset: {fileID: 0} | ||
829 | - m_GameObject: {fileID: 1942547945} | ||
830 | - m_Enabled: 1 | ||
831 | - m_CastShadows: 1 | ||
832 | - m_ReceiveShadows: 1 | ||
833 | - m_DynamicOccludee: 1 | ||
834 | - m_MotionVectors: 1 | ||
835 | - m_LightProbeUsage: 1 | ||
836 | - m_ReflectionProbeUsage: 1 | ||
837 | - m_RayTracingMode: 2 | ||
838 | - m_RenderingLayerMask: 1 | ||
839 | - m_RendererPriority: 0 | ||
840 | - m_Materials: | ||
841 | - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} | ||
842 | - m_StaticBatchInfo: | ||
843 | - firstSubMesh: 0 | ||
844 | - subMeshCount: 0 | ||
845 | - m_StaticBatchRoot: {fileID: 0} | ||
846 | - m_ProbeAnchor: {fileID: 0} | ||
847 | - m_LightProbeVolumeOverride: {fileID: 0} | ||
848 | - m_ScaleInLightmap: 1 | ||
849 | - m_ReceiveGI: 1 | ||
850 | - m_PreserveUVs: 0 | ||
851 | - m_IgnoreNormalsForChartDetection: 0 | ||
852 | - m_ImportantGI: 0 | ||
853 | - m_StitchLightmapSeams: 1 | ||
854 | - m_SelectedEditorRenderState: 3 | ||
855 | - m_MinimumChartSize: 4 | ||
856 | - m_AutoUVMaxDistance: 0.5 | ||
857 | - m_AutoUVMaxAngle: 89 | ||
858 | - m_LightmapParameters: {fileID: 0} | ||
859 | - m_SortingLayerID: 0 | ||
860 | - m_SortingLayer: 0 | ||
861 | - m_SortingOrder: 0 | ||
862 | ---- !u!33 &1942547948 | ||
863 | -MeshFilter: | ||
864 | - m_ObjectHideFlags: 0 | ||
865 | - m_CorrespondingSourceObject: {fileID: 0} | ||
866 | - m_PrefabInstance: {fileID: 0} | ||
867 | - m_PrefabAsset: {fileID: 0} | ||
868 | - m_GameObject: {fileID: 1942547945} | ||
869 | - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} | ||
870 | ---- !u!4 &1942547949 | ||
871 | -Transform: | ||
872 | - m_ObjectHideFlags: 0 | ||
873 | - m_CorrespondingSourceObject: {fileID: 0} | ||
874 | - m_PrefabInstance: {fileID: 0} | ||
875 | - m_PrefabAsset: {fileID: 0} | ||
876 | - m_GameObject: {fileID: 1942547945} | ||
877 | - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | ||
878 | - m_LocalPosition: {x: 0, y: -30, z: 100} | ||
879 | - m_LocalScale: {x: 10, y: 10, z: 1} | ||
880 | - m_Children: [] | ||
881 | - m_Father: {fileID: 0} | ||
882 | - m_RootOrder: 8 | ||
883 | - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||
884 | --- !u!1 &1956986139 | 901 | --- !u!1 &1956986139 |
885 | GameObject: | 902 | GameObject: |
886 | m_ObjectHideFlags: 0 | 903 | m_ObjectHideFlags: 0 |
... | @@ -1036,55 +1053,9 @@ Transform: | ... | @@ -1036,55 +1053,9 @@ Transform: |
1036 | m_PrefabAsset: {fileID: 0} | 1053 | m_PrefabAsset: {fileID: 0} |
1037 | m_GameObject: {fileID: 2022046321} | 1054 | m_GameObject: {fileID: 2022046321} |
1038 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | 1055 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
1039 | - m_LocalPosition: {x: 0, y: -4.5, z: -13.2} | 1056 | + m_LocalPosition: {x: 170, y: 17, z: -13.2} |
1040 | m_LocalScale: {x: 1, y: 1, z: 1} | 1057 | m_LocalScale: {x: 1, y: 1, z: 1} |
1041 | m_Children: [] | 1058 | m_Children: [] |
1042 | m_Father: {fileID: 0} | 1059 | m_Father: {fileID: 0} |
1043 | m_RootOrder: 0 | 1060 | m_RootOrder: 0 |
1044 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | 1061 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
1045 | ---- !u!1 &2129455372 | ||
1046 | -GameObject: | ||
1047 | - m_ObjectHideFlags: 0 | ||
1048 | - m_CorrespondingSourceObject: {fileID: 0} | ||
1049 | - m_PrefabInstance: {fileID: 0} | ||
1050 | - m_PrefabAsset: {fileID: 0} | ||
1051 | - serializedVersion: 6 | ||
1052 | - m_Component: | ||
1053 | - - component: {fileID: 2129455374} | ||
1054 | - - component: {fileID: 2129455373} | ||
1055 | - m_Layer: 0 | ||
1056 | - m_Name: GameObject | ||
1057 | - m_TagString: Untagged | ||
1058 | - m_Icon: {fileID: 0} | ||
1059 | - m_NavMeshLayer: 0 | ||
1060 | - m_StaticEditorFlags: 0 | ||
1061 | - m_IsActive: 1 | ||
1062 | ---- !u!114 &2129455373 | ||
1063 | -MonoBehaviour: | ||
1064 | - m_ObjectHideFlags: 0 | ||
1065 | - m_CorrespondingSourceObject: {fileID: 0} | ||
1066 | - m_PrefabInstance: {fileID: 0} | ||
1067 | - m_PrefabAsset: {fileID: 0} | ||
1068 | - m_GameObject: {fileID: 2129455372} | ||
1069 | - m_Enabled: 1 | ||
1070 | - m_EditorHideFlags: 0 | ||
1071 | - m_Script: {fileID: 11500000, guid: 4381b5042657b804ba0695ce7a8c7128, type: 3} | ||
1072 | - m_Name: | ||
1073 | - m_EditorClassIdentifier: | ||
1074 | - BodySrcManager: {fileID: 1942547945} | ||
1075 | - TrackedJoint: 7 | ||
1076 | - multiplier: 10 | ||
1077 | ---- !u!4 &2129455374 | ||
1078 | -Transform: | ||
1079 | - m_ObjectHideFlags: 0 | ||
1080 | - m_CorrespondingSourceObject: {fileID: 0} | ||
1081 | - m_PrefabInstance: {fileID: 0} | ||
1082 | - m_PrefabAsset: {fileID: 0} | ||
1083 | - m_GameObject: {fileID: 2129455372} | ||
1084 | - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | ||
1085 | - m_LocalPosition: {x: 296, y: 148, z: 0} | ||
1086 | - m_LocalScale: {x: 1, y: 1, z: 1} | ||
1087 | - m_Children: [] | ||
1088 | - m_Father: {fileID: 0} | ||
1089 | - m_RootOrder: 9 | ||
1090 | - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ... | ... |
sourcecode/capstone/Assets/texture.meta
0 → 100644
1 | +%YAML 1.1 | ||
2 | +%TAG !u! tag:unity3d.com,2011: | ||
3 | +--- !u!21 &2100000 | ||
4 | +Material: | ||
5 | + serializedVersion: 6 | ||
6 | + m_ObjectHideFlags: 0 | ||
7 | + m_CorrespondingSourceObject: {fileID: 0} | ||
8 | + m_PrefabInstance: {fileID: 0} | ||
9 | + m_PrefabAsset: {fileID: 0} | ||
10 | + m_Name: idea | ||
11 | + m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} | ||
12 | + m_ShaderKeywords: | ||
13 | + m_LightmapFlags: 4 | ||
14 | + m_EnableInstancingVariants: 0 | ||
15 | + m_DoubleSidedGI: 0 | ||
16 | + m_CustomRenderQueue: -1 | ||
17 | + stringTagMap: {} | ||
18 | + disabledShaderPasses: [] | ||
19 | + m_SavedProperties: | ||
20 | + serializedVersion: 3 | ||
21 | + m_TexEnvs: | ||
22 | + - _BumpMap: | ||
23 | + m_Texture: {fileID: 0} | ||
24 | + m_Scale: {x: 1, y: 1} | ||
25 | + m_Offset: {x: 0, y: 0} | ||
26 | + - _DetailAlbedoMap: | ||
27 | + m_Texture: {fileID: 0} | ||
28 | + m_Scale: {x: 1, y: 1} | ||
29 | + m_Offset: {x: 0, y: 0} | ||
30 | + - _DetailMask: | ||
31 | + m_Texture: {fileID: 0} | ||
32 | + m_Scale: {x: 1, y: 1} | ||
33 | + m_Offset: {x: 0, y: 0} | ||
34 | + - _DetailNormalMap: | ||
35 | + m_Texture: {fileID: 0} | ||
36 | + m_Scale: {x: 1, y: 1} | ||
37 | + m_Offset: {x: 0, y: 0} | ||
38 | + - _EmissionMap: | ||
39 | + m_Texture: {fileID: 0} | ||
40 | + m_Scale: {x: 1, y: 1} | ||
41 | + m_Offset: {x: 0, y: 0} | ||
42 | + - _MainTex: | ||
43 | + m_Texture: {fileID: 2800000, guid: 2b8ee8b73c177704fa4d716172354ee1, type: 3} | ||
44 | + m_Scale: {x: 1, y: 1} | ||
45 | + m_Offset: {x: 0, y: 0} | ||
46 | + - _MetallicGlossMap: | ||
47 | + m_Texture: {fileID: 0} | ||
48 | + m_Scale: {x: 1, y: 1} | ||
49 | + m_Offset: {x: 0, y: 0} | ||
50 | + - _OcclusionMap: | ||
51 | + m_Texture: {fileID: 0} | ||
52 | + m_Scale: {x: 1, y: 1} | ||
53 | + m_Offset: {x: 0, y: 0} | ||
54 | + - _ParallaxMap: | ||
55 | + m_Texture: {fileID: 0} | ||
56 | + m_Scale: {x: 1, y: 1} | ||
57 | + m_Offset: {x: 0, y: 0} | ||
58 | + m_Floats: | ||
59 | + - _BumpScale: 1 | ||
60 | + - _Cutoff: 0.5 | ||
61 | + - _DetailNormalMapScale: 1 | ||
62 | + - _DstBlend: 0 | ||
63 | + - _GlossMapScale: 1 | ||
64 | + - _Glossiness: 0.5 | ||
65 | + - _GlossyReflections: 1 | ||
66 | + - _Metallic: 0 | ||
67 | + - _Mode: 0 | ||
68 | + - _OcclusionStrength: 1 | ||
69 | + - _Parallax: 0.02 | ||
70 | + - _SmoothnessTextureChannel: 0 | ||
71 | + - _SpecularHighlights: 1 | ||
72 | + - _SrcBlend: 1 | ||
73 | + - _UVSec: 0 | ||
74 | + - _ZWrite: 1 | ||
75 | + m_Colors: | ||
76 | + - _Color: {r: 1, g: 1, b: 1, a: 1} | ||
77 | + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
sourcecode/capstone/Assets/texture/idea.png
0 → 100644

19 KB
1 | +fileFormatVersion: 2 | ||
2 | +guid: 2b8ee8b73c177704fa4d716172354ee1 | ||
3 | +TextureImporter: | ||
4 | + internalIDToNameTable: [] | ||
5 | + externalObjects: {} | ||
6 | + serializedVersion: 11 | ||
7 | + mipmaps: | ||
8 | + mipMapMode: 0 | ||
9 | + enableMipMap: 1 | ||
10 | + sRGBTexture: 1 | ||
11 | + linearTexture: 0 | ||
12 | + fadeOut: 0 | ||
13 | + borderMipMap: 0 | ||
14 | + mipMapsPreserveCoverage: 0 | ||
15 | + alphaTestReferenceValue: 0.5 | ||
16 | + mipMapFadeDistanceStart: 1 | ||
17 | + mipMapFadeDistanceEnd: 3 | ||
18 | + bumpmap: | ||
19 | + convertToNormalMap: 0 | ||
20 | + externalNormalMap: 0 | ||
21 | + heightScale: 0.25 | ||
22 | + normalMapFilter: 0 | ||
23 | + isReadable: 0 | ||
24 | + streamingMipmaps: 0 | ||
25 | + streamingMipmapsPriority: 0 | ||
26 | + grayScaleToAlpha: 0 | ||
27 | + generateCubemap: 6 | ||
28 | + cubemapConvolution: 0 | ||
29 | + seamlessCubemap: 0 | ||
30 | + textureFormat: 1 | ||
31 | + maxTextureSize: 2048 | ||
32 | + textureSettings: | ||
33 | + serializedVersion: 2 | ||
34 | + filterMode: -1 | ||
35 | + aniso: -1 | ||
36 | + mipBias: -100 | ||
37 | + wrapU: -1 | ||
38 | + wrapV: -1 | ||
39 | + wrapW: -1 | ||
40 | + nPOTScale: 1 | ||
41 | + lightmap: 0 | ||
42 | + compressionQuality: 50 | ||
43 | + spriteMode: 0 | ||
44 | + spriteExtrude: 1 | ||
45 | + spriteMeshType: 1 | ||
46 | + alignment: 0 | ||
47 | + spritePivot: {x: 0.5, y: 0.5} | ||
48 | + spritePixelsToUnits: 100 | ||
49 | + spriteBorder: {x: 0, y: 0, z: 0, w: 0} | ||
50 | + spriteGenerateFallbackPhysicsShape: 1 | ||
51 | + alphaUsage: 1 | ||
52 | + alphaIsTransparency: 0 | ||
53 | + spriteTessellationDetail: -1 | ||
54 | + textureType: 0 | ||
55 | + textureShape: 1 | ||
56 | + singleChannelComponent: 0 | ||
57 | + maxTextureSizeSet: 0 | ||
58 | + compressionQualitySet: 0 | ||
59 | + textureFormatSet: 0 | ||
60 | + applyGammaDecoding: 0 | ||
61 | + platformSettings: | ||
62 | + - serializedVersion: 3 | ||
63 | + buildTarget: DefaultTexturePlatform | ||
64 | + maxTextureSize: 2048 | ||
65 | + resizeAlgorithm: 0 | ||
66 | + textureFormat: -1 | ||
67 | + textureCompression: 1 | ||
68 | + compressionQuality: 50 | ||
69 | + crunchedCompression: 0 | ||
70 | + allowsAlphaSplitting: 0 | ||
71 | + overridden: 0 | ||
72 | + androidETC2FallbackOverride: 0 | ||
73 | + forceMaximumCompressionQuality_BC6H_BC7: 0 | ||
74 | + spriteSheet: | ||
75 | + serializedVersion: 2 | ||
76 | + sprites: [] | ||
77 | + outline: [] | ||
78 | + physicsShape: [] | ||
79 | + bones: [] | ||
80 | + spriteID: | ||
81 | + internalID: 0 | ||
82 | + vertices: [] | ||
83 | + indices: | ||
84 | + edges: [] | ||
85 | + weights: [] | ||
86 | + secondaryTextures: [] | ||
87 | + spritePackingTag: | ||
88 | + pSDRemoveMatte: 0 | ||
89 | + pSDShowRemoveMatteOption: 0 | ||
90 | + userData: | ||
91 | + assetBundleName: | ||
92 | + assetBundleVariant: |
-
Please register or login to post a comment