SZAND\msx_2 1 yıl önce
ebeveyn
işleme
f6452564ba

+ 118 - 0
ActionTowerDefense/Assets/Resources/Prefab/FX/CooksBird.prefab

@@ -0,0 +1,118 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &4360465988804635779
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7240019403788142967}
+  - component: {fileID: 9150179999288272914}
+  m_Layer: 0
+  m_Name: bird
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7240019403788142967
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4360465988804635779}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 5, y: 5, z: 5}
+  m_ConstrainProportionsScale: 1
+  m_Children: []
+  m_Father: {fileID: 5739536514358716996}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &9150179999288272914
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4360465988804635779}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_Sprite: {fileID: 21300000, guid: 314eb574913f9df42895abd4ce8601d8, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 0.48, y: 0.48}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0
+--- !u!1 &6827689530009399248
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5739536514358716996}
+  m_Layer: 0
+  m_Name: CooksBird
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &5739536514358716996
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6827689530009399248}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 7240019403788142967}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

+ 7 - 0
ActionTowerDefense/Assets/Resources/Prefab/FX/CooksBird.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 263e3d90178b89146933e46f2fce55df
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
ActionTowerDefense/Assets/Resources/Prefab/FX/鸟0_0(bird0_0)_爱给网_aigei_com.png


+ 123 - 0
ActionTowerDefense/Assets/Resources/Prefab/FX/鸟0_0(bird0_0)_爱给网_aigei_com.png.meta

@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: 314eb574913f9df42895abd4ce8601d8
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 74 - 3
ActionTowerDefense/Assets/Scripts/Spirits/Trans_Cook.cs

@@ -4,6 +4,16 @@ using UnityEngine;
 
 public class Trans_Cook : MonoBehaviour
 {
+    public enum attackState
+    {
+        NoAttack = 0,
+        Away = 1,
+        Stay = 2,
+        Back = 3,
+    }
+
+    public attackState curAS;               //当前攻击状态
+
     public PlayerController controller;
     public float changeTime;
 
@@ -11,8 +21,13 @@ public class Trans_Cook : MonoBehaviour
     private float pastAttackTime;
     private bool canAttack = true;
 
+    [Header("小鸟回旋镖")]
     public GameObject bird;                 //扔出去的鸟儿
     public float birdSpeed;                 //鸟儿攻击速度
+    public float attackDistance;            //攻击距离
+    public float stayTime;                  //小鸟在极点停留多久
+    private float dir;                      //小鸟攻击方向
+    private float pastLength;               //小鸟已经飞出去多远
 
     private void Start()
     {
@@ -20,9 +35,66 @@ public class Trans_Cook : MonoBehaviour
         controller.changeTime = changeTime;
     }
 
+    private void ChangeAttackState(attackState cas)
+    {
+        switch (curAS)
+        {
+            case attackState.NoAttack:
+                break;
+            case attackState.Away:
+                break;
+            case attackState.Stay:
+                break;
+            case attackState.Back:
+                break;
+            default:
+                break;
+        }
+        curAS = cas;
+        switch (curAS)
+        {
+            case attackState.NoAttack:
+                break;
+            case attackState.Away:
+                dir = controller.bodyTrans.localScale.x;
+                break;
+            case attackState.Stay:
+                dir = -dir;
+                break;
+            case attackState.Back:
+                break;
+            default:
+                break;
+        }
+    }
+
+    private void onAttackState()
+    {
+        switch (curAS)
+        {
+            case attackState.NoAttack:
+                break;
+            case attackState.Away:
+                pastLength += birdSpeed * Time.deltaTime;
+                bird.transform.position -= new Vector3(dir * pastLength, 0, 0);
+                if (pastLength >= attackDistance)
+                {
+                    ChangeAttackState(attackState.Stay);
+                }
+                break;
+            case attackState.Stay:
+                
+                break;
+            case attackState.Back:
+                break;
+            default:
+                break;
+        }
+    }
+
     private void Update()
     {
-        if (!canAttack)
+        if (!canAttack && curAS == 0)
         {
             pastAttackTime += Time.deltaTime;
             if (pastAttackTime >= intervalTime)
@@ -35,8 +107,7 @@ public class Trans_Cook : MonoBehaviour
         {
             canAttack = false;
             controller.isinputJ = false;
-            float dir = controller.bodyTrans.localScale.x;
-            bird.transform.position -= new Vector3(dir * birdSpeed, 0, 0);
+            ChangeAttackState(attackState.Away);
         }
         if (controller.isinputK)
         {