lvjincheng 4 lat temu
rodzic
commit
ac04db101f

+ 43 - 39
Assets/ArtAsset/Hunter/Models/Wolf/Wolf.prefab

@@ -31,7 +31,7 @@ Transform:
   - {fileID: 7967965294219341586}
   m_Father: {fileID: 558201766735363873}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 3.2406764, y: -14.224485, z: 4.0966673}
+  m_LocalEulerAnglesHint: {x: -0.0013745849, y: -27.01209, z: 0.011894988}
 --- !u!1 &218421760779527165
 GameObject:
   m_ObjectHideFlags: 0
@@ -63,7 +63,7 @@ Transform:
   - {fileID: 5603734487719944504}
   m_Father: {fileID: 2567343699035515704}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -75.62195, y: 83.89816, z: -91.53396}
+  m_LocalEulerAnglesHint: {x: -22.6053, y: -0.43150476, z: 94.53267}
 --- !u!1 &321391842017849650
 GameObject:
   m_ObjectHideFlags: 0
@@ -190,7 +190,7 @@ Transform:
   m_Children: []
   m_Father: {fileID: 6846311268341486814}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
+  m_LocalEulerAnglesHint: {x: 87.93711, y: 97.85416, z: 95.51249}
 --- !u!1 &588701488360389244
 GameObject:
   m_ObjectHideFlags: 0
@@ -222,7 +222,7 @@ Transform:
   - {fileID: 958590213009190063}
   m_Father: {fileID: 2030318952453551157}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -73.02142, y: 15.584068, z: 72.163956}
+  m_LocalEulerAnglesHint: {x: -27.802364, y: 1.7102886, z: 82.220795}
 --- !u!1 &819321933803396724
 GameObject:
   m_ObjectHideFlags: 0
@@ -253,7 +253,7 @@ Transform:
   - {fileID: 3876936355176751029}
   m_Father: {fileID: 3771017730686169587}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -3.3843975, y: -4.0544434, z: 6.893345}
+  m_LocalEulerAnglesHint: {x: 0.1504431, y: -65.900406, z: 0.084897995}
 --- !u!1 &1012358134123267117
 GameObject:
   m_ObjectHideFlags: 0
@@ -285,7 +285,7 @@ Transform:
   - {fileID: 4575184164967556986}
   m_Father: {fileID: 2030318952453551157}
   m_RootOrder: 1
-  m_LocalEulerAnglesHint: {x: -61.007175, y: 21.164696, z: 65.38675}
+  m_LocalEulerAnglesHint: {x: -13.590681, y: 0.61414194, z: 110.643036}
 --- !u!1 &1042032522328742682
 GameObject:
   m_ObjectHideFlags: 0
@@ -315,7 +315,7 @@ Transform:
   m_Children: []
   m_Father: {fileID: 8783074559455563367}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 6.213608, z: 0}
+  m_LocalEulerAnglesHint: {x: 0.055312414, y: 15.401499, z: -10.0711975}
 --- !u!1 &1072260197493228297
 GameObject:
   m_ObjectHideFlags: 0
@@ -423,6 +423,9 @@ MonoBehaviour:
   materials:
   - {fileID: 2100000, guid: 2bf5c8f02e98cc94eb6b43d7e20f0228, type: 2}
   - {fileID: 2100000, guid: 5070ee3c30b7f2f42a9f29ae31c97306, type: 2}
+  outlineMaterials:
+  - {fileID: 2100000, guid: 3986485d6bb02d9418a053f90c337bab, type: 2}
+  - {fileID: 2100000, guid: bdf0345332cbec142a3f6e91c1c4c985, type: 2}
   state:
     hp: 1
     staying: 1
@@ -430,6 +433,7 @@ MonoBehaviour:
     moveSlowly: 0
     moveQuickly: 0
     attacking: 0
+    ambushing: 0
     attackA: 0
     attackB: 0
     dead: 0
@@ -466,7 +470,7 @@ Transform:
   - {fileID: 8783074559455563367}
   m_Father: {fileID: 6875858486524859588}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -0.64498234, y: -2.3305998, z: -15.777585}
+  m_LocalEulerAnglesHint: {x: 7.6357374, y: 7.2586317, z: -39.47364}
 --- !u!1 &1489069609256422281
 GameObject:
   m_ObjectHideFlags: 0
@@ -497,7 +501,7 @@ Transform:
   - {fileID: 2853460732962369058}
   m_Father: {fileID: 380960209822553400}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: -19.847689, z: 90}
+  m_LocalEulerAnglesHint: {x: 0, y: -7.523245, z: 90}
 --- !u!1 &1582373366179364563
 GameObject:
   m_ObjectHideFlags: 0
@@ -625,7 +629,7 @@ Transform:
   - {fileID: 375651901454110237}
   m_Father: {fileID: 8297343085636411975}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -3.8525333, y: -9.121128, z: -22.708586}
+  m_LocalEulerAnglesHint: {x: 8.731278, y: 13.909331, z: -41.683895}
 --- !u!1 &1715143664618657372
 GameObject:
   m_ObjectHideFlags: 0
@@ -656,7 +660,7 @@ Transform:
   - {fileID: 3136607609595749546}
   m_Father: {fileID: 989574407193953930}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -9.477497e-15, y: 65.46002, z: 2.7426971e-14}
+  m_LocalEulerAnglesHint: {x: 10.458541, y: 108.090965, z: -17.142294}
 --- !u!1 &2203640093634500014
 GameObject:
   m_ObjectHideFlags: 0
@@ -686,7 +690,7 @@ Transform:
   m_Children: []
   m_Father: {fileID: 2534254211568435486}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_LocalEulerAnglesHint: {x: 0, y: -0.19896002, z: 0}
 --- !u!1 &2565492706515628858
 GameObject:
   m_ObjectHideFlags: 0
@@ -720,7 +724,7 @@ Transform:
   - {fileID: 4601721854908258401}
   m_Father: {fileID: 380960209822553400}
   m_RootOrder: 1
-  m_LocalEulerAnglesHint: {x: 0, y: -19.824158, z: 90}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
 --- !u!1 &2617033783904217944
 GameObject:
   m_ObjectHideFlags: 0
@@ -850,7 +854,7 @@ Transform:
   - {fileID: 2567343699035515704}
   m_Father: {fileID: 3995856820147035210}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -0.084748015, y: 171.71815, z: -178.7565}
+  m_LocalEulerAnglesHint: {x: 0.009555255, y: -174.14844, z: -179.99051}
 --- !u!1 &2769261200269615166
 GameObject:
   m_ObjectHideFlags: 0
@@ -912,7 +916,7 @@ Transform:
   - {fileID: 8560397785824734001}
   m_Father: {fileID: 930257283739217433}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -0.68839884, y: -172.51651, z: 148.40958}
+  m_LocalEulerAnglesHint: {x: 0.0013025154, y: -169.13106, z: 179.9956}
 --- !u!1 &3031081852413448490
 GameObject:
   m_ObjectHideFlags: 0
@@ -943,7 +947,7 @@ Transform:
   - {fileID: 2757890836980900410}
   m_Father: {fileID: 490403256310016522}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0.7665156, y: -17.295946, z: 7.4370856}
+  m_LocalEulerAnglesHint: {x: 16.836594, y: -20.528503, z: -6.4290733}
 --- !u!1 &3031230800276695596
 GameObject:
   m_ObjectHideFlags: 0
@@ -974,7 +978,7 @@ Transform:
   - {fileID: 930257283739217433}
   m_Father: {fileID: 2030318952453551157}
   m_RootOrder: 2
-  m_LocalEulerAnglesHint: {x: 74.39065, y: -174.01717, z: 99.22995}
+  m_LocalEulerAnglesHint: {x: 85.63349, y: -6.1932526, z: -83.8559}
 --- !u!1 &3634073441378270113
 GameObject:
   m_ObjectHideFlags: 0
@@ -1005,7 +1009,7 @@ Transform:
   - {fileID: 7143239285814756613}
   m_Father: {fileID: 75575079398899242}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 2.8166258e-14, y: -108.629486, z: -8.552378e-15}
+  m_LocalEulerAnglesHint: {x: 2.5436184, y: -94.07363, z: -2.521618}
 --- !u!1 &4191306748355393124
 GameObject:
   m_ObjectHideFlags: 0
@@ -1036,7 +1040,7 @@ Transform:
   - {fileID: 989574407193953930}
   m_Father: {fileID: 8560397785824734001}
   m_RootOrder: 2
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
+  m_LocalEulerAnglesHint: {x: 0, y: -14.294801, z: 90}
 --- !u!1 &4372582416549647858
 GameObject:
   m_ObjectHideFlags: 0
@@ -1069,7 +1073,7 @@ Transform:
   - {fileID: 6676215887978563229}
   m_Father: {fileID: 6355865331423626279}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0.2879128, y: -13.33555, z: 1.320806}
+  m_LocalEulerAnglesHint: {x: 0.005605179, y: -9.825665, z: -2.91047e-11}
 --- !u!1 &4379729280986780867
 GameObject:
   m_ObjectHideFlags: 0
@@ -1099,7 +1103,7 @@ Transform:
   m_Children: []
   m_Father: {fileID: 5652380618908824491}
   m_RootOrder: 2
-  m_LocalEulerAnglesHint: {x: 90, y: -180, z: 0}
+  m_LocalEulerAnglesHint: {x: 89.87179, y: 89.9997, z: -90}
 --- !u!1 &4452692840554464743
 GameObject:
   m_ObjectHideFlags: 0
@@ -1130,7 +1134,7 @@ Transform:
   - {fileID: 6027533752399302623}
   m_Father: {fileID: 1414112475958559674}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -2.5132558, y: 87.126945, z: -1.9611313}
+  m_LocalEulerAnglesHint: {x: -6.34684, y: 48.070168, z: 5.410881}
 --- !u!1 &4666854002104261061
 GameObject:
   m_ObjectHideFlags: 0
@@ -1191,7 +1195,7 @@ Transform:
   - {fileID: 380960209822553400}
   m_Father: {fileID: 3384051671719322869}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -0.0034702495, y: 15.176142, z: 0.13788974}
+  m_LocalEulerAnglesHint: {x: 0.0071778554, y: 1.7395792, z: -0.0141352}
 --- !u!1 &5040395722574569326
 GameObject:
   m_ObjectHideFlags: 0
@@ -1222,7 +1226,7 @@ Transform:
   - {fileID: 1864813602043715524}
   m_Father: {fileID: 2408081711693885195}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0.000014935881, y: 78.169266, z: -0.0000050495387}
+  m_LocalEulerAnglesHint: {x: 0.000009577129, y: 58.180344, z: -0.0000025336276}
 --- !u!1 &5246107878665718578
 GameObject:
   m_ObjectHideFlags: 0
@@ -1379,7 +1383,7 @@ Transform:
   - {fileID: 3439711291403019278}
   m_Father: {fileID: 6818265458840364140}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0.000000030561665, y: 89.60047, z: 0.000000027699492}
+  m_LocalEulerAnglesHint: {x: 3.5494333e-17, y: 89.99981, z: 2.0817594e-11}
 --- !u!1 &6057685503136340998
 GameObject:
   m_ObjectHideFlags: 0
@@ -1410,7 +1414,7 @@ Transform:
   - {fileID: 8792532742584446873}
   m_Father: {fileID: 7143239285814756613}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -0.2738943, y: -55.36316, z: -0.62241656}
+  m_LocalEulerAnglesHint: {x: -4.571548, y: -39.119537, z: 5.0236235}
 --- !u!1 &6204070240649906986
 GameObject:
   m_ObjectHideFlags: 0
@@ -1441,7 +1445,7 @@ Transform:
   - {fileID: 1104759332648110314}
   m_Father: {fileID: 8560397785824734001}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
+  m_LocalEulerAnglesHint: {x: 0, y: 3.1791277, z: 90}
 --- !u!1 &6272197213608500909
 GameObject:
   m_ObjectHideFlags: 0
@@ -1475,7 +1479,7 @@ Transform:
   - {fileID: 6808400509316461507}
   m_Father: {fileID: 443748019533472639}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -0.42171615, y: 4.8251066, z: 4.981874}
+  m_LocalEulerAnglesHint: {x: 3.9451904, y: 0, z: 0}
 --- !u!1 &6636424657846832857
 GameObject:
   m_ObjectHideFlags: 0
@@ -1506,7 +1510,7 @@ Transform:
   - {fileID: 4917003476967189913}
   m_Father: {fileID: 3136607609595749546}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -0.00000043756847, y: 29.267704, z: 0.0000007739741}
+  m_LocalEulerAnglesHint: {x: 1.6190469, y: 22.059074, z: -0.14365888}
 --- !u!1 &6723865293649011711
 GameObject:
   m_ObjectHideFlags: 0
@@ -1537,7 +1541,7 @@ Transform:
   - {fileID: 2534254211568435486}
   m_Father: {fileID: 1977752020122236903}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -4.1871977, y: -75.8681, z: -21.226147}
+  m_LocalEulerAnglesHint: {x: -0.08009341, y: -54.90694, z: -0.08272807}
 --- !u!1 &6726532542965972186
 GameObject:
   m_ObjectHideFlags: 0
@@ -1725,7 +1729,7 @@ Transform:
   - {fileID: 418988514317044679}
   m_Father: {fileID: 2030318952453551157}
   m_RootOrder: 3
-  m_LocalEulerAnglesHint: {x: -4.263901, y: -83.499855, z: 33.14037}
+  m_LocalEulerAnglesHint: {x: 0, y: -90, z: 25.965122}
 --- !u!1 &7647079505012546823
 GameObject:
   m_ObjectHideFlags: 0
@@ -1756,7 +1760,7 @@ Transform:
   - {fileID: 6875858486524859588}
   m_Father: {fileID: 6808400509316461507}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0.6388259, y: -4.826091, z: 7.7266784}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &7679269099820132530
 GameObject:
   m_ObjectHideFlags: 0
@@ -1787,7 +1791,7 @@ Transform:
   - {fileID: 6818265458840364140}
   m_Father: {fileID: 2710549291486463239}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -4.4761977, y: 64.29054, z: -2.1017456}
+  m_LocalEulerAnglesHint: {x: -9.029596, y: 85.31299, z: -14.539618}
 --- !u!1 &7708498069378051794
 GameObject:
   m_ObjectHideFlags: 0
@@ -1818,7 +1822,7 @@ Transform:
   - {fileID: 4551172697731740527}
   m_Father: {fileID: 6027533752399302623}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0.0000028042873, y: 93.5878, z: -0.0000004039394}
+  m_LocalEulerAnglesHint: {x: -7.1931664e-14, y: 89.99987, z: 0}
 --- !u!1 &7708941811686432335
 GameObject:
   m_ObjectHideFlags: 0
@@ -1976,7 +1980,7 @@ Transform:
   - {fileID: 8297343085636411975}
   m_Father: {fileID: 418988514317044679}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -0.18091679, y: -0.62274456, z: -14.555543}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &8049664190480976343
 GameObject:
   m_ObjectHideFlags: 0
@@ -2164,7 +2168,7 @@ Transform:
   - {fileID: 2408081711693885195}
   m_Father: {fileID: 1104759332648110314}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -7.263783e-15, y: 121.82717, z: 1.12523936e-13}
+  m_LocalEulerAnglesHint: {x: -12.375068, y: 88.26931, z: 7.0717}
 --- !u!1 &8915854522702092623
 GameObject:
   m_ObjectHideFlags: 0
@@ -2195,7 +2199,7 @@ Transform:
   - {fileID: 6355865331423626279}
   m_Father: {fileID: 8560397785824734001}
   m_RootOrder: 1
-  m_LocalEulerAnglesHint: {x: -0.36658862, y: -77.75971, z: -1.4171386}
+  m_LocalEulerAnglesHint: {x: 0.0063302424, y: -98.14032, z: -0.0009030804}
 --- !u!1 &9070473514196718807
 GameObject:
   m_ObjectHideFlags: 0
@@ -2227,7 +2231,7 @@ Transform:
   - {fileID: 5028286167410419971}
   m_Father: {fileID: 8394353879754332157}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: -28.271439, y: 23.238806, z: 84.79086}
+  m_LocalEulerAnglesHint: {x: -28.920643, y: -10.808742, z: 89.8714}
 --- !u!1 &9148130427597297592
 GameObject:
   m_ObjectHideFlags: 0
@@ -2258,4 +2262,4 @@ Transform:
   - {fileID: 490403256310016522}
   m_Father: {fileID: 1017966101291604646}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 2.2149896e-14, y: -110.951294, z: -3.8099596e-14}
+  m_LocalEulerAnglesHint: {x: -3.2163079, y: -84.539925, z: 11.702826}

+ 1 - 1
Assets/ArtAsset/Hunter/StylizedNatureBundle/Materials/M_SNB_Cloud.mat

@@ -102,5 +102,5 @@ Material:
     - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
     - _ReflectColor: {r: 1, g: 1, b: 1, a: 0.5}
     - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
-    - _TintColor: {r: 0.111249544, g: 0.14543821, b: 0.18867922, a: 0.019607844}
+    - _TintColor: {r: 0.111249544, g: 0.14543821, b: 0.18867922, a: 0.039215688}
   m_BuildTextureStacks: []

+ 5 - 5
Assets/BowArrow/Scenes/GameChallengeScene/GameChallenge.unity

@@ -13915,7 +13915,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 400000, guid: f21aed30ae5fb9549956687f3bf010dd, type: 3}
       propertyPath: m_LocalScale.z
-      value: 2
+      value: 3
       objectReference: {fileID: 0}
     - target: {fileID: 400000, guid: f21aed30ae5fb9549956687f3bf010dd, type: 3}
       propertyPath: m_LocalPosition.x
@@ -13927,7 +13927,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 400000, guid: f21aed30ae5fb9549956687f3bf010dd, type: 3}
       propertyPath: m_LocalPosition.z
-      value: 135
+      value: 130
       objectReference: {fileID: 0}
     - target: {fileID: 400000, guid: f21aed30ae5fb9549956687f3bf010dd, type: 3}
       propertyPath: m_LocalRotation.w
@@ -20048,7 +20048,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
-  m_AnchoredPosition: {x: 29.264212, y: 0}
+  m_AnchoredPosition: {x: 29.118067, y: 0}
   m_SizeDelta: {x: 0, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1047161075
@@ -23368,7 +23368,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
-  m_AnchoredPosition: {x: 29.264212, y: 0}
+  m_AnchoredPosition: {x: 29.118067, y: 0}
   m_SizeDelta: {x: 0, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1203594963
@@ -41279,7 +41279,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
-  m_AnchoredPosition: {x: 48.528423, y: 0}
+  m_AnchoredPosition: {x: 48.236134, y: 0}
   m_SizeDelta: {x: 0, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &2142579590

+ 162 - 66
Assets/BowArrow/Scenes/GameChallengeScene/Wolf.cs

@@ -20,7 +20,6 @@ public class Wolf : TargetAnimal
     void Start()
     {
         initAniListener();
-        InitAutoStrategy();
         this.agent.avoidancePriority = avoidancePriority;
     }
     static int _avoidancePriority = 0;
@@ -42,12 +41,38 @@ public class Wolf : TargetAnimal
         }
         UpdateAutoStrategy();
         UpdateAction();
+        UpdateOutline();
     }
 
     //可选皮肤材质
     [SerializeField] Material[] materials;
+    [SerializeField] Material[] outlineMaterials;
     public void ChangeColorByType(int type) {
-        GetComponentInChildren<SkinnedMeshRenderer>().material = materials[type - 1];
+        if (skinnedMeshRenderer == null) skinnedMeshRenderer = GetComponentInChildren<SkinnedMeshRenderer>();
+        baseMaterial = materials[type - 1];
+        outlineMaterial = outlineMaterials[type - 1];
+        skinnedMeshRenderer.material = baseMaterial;
+    }
+
+    Material baseMaterial;
+    Material outlineMaterial;
+    SkinnedMeshRenderer skinnedMeshRenderer = null;
+    bool hasOutLine = false;
+    void UpdateOutline() {
+        Camera camera = Camera.main;
+        if (!camera) return;
+        float distance = Vector3.Distance(this.transform.position, camera.transform.position);
+        if (distance > 15) {
+            if (!hasOutLine) {
+                hasOutLine = true;
+                skinnedMeshRenderer.material = outlineMaterial;
+            }
+        } else {
+            if (hasOutLine) {
+                hasOutLine = false;
+                skinnedMeshRenderer.material = baseMaterial;
+            }
+        }
     }
 
     public override void OnHit(Arrow arrow, Vector3 hitPoint, string partName)
@@ -82,8 +107,16 @@ public class Wolf : TargetAnimal
     }
 
     void Hurt() {
-        state.lockingTarget = true;
-        state.ResetActionState();
+        if (!state.attacking) {
+            if (Random.value < 0.2f) {
+                CancelLockTarget();
+                state.ResetActionState();
+                state.lockingTarget = true;
+            } else {
+                CancelLockTarget(1);
+                RunAwayFromHunter();
+            } 
+        }
         AudioMgr.ins.PlayAnimalEffect("wolf_injured", AudioMgr.GetAudioSource(this.gameObject));
     }
     
@@ -110,24 +143,37 @@ public class Wolf : TargetAnimal
         return false;
     }
 
+    int lastAutoType;
     float willStayTime;
-    float willMoveTime;  
-    bool autoMoving = false;
-    float autoMovingTime;
     bool willAttack = false;
     bool hasRunAround = false;
     int needRunAroundCount = 0;
     bool hasRunToHunter = false;
+    //取消锁定状态
+    //cancelType==1时,表示触发逃跑
+    void CancelLockTarget(int cancelType = 0) {
+        if (!state.lockingTarget) return;
+        state.lockingTarget = false;
+        if (cancelType == 1) state.lockingTarget = true;
+        RandomWillStayTime();
+        willAttack = false;
+        hasRunAround = false;
+        if (cancelType == 1) hasRunAround = true;
+        needRunAroundCount = 0;
+        if (cancelType == 1) needRunAroundCount = 2;
+        hasRunToHunter = false;
+        if (cancelType == 1) hasRunToHunter = true;
+    }
     //帧更新逻辑-自动策略
     void UpdateAutoStrategy() {
         if (state.dead) return;
         if (state.lockingTarget) {
-            if (state.attacking) {
-                this.transform.LookAt(this.hunterPosition);
-            }
+            // if (state.attacking) {
+            //     this.transform.LookAt(this.hunterPosition);
+            // }
             if (!hasRunToHunter) {
                 hasRunToHunter = true;
-                RunToAttackHunter();
+                RunToAttackHunter(true);
                 willAttack = true;
                 return;
             }
@@ -140,58 +186,47 @@ public class Wolf : TargetAnimal
                 }
                 if (needRunAroundCount > 0) {
                     needRunAroundCount--;
-                    RunAroundHunter();
+                    RunAroundHunter(!hasRunAround);
                     hasRunAround = true;
                     return;
                 }
                 if (hasRunAround) {
                     hasRunAround = false;
-                    RunToAttackHunter();
+                    RunToAttackHunter(false);
                 }
                 willAttack = true;
                 return;
             }
             return;
         }
-        if (state.stayingTime > willStayTime) {
-            //退出stay
-            RandomWillStayTime();
-            //进入move
-            autoMoving = true;
-            MoveSlowlyInZPath();
-        } 
-        if (autoMoving) {
-            if (state.moving) {
-                autoMovingTime += Time.deltaTime;
-            } else if (autoMovingTime < willMoveTime) {
+        //以下为未锁定目标时的自动策略
+        if (state.staying) {
+            if (state.stayingTime > willStayTime) {
                 MoveSlowlyInZPath();
             }
-            if (autoMovingTime >= willMoveTime) {
-                //退出move
-                RandomWillMoveTime();
-                autoMoving = false;
-                autoMovingTime = 0;
-                //进入stay
+            return;
+        }
+        if (state.moving) {
+            lastAutoType = 2;
+        }
+        if (!state.staying && !state.moving) {
+            if (lastAutoType == 1 || lastAutoType == 0) {
+                MoveSlowlyInZPath();
+            } else {
+                RandomWillStayTime();
                 Stay();
             }
         }
     }
-    void InitAutoStrategy() {
-        this.willStayTime = 1f + Random.value * 2;
-        RandomWillMoveTime();
-    }
     void RandomWillStayTime() {
-        this.willStayTime = Random.value * 2 + 3;
-    }
-    void RandomWillMoveTime() {
-        this.willMoveTime = Random.value * 3 + 5;
+        // this.willStayTime = Random.value * 4 + 2;
+        this.willStayTime = 0;
     }
 
+    void LookAtHunter() {
+        this.transform.LookAt(hunterPosition);
+    }
 
-    //起跳点
-    Vector3 jumpPoint;
-    //落地点
-    Vector3 landPoint;
     //攻击
     void Attack() {
         state.ResetActionState();
@@ -199,19 +234,48 @@ public class Wolf : TargetAnimal
         curAnimIndex = -1; /*注意:这样可避免狼两次使用同一攻击动作而第二次无法播放的情况 */
         int hurtValue = 2;
         if (canAttackID == "A") {
-            state.attackA = true;
-            #region //起点和终点计算
-                jumpPoint = this.transform.position;
-                Vector3 hunterPos = hunterPosition;
-                hunterPos.y = jumpPoint.y;
-                Vector3 deltaPointer = jumpPoint - hunterPos;
-                landPoint = hunterPos + deltaPointer.normalized * 2f;
-            #endregion
-            Vector3 displace = landPoint - jumpPoint;
+            int avoidancePriority = this.agent.avoidancePriority;
             float baseoffset = this.agent.baseOffset;
+            Vector3 hunterPos = hunterPosition;
+            Vector3 jumpPoint = default; //起跳点
+            Vector3 landPoint = default; //落地点
+            Vector3 displace = default; //位移
             Sequence seq = DOTween.Sequence();
+            //伏击动作 + 转头
+            Quaternion ambushQuaStart = transform.rotation;
+            Vector3 rotateDir = hunterPos - transform.position; rotateDir.y = 0;
+            Quaternion ambushQuaEnd = Quaternion.FromToRotation(Vector3.forward, rotateDir);
+            this.agent.avoidancePriority = 0;
+            state.ambushRotating = true;
+            seq.Append(DOTween.To(() => 0f, value => {
+                transform.rotation = Quaternion.Lerp(ambushQuaStart, ambushQuaEnd, value);
+            }, 1f, 0.5f));
+            seq.AppendCallback(delegate() {
+                state.ambushRotating = false;
+                state.ambushing = true;
+            });
+            seq.Append(DOTween.To(() => 0f, value => {
+                LookAtHunter();
+            }, 1f, 2f));
+            seq.AppendCallback(delegate() {
+                if (state.dead) {
+                    seq.Kill();
+                    return;
+                }
+                state.ambushing = false;
+                state.attackA = true;
+                #region //起点和终点计算
+                    jumpPoint = this.transform.position;
+                    hunterPos.y = jumpPoint.y;
+                    Vector3 deltaPointer = jumpPoint - hunterPos;
+                    landPoint = hunterPos + deltaPointer.normalized * 2f;
+                    displace = landPoint - jumpPoint;
+                #endregion
+            });
+            //跳跃
             seq.Append(DOTween.To(() => 0f, value => {
                 this.transform.position = jumpPoint + displace * value;
+                LookAtHunter();
                 if (value < 0.5) {
                     this.agent.baseOffset = baseoffset + value;
                 } else {
@@ -219,54 +283,72 @@ public class Wolf : TargetAnimal
                 }
             }, 1f, 0.6f));
             seq.AppendCallback(delegate() {
+                this.agent.avoidancePriority = avoidancePriority;
                 this.transform.position = landPoint;
+                LookAtHunter();
                 if (!state.dead) onAttack?.Invoke(this, hurtValue);
             });
             seq.Append(DOTween.To(() => 0f, value => {
                 this.transform.position = landPoint;
+                LookAtHunter();
             }, 1f, 0.634f));
             seq.AppendCallback(delegate() {
                 if (!state.dead) stopAniAttackA();
                 this.transform.position = landPoint;
+                LookAtHunter();
             });
             seq.Append(DOTween.To(() => 0f, value => {
                 this.transform.position = landPoint;
+                LookAtHunter();
             }, 1f, 0.1f)); //通过dotween是它不被动画的位移影响;
+            seq.AppendCallback(delegate() {
+                state.ResetActionState();
+            });
         } else if (canAttackID == "B") {
             state.attackB = true;
             hurtValue = 3;
             onAttack?.Invoke(this, hurtValue);
         }
     }
+    //逃跑远离猎人
+    void RunAwayFromHunter() 
+    {
+        Vector3 backVec = GetPointerHunterToMe();
+        SetDestination(transform.position + backVec.normalized * 6);
+        state.moveQuickly = true;
+        this.agent.speed = 5f;
+    }
     //跑到能攻击玩家的坐标点
     string canAttackID = null;
-    void RunToAttackHunter() {
+    void RunToAttackHunter(bool quickly) {
         float needDistance;
         Vector3 displace = animalsBaseT.forward;
         // if (Random.value < 0.33f) {
         //     needDistance = 2;
         //     canAttackID = "B";
         // } else {
-            displace = Quaternion.AngleAxis(Random.Range(-30f, 30f), Vector3.up) * displace;
-            needDistance = 8;
+            displace = Quaternion.AngleAxis(Random.Range(-18f, 18f), Vector3.up) * displace;
+            needDistance = 10;
             canAttackID = "A";
         // }
         Vector3 newPos = animalsBaseT.position + displace * needDistance;
         SetDestination(newPos);
-        state.moveQuickly = true;
-        agent.speed = 5f;
+        state.moveSlowly = !quickly;
+        state.moveQuickly = quickly;
+        agent.speed = quickly ? 5f : 0.8f;
     }
     //在敌人身边奔跑徘徊
-    void RunAroundHunter() {
-        float baseDistance = 7;
-        float baseDistanceMoveRange = 7;
+    void RunAroundHunter(bool quickly) {
+        float baseDistance = 10;
+        float baseDistanceMoveRange = 10;
         Vector3 standardPointer = animalsBaseT.forward;
         Vector3 pointerWithLen = standardPointer.normalized * (baseDistance + Random.value * baseDistanceMoveRange);
-        pointerWithLen = Quaternion.AngleAxis(-60f + Random.value * 120f, Vector3.up) * pointerWithLen;
+        pointerWithLen = Quaternion.AngleAxis(-40f + Random.value * 80f, Vector3.up) * pointerWithLen;
         Vector3 newPos = animalsBaseT.position + pointerWithLen;
         SetDestination(newPos);
-        state.moveQuickly = true;
-        agent.speed = 5f;
+        state.moveSlowly = !quickly;
+        state.moveQuickly = quickly;
+        agent.speed = quickly ? 5f : 0.8f;
     }
     //Z字型路径缓慢移动
     Queue<Vector3> zPathPoints = new Queue<Vector3>();
@@ -300,7 +382,7 @@ public class Wolf : TargetAnimal
             hunterPos.y = myPos.y;
             Vector3 hunterToMe = myPos - hunterPos;
             float angle = Vector3.Angle(hunterToMe, standardPos);
-            float minDistance = 8;
+            float minDistance = 10;
             //如果下一个构建的坐标在猎手身后或者距离猎手低于指定距离
             if (angle > 90 || Vector3.Distance(hunterPos, myPos) < minDistance) {
                 Vector3 hunterToMe2 = lastMyPos - hunterPos;
@@ -320,6 +402,8 @@ public class Wolf : TargetAnimal
     void Stay() {
         if (state.moving) {
             this.agent.destination = this.agent.nextPosition;
+            this.agent.velocity = Vector3.zero;
+            this.agent.isStopped = true;
         }
         state.ResetActionState();
         state.staying = true;
@@ -345,6 +429,12 @@ public class Wolf : TargetAnimal
     bool isAniMoveQuickly() {
         return curAnimIndex == 4;
     }
+    void playAniAmbush() {
+        ap.play(curAnimIndex = 3, WrapMode.Loop);
+    }
+    bool isAniAmbush() {
+        return curAnimIndex == 3;
+    }
     void playAniAttakA() {
         ap.play(curAnimIndex = 1, WrapMode.Once);
     }
@@ -368,7 +458,7 @@ public class Wolf : TargetAnimal
     }
     void initAniListener() {
         this.ap.completeCallback = delegate(AnimationPlayerCompleteResult res) {
-            if (res.index == 1 || res.index == 0) {
+            if (res.index == 0) {
                 this.state.ResetActionState();
             }
         };
@@ -386,6 +476,8 @@ public class Wolf : TargetAnimal
             if (state.moveQuickly && !isAniMoveQuickly()) playAniMoveQuickly(); 
         } 
         else if (state.attacking) {
+            if (state.ambushRotating && !isAniMoveQuickly()) playAniMoveQuickly(); 
+            if (state.ambushing && !isAniAmbush()) playAniAmbush();
             if (state.attackA && !isAniAttakA()) playAniAttakA();
             if (state.attackB && !isAniAttakB()) playAniAttakB(); 
         } 
@@ -400,18 +492,20 @@ public class Wolf : TargetAnimal
         //数值区
         public int hp = 1;
         //动作区
-        public bool staying = true;
+        public bool staying = false;
         public bool moving = false;
         public bool moveSlowly = false; //慢走
         public bool moveQuickly = false; //跑动
         public bool attacking = false;
+        public bool ambushRotating = false; //扑击前的转身
+        public bool ambushing = false; //扑击前的伏击状态
         public bool attackA = false; //扑击
         public bool attackB = false; //撕咬
         public bool dead = false;
         public float stayingTime = 0;
         public float movingTime = 0;
         //特定区
-        public bool lockingTarget = false; //锁定目标
+        public bool lockingTarget = false; //锁定目标,只有锁定目标后,才能调用攻击接口,这是给自己的规定
         //重置动作区状态
         public void ResetActionState() {
             this.staying = false;
@@ -419,6 +513,8 @@ public class Wolf : TargetAnimal
             this.moveSlowly = false;
             this.moveQuickly = false;
             this.attacking = false;
+            this.ambushRotating = false;
+            this.ambushing = false;
             this.attackA = false;
             this.attackB = false;
             this.dead = false;

+ 8 - 0
Assets/BowArrow/Scenes/GameChallengeScene/WolrOutline.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ad5e35a4035888e46acb03458ed56399
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 203 - 0
Assets/BowArrow/Scenes/GameChallengeScene/WolrOutline/ObjectOutline.shader

@@ -0,0 +1,203 @@
+Shader "Custom/ObjectOutline" {
+
+    Properties{  
+
+        _Diffuse("Diffuse", Color) = (1,1,1,1)  
+
+        _OutlineCol("OutlineCol", Color) = (1,0,0,1)  
+
+        _OutlineFactor("OutlineFactor", Range(0,1)) = 0.1  
+
+        _MainTex("Base 2D", 2D) = "white"{}  
+
+    }  
+
+      //子着色器    
+
+    SubShader  
+
+    {  
+
+                  //描边使用两个Pass,第一个pass沿法线挤出一点,只输出描边的颜色  
+
+        Pass  
+
+        {  
+
+            //剔除正面,只渲染背面,对于大多数模型适用,不过如果需要背面的,就有问题了  
+
+            Cull Front  
+
+                          CGPROGRAM  
+
+            //使用vert函数和frag函数  
+
+            #pragma vertex vert  
+
+            #pragma fragment frag  
+
+            #include "UnityCG.cginc"  
+
+            fixed4 _OutlineCol;  
+
+            float _OutlineFactor;  
+
+                          struct v2f  
+
+            {  
+
+                float4 pos : SV_POSITION;  
+
+            };  
+
+                          v2f vert(appdata_full v)  
+
+            {  
+
+                v2f o;  
+
+                //在vertex阶段,每个顶点按照法线的方向偏移一部分,不过这种会造成近大远小的透视问题  
+
+                //v.vertex.xyz += v.normal * _OutlineFactor;  
+
+                o.pos = UnityObjectToClipPos(v.vertex); 
+
+                //将法线方向转换到视空间  
+
+                float3 vnormal = mul((float3x3)UNITY_MATRIX_IT_MV, v.normal);  
+
+                //将视空间法线xy坐标转化到投影空间,只有xy需要,z深度不需要了  
+
+                float2 offset = TransformViewToProjection(vnormal.xy);  
+
+                //在最终投影阶段输出进行偏移操作  
+
+                o.pos.xy += offset * _OutlineFactor;  
+
+                return o;  
+
+            }                
+
+            fixed4 frag(v2f i) : SV_Target  
+
+            {  
+
+                //这个Pass直接输出描边颜色  
+
+                return _OutlineCol;  
+
+            }  
+
+                          ENDCG  
+
+        }  
+
+                  //正常着色的Pass  
+
+        Pass  
+
+        {  
+
+            CGPROGRAM     
+
+            //使用vert函数和frag函数  
+
+            #pragma vertex vert  
+
+            #pragma fragment frag  
+
+            //引入头文件  
+
+            #include "Lighting.cginc"  
+
+            //定义Properties中的变量  
+
+            fixed4 _Diffuse;  
+
+            sampler2D _MainTex;  
+
+            //使用了TRANSFROM_TEX宏就需要定义XXX_ST  
+
+            float4 _MainTex_ST;  
+
+              //定义结构体:vertex shader阶段输出的内容  
+
+            struct v2f  
+
+            {                  float4 pos : SV_POSITION;  
+
+                float3 worldNormal : TEXCOORD0;  
+
+                float2 uv : TEXCOORD1;  
+
+            };    
+
+            //定义顶点shader,参数直接使用appdata_base(包含position, noramal, texcoord)  
+
+            v2f vert(appdata_base v)  
+
+            {  
+
+                v2f o;  
+
+                o.pos = UnityObjectToClipPos(v.vertex);  
+
+                //通过TRANSFORM_TEX宏转化纹理坐标,主要处理了Offset和Tiling的改变,默认时等同于o.uv = v.texcoord.xy;  
+
+                o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);  
+
+                o.worldNormal = mul(v.normal, (float3x3)unity_WorldToObject);  
+
+                return o;  
+
+            }  
+
+              //定义片元shader  
+
+            fixed4 frag(v2f i) : SV_Target  
+
+            {  
+
+                //unity自身的diffuse也是带了环境光,这里我们也增加一下环境光  
+
+                fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz * _Diffuse.xyz;  
+
+                //归一化法线,即使在vert归一化也不行,从vert到frag阶段有差值处理,传入的法线方向并不是vertex shader直接传出的  
+
+                fixed3 worldNormal = normalize(i.worldNormal);  
+
+                //把光照方向归一化  
+
+                fixed3 worldLightDir = normalize(_WorldSpaceLightPos0.xyz);  
+
+                //根据半兰伯特模型计算像素的光照信息  
+
+                fixed3 lambert = 0.5 * dot(worldNormal, worldLightDir) + 0.5; 
+
+                //最终输出颜色为lambert光强*材质diffuse颜色*光颜色  
+
+                fixed3 diffuse = lambert * _Diffuse.xyz * _LightColor0.xyz + ambient;  
+
+                //进行纹理采样  
+
+                fixed4 color = tex2D(_MainTex, i.uv);  
+
+                color.rgb = color.rgb* diffuse;  
+
+                return fixed4(color);  
+
+            }      
+
+  
+
+            ENDCG  
+
+        }  
+
+    }  
+
+    //前面的Shader失效的话,使用默认的Diffuse  
+
+    FallBack "Diffuse"  
+
+}

+ 10 - 0
Assets/BowArrow/Scenes/GameChallengeScene/WolrOutline/ObjectOutline.shader.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 34414449228c6be42881e507e51e1b6e
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  preprocessorOverride: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 82 - 0
Assets/BowArrow/Scenes/GameChallengeScene/WolrOutline/WolfOutline_dark.mat

@@ -0,0 +1,82 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: WolfOutline_dark
+  m_Shader: {fileID: 4800000, guid: 34414449228c6be42881e507e51e1b6e, type: 3}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 60d0c40a2022a4a44841fca024d26286, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _OutlineFactor: 0.03
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _Diffuse: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _OutlineCol: {r: 0, g: 1, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
Assets/BowArrow/Scenes/GameChallengeScene/WolrOutline/WolfOutline_dark.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bdf0345332cbec142a3f6e91c1c4c985
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 82 - 0
Assets/BowArrow/Scenes/GameChallengeScene/WolrOutline/WolfOutline_grey.mat

@@ -0,0 +1,82 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: WolfOutline_grey
+  m_Shader: {fileID: 4800000, guid: 34414449228c6be42881e507e51e1b6e, type: 3}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: b3d9ce448b2d3ec4cb14bd06a17e1ec8, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _OutlineFactor: 0.03
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _Diffuse: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _OutlineCol: {r: 0, g: 1, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
Assets/BowArrow/Scenes/GameChallengeScene/WolrOutline/WolfOutline_grey.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3986485d6bb02d9418a053f90c337bab
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: