// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2020-09-02 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** namespace G { using UnityEngine; /// /// /// 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(); _myMaterial = _myRenderer.material; _myCollider = this.GetComponent(); cha1 = GameObject.FindWithTag("Player").transform; script_cha = cha1.GetComponent(); 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().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; } } }