任务:搭建第二关的框架

场景【第二关】
1.清除第一关遗留的无用的物体
2.修改地形碰撞盒,使得本次玩家可以直接通过桥梁
3.布置了探头类的敌人
4.编写往返巡逻类敌人,拥有以下特性:
(1.前方拥有一个长方形监测区,监测到玩家则触发开枪
(2.会自动于两个目标点间往返行动
(3.能监测到一定范围内的投掷物落地的声音。当听到声音后,以一个更快的速度冲向落地地点
(4.冲向落地地点一定时间后,返回巡逻的两点中的第一个点,然后继续巡逻

部分功能暂未完成,明天应该能做完第二关的系统。加油吧,加油了吗?
This commit is contained in:
Roman 2021-08-22 01:48:25 +08:00
parent ff88026180
commit 801d162ae4
6 changed files with 315 additions and 1695 deletions

View File

@ -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: []

View File

@ -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

View 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;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7876c9fea5e4ef84294916d29c36eab0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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