任务:搭建第二关的框架
场景【第二关】 1.清除第一关遗留的无用的物体 2.修改地形碰撞盒,使得本次玩家可以直接通过桥梁 3.布置了探头类的敌人 4.编写往返巡逻类敌人,拥有以下特性: (1.前方拥有一个长方形监测区,监测到玩家则触发开枪 (2.会自动于两个目标点间往返行动 (3.能监测到一定范围内的投掷物落地的声音。当听到声音后,以一个更快的速度冲向落地地点 (4.冲向落地地点一定时间后,返回巡逻的两点中的第一个点,然后继续巡逻 部分功能暂未完成,明天应该能做完第二关的系统。加油吧,加油了吗?
This commit is contained in:
parent
ff88026180
commit
801d162ae4
@ -44,6 +44,6 @@ Material:
|
||||
- WaveIntensity_2: 1
|
||||
- WaveSpread_Value: 0
|
||||
m_Colors:
|
||||
- Center: {r: 0.2140666, g: 0.23385775, b: 0, a: 0}
|
||||
- Center: {r: 0.576797, g: 0.23002703, b: 0, a: 0}
|
||||
- Vector2_d2d098295fc146f08b921b231b2e5199: {r: 1.6, g: 0.9, b: 0, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
|
@ -1186,6 +1186,9 @@ Transform:
|
||||
- {fileID: 1815998268}
|
||||
- {fileID: 199464879}
|
||||
- {fileID: 1931824630}
|
||||
- {fileID: 929368895}
|
||||
- {fileID: 788577771}
|
||||
- {fileID: 1209357885}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@ -2080,6 +2083,10 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: "\u6295\u63B7\u7269\u5806"
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3118168874406839345, guid: a33f3ee35358b11469af30e9a746a630, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: a33f3ee35358b11469af30e9a746a630, type: 3}
|
||||
--- !u!4 &684400311 stripped
|
||||
@ -2403,6 +2410,36 @@ SpriteRenderer:
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!1 &788577770
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 788577771}
|
||||
m_Layer: 0
|
||||
m_Name: "\u5DE1\u903B\u70B91"
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 4162164826716764455, guid: 0000000000000000d000000000000000, type: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &788577771
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 788577770}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -28.36, y: -1.06, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 293805376}
|
||||
m_RootOrder: 16
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &906685587
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -2606,6 +2643,132 @@ SpriteRenderer:
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!1 &929368894
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 929368895}
|
||||
- component: {fileID: 929368896}
|
||||
- component: {fileID: 929368897}
|
||||
- component: {fileID: 929368898}
|
||||
m_Layer: 0
|
||||
m_Name: "\u5DE1\u903B\u654C\u4EBA"
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &929368895
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 929368894}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -20.94, y: -0.67, z: 0}
|
||||
m_LocalScale: {x: 7.8272, y: 7.8272, z: 7.8272}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 293805376}
|
||||
m_RootOrder: 15
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!212 &929368896
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 929368894}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 0
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||
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: 10911, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
m_DrawMode: 0
|
||||
m_Size: {x: 0.16, y: 0.16}
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!61 &929368897
|
||||
BoxCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 929368894}
|
||||
m_Enabled: 1
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 1
|
||||
m_UsedByEffector: 0
|
||||
m_UsedByComposite: 0
|
||||
m_Offset: {x: 0.27, y: 0}
|
||||
m_SpriteTilingProperty:
|
||||
border: {x: 0.049999997, y: 0.049999997, z: 0.049999997, w: 0.049999997}
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
oldSize: {x: 0.16, y: 0.16}
|
||||
newSize: {x: 0.16, y: 0.16}
|
||||
adaptiveTilingThreshold: 0.5
|
||||
drawMode: 0
|
||||
adaptiveTiling: 0
|
||||
m_AutoTiling: 0
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 0.4, y: 0.16}
|
||||
m_EdgeRadius: 0
|
||||
--- !u!114 &929368898
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 929368894}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7876c9fea5e4ef84294916d29c36eab0, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
point1: {fileID: 788577771}
|
||||
point2: {fileID: 1209357885}
|
||||
walkSpeed: 10
|
||||
rushSpeed: 1
|
||||
--- !u!1 &969830747
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -2799,6 +2962,36 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1144456071}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &1209357884
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1209357885}
|
||||
m_Layer: 0
|
||||
m_Name: "\u5DE1\u903B\u70B92"
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 4162164826716764455, guid: 0000000000000000d000000000000000, type: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1209357885
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1209357884}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -15.22, y: -0.55, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 293805376}
|
||||
m_RootOrder: 17
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1266968524
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -3810,7 +4003,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.030000001, y: 0.031479284}
|
||||
m_AnchorMax: {x: 0.52917886, y: 0.39900002}
|
||||
m_AnchoredPosition: {x: 0.034118652, y: 1.5471649}
|
||||
m_AnchoredPosition: {x: 0.034118652, y: 1.5471497}
|
||||
m_SizeDelta: {x: -6.344902, y: -5.0294952}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1355607314
|
||||
@ -4968,7 +5161,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.52917886, y: 0.031479284}
|
||||
m_AnchorMax: {x: 0.99000007, y: 0.39900002}
|
||||
m_AnchoredPosition: {x: -2.2779846, y: 1.7249603}
|
||||
m_AnchoredPosition: {x: -2.2779846, y: 1.7249451}
|
||||
m_SizeDelta: {x: -11.304703, y: -4.6799927}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1839520246
|
||||
@ -6141,6 +6334,10 @@ PrefabInstance:
|
||||
propertyPath: m_RootOrder
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3719369086825294709, guid: e0481b76b4057fd4fad09cc46028b53a, type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: -1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3719369086825294709, guid: e0481b76b4057fd4fad09cc46028b53a, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -15.36
|
||||
@ -6203,6 +6400,10 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: "\u7889\u5821"
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6516117755271630969, guid: 5ad2f573d77b68149b5b3270cac7842f, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6516117755271630970, guid: 5ad2f573d77b68149b5b3270cac7842f, type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 14
|
||||
@ -6391,7 +6592,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8233114533063075529, guid: 82d871be611f9d14fbe8c166075c1a37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: -3.900055
|
||||
value: -3.9000626
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8233114533063075529, guid: 82d871be611f9d14fbe8c166075c1a37, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
|
File diff suppressed because it is too large
Load Diff
73
Assets/Scripts/具象物体/Patrolman.cs
Normal file
73
Assets/Scripts/具象物体/Patrolman.cs
Normal file
@ -0,0 +1,73 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Patrolman : MonoBehaviour
|
||||
{
|
||||
//控制巡逻敌人
|
||||
|
||||
[Tooltip("拖入巡逻点1")]
|
||||
public Transform point1;
|
||||
[Tooltip("拖入巡逻点2,他将于此两点间往返")]
|
||||
public Transform point2;
|
||||
[Tooltip("普通移动时的速度")]
|
||||
public float walkSpeed;
|
||||
[Tooltip("听见响动,冲锋时的速度")]
|
||||
public float rushSpeed;
|
||||
private float speed;//记录此刻瞬间的速度,不包含方向
|
||||
private float velocity;//速度,正值代表向右,用来判断面部朝向
|
||||
private Transform target;//当前目标位置
|
||||
private bool isInterrupt = false;//记录目前是否被石头落地的声音所吸引
|
||||
private float PVelocity = -1f;//记录上一帧的速度,默认上一帧往右走
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
target = point1;//初始化起始目标为巡逻点1
|
||||
speed = walkSpeed;//初始化瞬间速度为走路速度
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
Move();//每帧朝目标移动
|
||||
}
|
||||
|
||||
//朝目标移动函数
|
||||
private void Move()
|
||||
{
|
||||
//构造速度向量
|
||||
velocity = (target.position - transform.position).x;
|
||||
velocity = Mathf.Abs(velocity)/velocity;//把速度标准化为1或者-1,只保留方向
|
||||
velocity *= speed;//给速度赋以大小
|
||||
|
||||
//判断是否到达巡逻点
|
||||
if(velocity*PVelocity < 0 && !isInterrupt)//速度相乘得负数,说明方向发生改变
|
||||
{
|
||||
//如果计算速度发生改变,且不是因为被石头打断,说明经过了巡逻点,此时更换目标点为另一个
|
||||
if(target.Equals(point1)) target = point2;
|
||||
else target = point1;
|
||||
}
|
||||
|
||||
//控制面部朝向
|
||||
if(velocity > 0) transform.rotation = Quaternion.Euler(0,0,0);
|
||||
else transform.rotation = Quaternion.Euler(0,180f,0);
|
||||
|
||||
//移动
|
||||
transform.position = new Vector3(
|
||||
//x
|
||||
transform.position.x +//自身此刻位置 加上
|
||||
velocity * //构造好的速度乘以
|
||||
Time.deltaTime,//使其与时间无关
|
||||
|
||||
//y和z不变
|
||||
transform.position.y,
|
||||
transform.position.z
|
||||
);
|
||||
|
||||
//更新PVelocity
|
||||
PVelocity = velocity;
|
||||
}
|
||||
|
||||
|
||||
}
|
11
Assets/Scripts/具象物体/Patrolman.cs.meta
Normal file
11
Assets/Scripts/具象物体/Patrolman.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7876c9fea5e4ef84294916d29c36eab0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -24,17 +24,17 @@ EditorUserSettings:
|
||||
value: 22424703114646680e0b0227036cdacaf990d3ea61aecec8a8d5c77df7ee3d2cfb
|
||||
flags: 0
|
||||
RecentlyUsedScenePath-6:
|
||||
value: 22424703114646680e0b0227036cdae0f290dfc7abfbfdb7f6d69be60968fbcd663fd8601ed2bad4ce4cfa320d2a18
|
||||
flags: 0
|
||||
RecentlyUsedScenePath-7:
|
||||
value: 22424703114646680e0b0227036cdacaf990d3ea61ade8e6a9f1d07df7ee3d2cfb
|
||||
flags: 0
|
||||
RecentlyUsedScenePath-8:
|
||||
RecentlyUsedScenePath-7:
|
||||
value: 22424703114646680e0b0227036cd8dcda93c0caa9cdf57e38271427fb
|
||||
flags: 0
|
||||
RecentlyUsedScenePath-9:
|
||||
RecentlyUsedScenePath-8:
|
||||
value: 22424703114646680e0b0227036cd8dcda93c2c6a9cdf57e38271427fb
|
||||
flags: 0
|
||||
RecentlyUsedScenePath-9:
|
||||
value: 22424703114646680e0b0227036cdae0f290dfc7abfbfdb7f6d69be60968fbcd663fd8601ed2bad4ce4cfa320d2a18
|
||||
flags: 0
|
||||
UnityEditor.ShaderGraph.Blackboard:
|
||||
value: 18135939215a0a5004000b0e15254b524c030a3f2964643d120d1230e9e93a3fd6e826abbd2e2d293c4ead313b08042de6030a0afa240c0d020be94c4ba85e435d8715fa32c70d15d11612dacc11fee5d3c5d1fe9ab1b0968e93e2ffcbc3e7e2f0b3ffe0e8b0be9af8ffaeffff8e85dd8390e3949c8899daa7
|
||||
flags: 0
|
||||
|
Loading…
x
Reference in New Issue
Block a user