private void OnDisable() { m_parentBaseShot = null; m_transformCache.ResetPosition(); m_transformCache.ResetRotation(); shooting = false; }
void DrawProperties() { UbhBaseShot obj = target as UbhBaseShot; EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Start Shot")) { if (Application.isPlaying && obj.gameObject.activeInHierarchy) { obj.Shot(); } } EditorGUILayout.EndHorizontal(); if (obj.m_bulletPrefab == null) { Color guiColor = GUI.color; GUI.color = Color.yellow; EditorGUILayout.LabelField("*****WARNING*****"); EditorGUILayout.LabelField("BulletPrefab has not been set!"); GUI.color = guiColor; } EditorGUILayout.Space(); DrawDefaultInspector(); }
/// <summary> /// Finished shot. /// </summary> protected void FinishedShot(UbhBaseShot shotPattern) { if (OnShotFinish != null) { OnShotFinish(shotPattern); } _Shooting = false; }
/// <summary> /// Finished Shot /// </summary> public void OnFinishedShot() { if (m_shooting == false) { return; } m_shooting = false; m_parentBaseShot = null; m_homingTarget = null; m_transformCache.ResetPosition(); m_transformCache.ResetRotation(); }
/// <summary> /// Bullet Shot /// </summary> public void Shot(UbhBaseShot parentBaseShot, float speed, float angle, float accelSpeed, float accelTurn, bool homing, Transform homingTarget, float homingAngleSpeed, bool wave, float waveSpeed, float waveRangeSize, bool pauseAndResume, float pauseTime, float resumeTime, UbhUtil.AXIS axisMove) { if (shooting) { return; } shooting = true; m_parentBaseShot = parentBaseShot; m_speed = speed; m_angle = angle; m_accelSpeed = accelSpeed; m_accelTurn = accelTurn; m_homing = homing; m_homingTarget = homingTarget; m_homingAngleSpeed = homingAngleSpeed; m_wave = wave; m_waveSpeed = waveSpeed; m_waveRangeSize = waveRangeSize; m_pauseAndResume = pauseAndResume; m_pauseTime = pauseTime; m_resumeTime = resumeTime; m_axisMove = axisMove; if (m_axisMove == UbhUtil.AXIS.X_AND_Z) { // X and Z axis m_transformCache.SetEulerAnglesY(-m_angle); } else { // X and Y axis m_transformCache.SetEulerAnglesZ(m_angle); } m_selfFrameCnt = 0f; m_selfTimeCount = 0f; }
/// <summary> /// Bullet Shot /// </summary> public void Shot(UbhBaseShot parentBaseShot, float speed, float angle, float accelSpeed, float accelTurn, bool homing, Transform homingTarget, float homingAngleSpeed, bool wave, float waveSpeed, float waveRangeSize, bool pauseAndResume, float pauseTime, float resumeTime, bool useAutoRelease, float autoReleaseTime, UbhUtil.AXIS axisMove, bool inheritAngle) { if (m_shooting) { return; } m_shooting = true; m_parentBaseShot = parentBaseShot; m_speed = speed; m_angle = angle; m_accelSpeed = accelSpeed; m_accelTurn = accelTurn; m_homing = homing; m_homingTarget = homingTarget; m_homingAngleSpeed = homingAngleSpeed; m_wave = wave; m_waveSpeed = waveSpeed; m_waveRangeSize = waveRangeSize; m_pauseAndResume = pauseAndResume; m_pauseTime = pauseTime; m_resumeTime = resumeTime; m_useAutoRelease = useAutoRelease; m_autoReleaseTime = autoReleaseTime; m_axisMove = axisMove; m_baseAngle = 0f; if (inheritAngle && m_parentBaseShot.lockOnShot == false) { if (m_axisMove == UbhUtil.AXIS.X_AND_Z) { // X and Z axis m_baseAngle = m_parentBaseShot.shotCtrl.transform.eulerAngles.y; } else { // X and Y axis m_baseAngle = m_parentBaseShot.shotCtrl.transform.eulerAngles.z; } } if (m_axisMove == UbhUtil.AXIS.X_AND_Z) { // X and Z axis m_transformCache.SetEulerAnglesY(m_baseAngle - m_angle); } else { // X and Y axis m_transformCache.SetEulerAnglesZ(m_baseAngle + m_angle); } m_selfFrameCnt = 0f; m_selfTimeCount = 0f; }
private void ShotDownAiming(UbhBaseShot baseShot) { m_aimingTargetCompo.m_aiming = false; Debug.Log(transform.parent.name); }
private bool NotNull(UbhBaseShot shotComponent) { return(shotComponent != null); }