add catana, shurikens and repair weapon changin and meele weapon animation
This commit is contained in:
46
Assets/Scripts/AmmoManager.cs
Normal file
46
Assets/Scripts/AmmoManager.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class AmmoManager : MonoBehaviour
|
||||
{
|
||||
public enum AmmoType { None, Shuriken, Bullet };
|
||||
public AmmoType ammoType = AmmoType.None;
|
||||
public Rigidbody rigidBody;
|
||||
public WeaponManager weaponManager;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
if (ammoType == AmmoType.Shuriken)
|
||||
{
|
||||
rigidBody.AddForce(weaponManager.transform.forward * weaponManager.weaponRange, ForceMode.VelocityChange);
|
||||
rigidBody.AddTorque(weaponManager.transform.right * 5, ForceMode.Force);
|
||||
Destroy(this.gameObject, 5f);
|
||||
}
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void OnCollisionEnter(Collision collision)
|
||||
{
|
||||
if (ammoType == AmmoType.Shuriken) {
|
||||
if (collision.transform.tag != "Player") {
|
||||
rigidBody.isKinematic = true;
|
||||
rigidBody.velocity = Vector3.zero;
|
||||
rigidBody.useGravity = false;
|
||||
rigidBody.constraints = RigidbodyConstraints.FreezeAll;
|
||||
GetComponent<TrailRenderer>().enabled = false;
|
||||
}
|
||||
if (collision.transform.tag == "Enemy")
|
||||
{
|
||||
transform.root.parent = collision.transform.root.transform;
|
||||
collision.transform.GetComponent<EnemyManager>().Damage(weaponManager.damage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/AmmoManager.cs.meta
Normal file
11
Assets/Scripts/AmmoManager.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dfc054dea21bd894997c749bfb9c315a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@@ -175,7 +175,7 @@ public class EnemyManager : MonoBehaviour
|
||||
void Attack()
|
||||
{
|
||||
RaycastHit hit;
|
||||
if (Physics.Raycast(transform.position + new Vector3(0,0.5f,0),transform.forward,out hit,1.5f) && attackTime <= Time.time)
|
||||
if (Physics.Raycast(transform.position + new Vector3(0,0.5f,0),transform.forward,out hit,1f) && attackTime <= Time.time)
|
||||
{
|
||||
if (hit.transform.CompareTag("Player"))
|
||||
{
|
||||
@@ -201,15 +201,42 @@ public class EnemyManager : MonoBehaviour
|
||||
Damage();
|
||||
}
|
||||
}
|
||||
WeaponManager weaponManager = null;
|
||||
bool localHit = false;
|
||||
|
||||
void OnTriggerEnter(Collider collider)
|
||||
{
|
||||
if (collider.transform.CompareTag("Meele"))
|
||||
{
|
||||
WeaponManager weaponManager = collider.transform.GetComponent<WeaponManager>();
|
||||
if (weaponManager != null && weaponManager.hit) {
|
||||
weaponManager = collider.transform.GetComponent<WeaponManager>();
|
||||
if (weaponManager == null)
|
||||
{
|
||||
weaponManager = collider.transform.parent.GetComponent<WeaponManager>();
|
||||
}
|
||||
localHit = weaponManager.hit;
|
||||
if (weaponManager != null && localHit) {
|
||||
Damage();
|
||||
weaponManager.hit = false;
|
||||
localHit = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
void OnTriggerStay(Collider collider)
|
||||
{
|
||||
if (collider.transform.CompareTag("Meele"))
|
||||
{
|
||||
bool offOn = false;
|
||||
if (weaponManager.hit == false) {
|
||||
offOn = true;
|
||||
}
|
||||
if (weaponManager.hit == true && offOn)
|
||||
{
|
||||
localHit = weaponManager.hit;
|
||||
offOn = false;
|
||||
}
|
||||
if (weaponManager != null && localHit)
|
||||
{
|
||||
Damage();
|
||||
localHit = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -39,6 +39,6 @@ public class GuiManager : MonoBehaviour
|
||||
|
||||
public void setWave(int wave)
|
||||
{
|
||||
waves.text = "Wave: " + wave;
|
||||
waves.text = wave.ToString();
|
||||
}
|
||||
}
|
||||
|
@@ -26,8 +26,8 @@ public class PlayerManager : MonoBehaviour
|
||||
public Sprite handImage;
|
||||
public GuiManager guiManager;
|
||||
public int selectedWeapon = 0;
|
||||
private float selectRate = 1;
|
||||
private float selectTime = 1;
|
||||
private float selectRate = 0.1f;
|
||||
private float selectTime = 0.1f;
|
||||
public AudioSource audio;
|
||||
public AudioClip lose;
|
||||
private float nextMapeTime = 3;
|
||||
|
@@ -4,7 +4,7 @@ using UnityEngine;
|
||||
|
||||
public class WeaponManager : MonoBehaviour
|
||||
{
|
||||
public enum WeaponType { None, Shoot, Meele };
|
||||
public enum WeaponType { None, Shoot, Meele, Throw };
|
||||
public WeaponType weaponType = WeaponType.None;
|
||||
public float weaponRange = 1;
|
||||
public GameObject spawnShoot;
|
||||
@@ -50,17 +50,44 @@ public class WeaponManager : MonoBehaviour
|
||||
fireTime = fireRate + Time.time;
|
||||
}
|
||||
}
|
||||
else if (weaponType == WeaponType.Throw)
|
||||
{
|
||||
if (particleShoot != null && player.ammo > (ammoCost - 1))
|
||||
{
|
||||
GameObject shoot = Instantiate(particleShoot, spawnShoot.transform.position, spawnShoot.transform.rotation);
|
||||
if (shootSound.Count > 0)
|
||||
{
|
||||
int rand = Random.Range(0, shootSound.Count);
|
||||
audioSource.PlayOneShot(shootSound[rand]);
|
||||
}
|
||||
shoot.GetComponent<AmmoManager>().weaponManager = this;
|
||||
player.ammo -= ammoCost;
|
||||
fireTime = fireRate + Time.time;
|
||||
}
|
||||
}
|
||||
else if (weaponType == WeaponType.Meele)
|
||||
{
|
||||
hit = true;
|
||||
animator.ResetTrigger("Hit");
|
||||
animator.SetTrigger("Hit");
|
||||
fireTime = fireRate + Time.time;
|
||||
}
|
||||
}
|
||||
if (fireTime <= Time.time)
|
||||
{
|
||||
if (animator != null) {
|
||||
animator.ResetTrigger("Hit");
|
||||
}
|
||||
hit = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void Hit_Enemy_Start ()
|
||||
{
|
||||
hit = true;
|
||||
}
|
||||
|
||||
public void Hit_Enemy_End ()
|
||||
{
|
||||
hit = false;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user