update
This commit is contained in:
@@ -609,7 +609,7 @@ MonoBehaviour:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7522161431095319480}
|
||||
m_Enabled: 1
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 35bba55c2a743d042ab1fff35e29db50, type: 3}
|
||||
m_Name:
|
||||
|
||||
@@ -14,6 +14,7 @@ GameObject:
|
||||
- component: {fileID: 411349647056113735}
|
||||
- component: {fileID: 2417107839128453854}
|
||||
- component: {fileID: 6433774282585127385}
|
||||
- component: {fileID: -8021594009672363794}
|
||||
m_Layer: 0
|
||||
m_Name: "_LazerPr\u1ECDectile"
|
||||
m_TagString: Untagged
|
||||
@@ -31,8 +32,8 @@ Transform:
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.69, z: 0.267}
|
||||
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_LocalScale: {x: 0.05, y: 0.05, z: 0.05}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@@ -108,7 +109,7 @@ SphereCollider:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
@@ -245,5 +246,34 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 4e4f602386d4d484ea7a2a3b0c19ac21, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::LaserProjectile
|
||||
speed: 5
|
||||
speed: 100
|
||||
lifeTime: 5
|
||||
damageAmount: 10
|
||||
hitSound: Laser_Hit
|
||||
--- !u!54 &-8021594009672363794
|
||||
Rigidbody:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3965388737199864462}
|
||||
serializedVersion: 5
|
||||
m_Mass: 1
|
||||
m_LinearDamping: 0
|
||||
m_AngularDamping: 0.05
|
||||
m_CenterOfMass: {x: 0, y: 0, z: 0}
|
||||
m_InertiaTensor: {x: 1, y: 1, z: 1}
|
||||
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ImplicitCom: 1
|
||||
m_ImplicitTensor: 1
|
||||
m_UseGravity: 1
|
||||
m_IsKinematic: 1
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 0
|
||||
m_CollisionDetection: 0
|
||||
|
||||
@@ -136487,7 +136487,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Hallucinate.AI.GeminiService
|
||||
apiKeys:
|
||||
- AIzaSyC4DRm2dffDuDogYkY0Ag86p-EYLu67bDo
|
||||
- AIzaSyC4DRm2dffDuDogYkY0Ag86p-EYLu67bDo
|
||||
- AQ.Ab8RN6JvwHD9tZXWlO7eb22ahV0rxUh5cAjB3-XfKW5H_KLiyQ
|
||||
- AIzaSyC4DRm2dffDuDogYkY0Ag86p-EYLu67bDo
|
||||
geminiURL: https://generativelanguage.googleapis.com/v1beta/models/gemini-flash-latest:generateContent
|
||||
--- !u!1 &1143870345
|
||||
|
||||
@@ -1,36 +1,66 @@
|
||||
using UnityEngine;
|
||||
using Hallucinate.Audio;
|
||||
using Invector;
|
||||
|
||||
public class LaserProjectile : MonoBehaviour
|
||||
{
|
||||
public float speed = 5f;
|
||||
public float speed = 15f; // Tăng tốc độ đạn để cảm giác mượt hơn
|
||||
public float lifeTime = 5f;
|
||||
public int damageAmount = 10;
|
||||
|
||||
[Header("Audio")]
|
||||
public string hitSound = "Laser_Hit";
|
||||
|
||||
private void Start()
|
||||
{
|
||||
// Tự hủy sau một khoảng thời gian nếu không trúng gì
|
||||
Destroy(gameObject, lifeTime);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
transform.position +=
|
||||
transform.forward *
|
||||
speed *
|
||||
Time.deltaTime;
|
||||
// Di chuyển đạn
|
||||
transform.position += transform.forward * speed * Time.deltaTime;
|
||||
}
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Player"))
|
||||
// Debug: Log tên và tag của bất cứ thứ gì đạn chạm vào
|
||||
Debug.Log($"Laser collided with: {other.name} | Tag: {other.tag} | Layer: {LayerMask.LayerToName(other.gameObject.layer)}");
|
||||
|
||||
// Kiểm tra nếu trúng Player
|
||||
if (other.CompareTag("Player") || other.GetComponentInParent<vIHealthController>() != null)
|
||||
{
|
||||
Debug.Log("Player Hit");
|
||||
var healthController = other.GetComponentInParent<vIHealthController>();
|
||||
|
||||
if (healthController != null)
|
||||
{
|
||||
Debug.Log($"<color=red>HIT PLAYER!</color> Found health controller on {healthController.gameObject.name}. Applying {damageAmount} damage.");
|
||||
var damage = new vDamage(damageAmount);
|
||||
damage.sender = transform;
|
||||
damage.hitPosition = transform.position;
|
||||
healthController.TakeDamage(damage);
|
||||
}
|
||||
|
||||
// Luôn phá hủy đạn khi trúng Player
|
||||
Impact();
|
||||
return;
|
||||
}
|
||||
|
||||
AudioManager.Instance?.Play(hitSound, position: transform.position);
|
||||
|
||||
Destroy(gameObject);
|
||||
// Phá hủy đạn nếu trúng tường, sàn nhà (mọi thứ không phải trigger khác)
|
||||
if (!other.isTrigger)
|
||||
{
|
||||
Debug.Log("Laser hit an obstacle (Wall/Floor).");
|
||||
Impact();
|
||||
}
|
||||
}
|
||||
|
||||
private void Impact()
|
||||
{
|
||||
// Chạy âm thanh
|
||||
AudioManager.Instance?.Play(hitSound, position: transform.position);
|
||||
|
||||
// Phá hủy đạn ngay lập tức
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
@@ -318,6 +318,14 @@ namespace Invector.vCharacterController
|
||||
currentStaminaRecoveryDelay = 2f;
|
||||
}
|
||||
|
||||
public override void TakeDamage(vDamage damage)
|
||||
{
|
||||
Debug.Log($"Player TakeDamage called. Damage: {damage.damageValue}. Current Health before: {currentHealth}");
|
||||
base.TakeDamage(damage);
|
||||
Debug.Log($"Player Health after: {currentHealth}");
|
||||
// Additional logic for player-specific damage handling can be added here
|
||||
}
|
||||
|
||||
|
||||
#region Check Action Triggers
|
||||
|
||||
|
||||
Reference in New Issue
Block a user