Use rigidbodies to move Entities

This commit is contained in:
Jason Durand 01 2022-04-02 05:55:33 -04:00
parent 0fa139faca
commit 9484c6d2fb
6 changed files with 114 additions and 38 deletions

View File

@ -11,8 +11,9 @@ GameObject:
- component: {fileID: 197677485360569565} - component: {fileID: 197677485360569565}
- component: {fileID: 197677485360569564} - component: {fileID: 197677485360569564}
- component: {fileID: 197677485360569563} - component: {fileID: 197677485360569563}
- component: {fileID: 197677485360569562}
- component: {fileID: 197677485360569566} - component: {fileID: 197677485360569566}
- component: {fileID: 3988163462708087662}
- component: {fileID: 2142155588016984618}
m_Layer: 0 m_Layer: 0
m_Name: Gladiator m_Name: Gladiator
m_TagString: Gladiator m_TagString: Gladiator
@ -83,19 +84,6 @@ MeshRenderer:
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0} m_AdditionalVertexStreams: {fileID: 0}
--- !u!135 &197677485360569562
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 197677485360569561}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &197677485360569566 --- !u!114 &197677485360569566
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -108,7 +96,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c537e1bd61b8d5c42b1ec03f90e14855, type: 3} m_Script: {fileID: 11500000, guid: c537e1bd61b8d5c42b1ec03f90e14855, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
health: 100 <Health>k__BackingField: 0
movementSpeed: 5 movementSpeed: 5
rotSpeed: 3 rotSpeed: 3
fov: 0 fov: 0
@ -116,3 +104,40 @@ MonoBehaviour:
attackDmg: 10 attackDmg: 10
attackCooldown: 1 attackCooldown: 1
target: {fileID: 0} target: {fileID: 0}
--- !u!58 &3988163462708087662
CircleCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 197677485360569561}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 6200000, guid: 72c8b57001d325c418a78771641a077f, type: 2}
m_IsTrigger: 0
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: 0, y: 0}
serializedVersion: 2
m_Radius: 0.5
--- !u!50 &2142155588016984618
Rigidbody2D:
serializedVersion: 4
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 197677485360569561}
m_BodyType: 0
m_Simulated: 1
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
m_Mass: 1
m_LinearDrag: 0
m_AngularDrag: 0.05
m_GravityScale: 0
m_Material: {fileID: 6200000, guid: 72c8b57001d325c418a78771641a077f, type: 2}
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 4

View File

@ -11,8 +11,9 @@ GameObject:
- component: {fileID: 2399377275812995968} - component: {fileID: 2399377275812995968}
- component: {fileID: 2399377275812995969} - component: {fileID: 2399377275812995969}
- component: {fileID: 2399377275812995970} - component: {fileID: 2399377275812995970}
- component: {fileID: 2399377275812995971}
- component: {fileID: 2399377275812995974} - component: {fileID: 2399377275812995974}
- component: {fileID: 1427479462206541758}
- component: {fileID: 8912459659685944407}
m_Layer: 0 m_Layer: 0
m_Name: Monster m_Name: Monster
m_TagString: Monster m_TagString: Monster
@ -83,19 +84,6 @@ MeshRenderer:
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0} m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &2399377275812995971
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2399377275812995980}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &2399377275812995974 --- !u!114 &2399377275812995974
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -108,7 +96,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7e480b0ef5998894283e8091830941cb, type: 3} m_Script: {fileID: 11500000, guid: 7e480b0ef5998894283e8091830941cb, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
health: 100 <Health>k__BackingField: 0
movementSpeed: 5 movementSpeed: 5
rotSpeed: 3 rotSpeed: 3
fov: 0 fov: 0
@ -116,3 +104,40 @@ MonoBehaviour:
attackDmg: 10 attackDmg: 10
attackCooldown: 1 attackCooldown: 1
target: {fileID: 0} target: {fileID: 0}
--- !u!50 &1427479462206541758
Rigidbody2D:
serializedVersion: 4
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2399377275812995980}
m_BodyType: 0
m_Simulated: 1
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
m_Mass: 1
m_LinearDrag: 0
m_AngularDrag: 0.05
m_GravityScale: 0
m_Material: {fileID: 6200000, guid: 72c8b57001d325c418a78771641a077f, type: 2}
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 4
--- !u!58 &8912459659685944407
CircleCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2399377275812995980}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 6200000, guid: 72c8b57001d325c418a78771641a077f, type: 2}
m_IsTrigger: 0
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: 0, y: 0}
serializedVersion: 2
m_Radius: 0.5

View File

@ -2,6 +2,7 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
[RequireComponent(typeof(Rigidbody2D))]
public class Entity : MonoBehaviour public class Entity : MonoBehaviour
{ {
[field: SerializeField]protected float Health { get; private set; } [field: SerializeField]protected float Health { get; private set; }
@ -16,6 +17,9 @@ public class Entity : MonoBehaviour
private new string name; private new string name;
private Collider atkCollider; private Collider atkCollider;
private Vector3 direction; private Vector3 direction;
Rigidbody2D rb;
void Awake() => rb = GetComponent<Rigidbody2D>();
protected virtual void Start() { protected virtual void Start() {
direction = new Vector3(1,0,0); direction = new Vector3(1,0,0);
@ -36,7 +40,7 @@ public class Entity : MonoBehaviour
direction = Vector3.RotateTowards(direction, (target.position - transform.position), rotSpeed*deltaTime, 0.0f); direction = Vector3.RotateTowards(direction, (target.position - transform.position), rotSpeed*deltaTime, 0.0f);
if(!IsInAttackRange()){ if(!IsInAttackRange()){
transform.Translate(direction * movementSpeed* deltaTime); rb.MovePosition(transform.position + direction * movementSpeed * deltaTime);
} }
} }

View File

@ -11,10 +11,11 @@ public class Monster : Entity
base.SetName("Monster"); base.SetName("Monster");
} }
void FixedUpdate() => MoveToTarget(Time.fixedDeltaTime);
// Update is called once per frame // Update is called once per frame
void Update() void Update()
{ {
MoveToTarget(Time.deltaTime);
if(IsInAttackRange()){ if(IsInAttackRange()){
if(attackTimer >= attackCooldown){ if(attackTimer >= attackCooldown){
Attack(); Attack();

View File

@ -12,4 +12,30 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7bb5b9d39d784569a22f3cf10d19c27b, type: 3} m_Script: {fileID: 11500000, guid: 7bb5b9d39d784569a22f3cf10d19c27b, type: 3}
m_Name: Safe Zone Stats m_Name: Safe Zone Stats
m_EditorClassIdentifier: m_EditorClassIdentifier:
jumpDuration: 1.2 <JumpDuration>k__BackingField: 1.2
<MinJumpJoystickValue>k__BackingField: 0.5
<JumpOffset>k__BackingField: 1
<JumpSpeedCurve>k__BackingField:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 2.0288262
outSlope: 2.0288262
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.05696202
- serializedVersion: 3
time: 1
value: 1
inSlope: 0.4757123
outSlope: 0.4757123
tangentMode: 0
weightedMode: 0
inWeight: 0.05949372
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4

View File

@ -5,11 +5,6 @@ public class SafeZone : MonoBehaviour {
[SerializeField] CircleCollider2D moatCollider; [SerializeField] CircleCollider2D moatCollider;
public bool IsInSafeZone { get; private set; } = true; public bool IsInSafeZone { get; private set; } = true;
void Awake() {
if (moatCollider.enabled)
Debug.LogWarning("Moat collider was enabled on start, shouldn't be if the player starts in the safe zone.");
}
public void EnterSafeZone() { public void EnterSafeZone() {
IsInSafeZone = true; IsInSafeZone = true;
} }