add: damage to lava

update: moved player gravitation to FixedUpdate
update: GameController initialization is moved to Awake
This commit is contained in:
KOSMOGOR
2025-05-01 21:29:06 +03:00
parent e514bb62ab
commit 8dd89dafa2
8 changed files with 110 additions and 11 deletions
+3 -3
View File
@@ -932,7 +932,7 @@ CharacterController:
m_SlopeLimit: 45
m_StepOffset: 0.3
m_SkinWidth: 0.08
m_MinMoveDistance: 0.001
m_MinMoveDistance: 0.0001
m_Center: {x: 0, y: 0, z: 0}
--- !u!54 &8985924327125149956
Rigidbody:
@@ -942,7 +942,7 @@ Rigidbody:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9016311960615966999}
serializedVersion: 4
m_Mass: 1
m_Mass: 100
m_Drag: 0
m_AngularDrag: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0}
@@ -959,7 +959,7 @@ Rigidbody:
m_UseGravity: 0
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 80
m_Constraints: 10
m_CollisionDetection: 0
--- !u!114 &3824427059318413399
MonoBehaviour:
+24 -1
View File
@@ -641,6 +641,11 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 53e225dcb536a6f46b5844bb8db07fe4, type: 3}
--- !u!1 &914314127 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3933166166638460809, guid: cb78e85aa373c3a4498d453f91e6f5e0, type: 3}
m_PrefabInstance: {fileID: 1465524055576149525}
m_PrefabAsset: {fileID: 0}
--- !u!4 &963998287 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3465613687167644384, guid: 0a6d9f24857a5d742b9df2df7da4a192, type: 3}
@@ -926,6 +931,21 @@ Transform:
m_CorrespondingSourceObject: {fileID: 4458204531961996595, guid: cb78e85aa373c3a4498d453f91e6f5e0, type: 3}
m_PrefabInstance: {fileID: 1465524055576149525}
m_PrefabAsset: {fileID: 0}
--- !u!114 &1482790149
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 914314127}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb7839678d2d2f7429a6dbd22c7efb93, type: 3}
m_Name:
m_EditorClassIdentifier:
hitRate: 1
damage: 5
currentDelay: 0
--- !u!4 &1507655617 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 6025933111829980118, guid: ca28c894d7e3a8e4d8feb70b9a8bb1c4, type: 3}
@@ -1503,7 +1523,10 @@ PrefabInstance:
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 3933166166638460809, guid: cb78e85aa373c3a4498d453f91e6f5e0, type: 3}
insertIndex: -1
addedObject: {fileID: 1482790149}
m_SourcePrefab: {fileID: 100100000, guid: cb78e85aa373c3a4498d453f91e6f5e0, type: 3}
--- !u!1001 &1815240206413736077
PrefabInstance:
+24 -1
View File
@@ -1294,8 +1294,31 @@ PrefabInstance:
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 3933166166638460809, guid: cb78e85aa373c3a4498d453f91e6f5e0, type: 3}
insertIndex: -1
addedObject: {fileID: 1465524055576149527}
m_SourcePrefab: {fileID: 100100000, guid: cb78e85aa373c3a4498d453f91e6f5e0, type: 3}
--- !u!1 &1465524055576149526 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3933166166638460809, guid: cb78e85aa373c3a4498d453f91e6f5e0, type: 3}
m_PrefabInstance: {fileID: 1465524055576149525}
m_PrefabAsset: {fileID: 0}
--- !u!114 &1465524055576149527
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1465524055576149526}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb7839678d2d2f7429a6dbd22c7efb93, type: 3}
m_Name:
m_EditorClassIdentifier:
hitRate: 1
damage: 5
currentDelay: 0
--- !u!1001 &1815240206413736077
PrefabInstance:
m_ObjectHideFlags: 0
+24 -1
View File
@@ -1903,8 +1903,31 @@ PrefabInstance:
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 3933166166638460809, guid: cb78e85aa373c3a4498d453f91e6f5e0, type: 3}
insertIndex: -1
addedObject: {fileID: 1465524055576149527}
m_SourcePrefab: {fileID: 100100000, guid: cb78e85aa373c3a4498d453f91e6f5e0, type: 3}
--- !u!1 &1465524055576149526 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3933166166638460809, guid: cb78e85aa373c3a4498d453f91e6f5e0, type: 3}
m_PrefabInstance: {fileID: 1465524055576149525}
m_PrefabAsset: {fileID: 0}
--- !u!114 &1465524055576149527
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1465524055576149526}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb7839678d2d2f7429a6dbd22c7efb93, type: 3}
m_Name:
m_EditorClassIdentifier:
hitRate: 1
damage: 5
currentDelay: 0
--- !u!1001 &1815240206413736077
PrefabInstance:
m_ObjectHideFlags: 0
+25
View File
@@ -0,0 +1,25 @@
using UnityEngine;
public class DamagingObject : MonoBehaviour
{
public float hitRate = 1f;
public float damage = 5f;
[SerializeField] float currentDelay = 0;
void Start() {
if (hitRate != 0) currentDelay = 1 / hitRate;
}
void Update() {
if (hitRate != 0) currentDelay = Mathf.Clamp(currentDelay += Time.deltaTime, 0, 1 / hitRate);
}
public void ReverseOnControllerColliderHit(ControllerColliderHit hit) {
if (hit.controller.CompareTag("Player") && currentDelay == 1 / hitRate) {
Player player = hit.controller.GetComponent<Player>();
player.DealDamage(damage);
currentDelay = 0;
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: fb7839678d2d2f7429a6dbd22c7efb93
+1 -1
View File
@@ -13,7 +13,7 @@ public class GameController : MonoBehaviour
public List<EnemyInfo> enemies;
public Dictionary<BulletType, int> inventory = new();
public void Start() {
public void Awake() {
if (i) { Destroy(gameObject); return; }
i = GetComponent<GameController>();
DontDestroyOnLoad(gameObject);
+7 -4
View File
@@ -31,10 +31,13 @@ public class PlayerMovement : MonoBehaviour
HandleJumping();
HandleMovement();
HandleDashing();
DoGravity();
HandleConstantVelocity();
}
void FixedUpdate() {
DoGravity();
}
void HandleJumping() {
if (movementInactive > 0) return;
if (Input.GetKey(KeyCode.Space) && grounded) {
@@ -70,12 +73,12 @@ public class PlayerMovement : MonoBehaviour
void DoGravity() {
if (gravityInactive > 0) {
gravityVelocity = Vector3.zero;
gravityInactive = Mathf.Max(gravityInactive -= Time.deltaTime, 0);
gravityInactive = Mathf.Max(gravityInactive -= Time.fixedDeltaTime, 0);
return;
}
if (grounded && gravityVelocity.y < 0) gravityVelocity = Vector3.zero;
gravityVelocity += Physics.gravity * (Time.deltaTime * gravityMultiplier);
characterController.Move(gravityVelocity * Time.deltaTime);
gravityVelocity += Physics.gravity * (Time.fixedDeltaTime * gravityMultiplier);
characterController.Move(gravityVelocity * Time.fixedDeltaTime);
}
void HandleConstantVelocity() {