162 lines
3.8 KiB
C#
162 lines
3.8 KiB
C#
// ***********************************************************************
|
|
// Assembly : Game
|
|
// Author : Kimch
|
|
// Created : 2020-09-02
|
|
// Description :
|
|
// Last Modified By :
|
|
// Last Modified On :
|
|
// ***********************************************************************
|
|
// <copyright file= "Bullet_punch" company="Kimch"></copyright>
|
|
// <summary></summary>
|
|
// ***********************************************************************
|
|
namespace G
|
|
{
|
|
using UnityEngine;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public class Bullet_punch : MonoBehaviour
|
|
{
|
|
public Transform pt_thrust;
|
|
|
|
private Transform _myTransform;
|
|
|
|
private Vector3 _originScale = new Vector3(0.5f, 2f, 0.5f);
|
|
|
|
private Vector3 _growVector = new Vector3(1f, 0f, 1f);
|
|
|
|
private Color _targetColor = new Color(0.5f, 0.5f, 0.5f, 0f);
|
|
|
|
private Renderer _myRenderer;
|
|
|
|
private Material _myMaterial;
|
|
|
|
private SphereCollider _myCollider;
|
|
|
|
|
|
private short _efon;
|
|
|
|
private float _delay;
|
|
|
|
private int _addforce;
|
|
|
|
private Transform cha1;
|
|
private Cha_Skill script_cha;
|
|
private Transform _enemy;
|
|
|
|
private float _stepFactor = 1f;
|
|
|
|
private float _upAngle;
|
|
|
|
private bool _boom;
|
|
|
|
private void Awake()
|
|
{
|
|
_myTransform = this.transform;
|
|
_myRenderer = this.GetComponent<Renderer>();
|
|
_myMaterial = _myRenderer.material;
|
|
_myCollider = this.GetComponent<SphereCollider>();
|
|
cha1 = GameObject.FindWithTag("Player").transform;
|
|
script_cha = cha1.GetComponent<Cha_Skill>();
|
|
this.gameObject.SetActive(false);
|
|
}
|
|
|
|
public void PunchOff()
|
|
{
|
|
_delay = 4f;
|
|
_efon = 0;
|
|
_myCollider.enabled = false;
|
|
_myRenderer.enabled = false;
|
|
this.gameObject.SetActive(false);
|
|
_myTransform.localScale = _originScale;
|
|
//pt_thrust.particleEmitter().emit = false;
|
|
}
|
|
|
|
public void PunchShoot(float delay, int addforce, Transform mon, float step, float upangle, float collidersize, bool boom)
|
|
{
|
|
this.gameObject.SetActive(true);
|
|
_delay = delay;
|
|
_efon = 1;
|
|
_enemy = mon;
|
|
_addforce = addforce;
|
|
_myCollider.enabled = false;
|
|
_stepFactor = step;
|
|
_upAngle = upangle;
|
|
_myCollider.radius = collidersize;
|
|
_boom = boom;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (_efon <= 0)
|
|
{
|
|
return;
|
|
}
|
|
if (_efon == 1)
|
|
{
|
|
Vector3 direction;
|
|
if (_enemy != null)
|
|
{
|
|
direction = _enemy.position - cha1.position;
|
|
}
|
|
else
|
|
{
|
|
direction = cha1.forward * 0.1f;
|
|
}
|
|
if (direction != Vector3.zero)
|
|
{
|
|
cha1.rotation = Quaternion.LookRotation(direction);
|
|
}
|
|
cha1.position += (direction * 10f + cha1.right * _stepFactor) * (Time.deltaTime * 0.5f);
|
|
if (_delay > 0f)
|
|
{
|
|
_delay -= Time.deltaTime;
|
|
}
|
|
else
|
|
{
|
|
if (_addforce > 0)
|
|
{
|
|
cha1.GetComponent<Rigidbody>().AddForce(cha1.transform.forward * _addforce);
|
|
}
|
|
_efon = 2;
|
|
_myTransform.position = cha1.position + Vector3.up * (0.1f + _upAngle * 0.1f) + cha1.forward * 0.15f;
|
|
_myTransform.up = -cha1.forward - Vector3.up * _upAngle;
|
|
_myTransform.localScale = _originScale;
|
|
_myRenderer.enabled = true;
|
|
_myCollider.enabled = true;
|
|
_myMaterial.color = Color.gray;
|
|
//pt_thrust.particleEmitter().emit = true;
|
|
if (_boom)
|
|
{
|
|
script_cha.BoomOn(1, false);
|
|
}
|
|
}
|
|
}
|
|
else if (_efon == 2)
|
|
{
|
|
Vector3 localScale = _myTransform.localScale;
|
|
if (localScale.x > 3f)
|
|
{
|
|
_efon = 0;
|
|
_myRenderer.enabled = false;
|
|
this.gameObject.SetActive(false);
|
|
_myTransform.position = Vector3.one * 4f;
|
|
}
|
|
else
|
|
{
|
|
if (localScale.x > 1f)
|
|
{
|
|
//pt_thrust.particleEmitter().emit = false;
|
|
_myCollider.enabled = false;
|
|
}
|
|
}
|
|
}
|
|
_myTransform.localScale += _growVector * (Time.deltaTime * 6f);
|
|
var transColor = _myMaterial.color;
|
|
transColor = Color.Lerp(transColor, _targetColor, Time.deltaTime * 5f);
|
|
_myMaterial.color = transColor;
|
|
}
|
|
}
|
|
}
|