Created
September 10, 2017 09:24
-
-
Save IshidaGames/17d7c677d437b2cbd22166d1d6822b01 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.Collections; | |
using System.Collections.Generic; | |
using UnityEngine; | |
//UI使う時は忘れずに! | |
using UnityEngine.UI; | |
public class Shot : MonoBehaviour { | |
public float thrust; | |
public Rigidbody rb; | |
bool setting1 = true; | |
bool setting2 = false; | |
public GameObject meter; | |
bool changeRotate; | |
float rotate; | |
float angle; | |
//SliderをInspectorに入れる空欄を作る | |
public Slider slider; | |
//lengthはSliderの長さに替えるための値を、forceはSliderの長さを力に変換した値を入れる変数 | |
float length; | |
float force; | |
void Start () { | |
rb = GetComponent<Rigidbody>(); | |
} | |
void Update () { | |
if (setting1) | |
{ | |
Meter(); | |
} | |
//setting2がtureになったら自動で起動 | |
if (setting2) | |
{ | |
//下部に記載したSlider関数を呼ぶ | |
Slider(); | |
} | |
if (Input.GetMouseButtonDown(0)) | |
{ | |
if (setting1) | |
{ | |
setting2 = true; | |
setting1 = false; | |
//setting2の時にクリックされると起動 | |
}else if (setting2) | |
{ | |
//Slider関数で決まった数値のforceを動かす力にする | |
rb.AddForce(transform.forward * force); | |
//発射される時に2つのUIを消す、meterはImageのUIを入れた空のオブジェクトなのでSliderと書き方違う | |
meter.SetActive(false); | |
slider.gameObject.SetActive(false); | |
setting2 = false; | |
} | |
} | |
} | |
void Meter() | |
{ | |
if (0.1f >= meter.transform.eulerAngles.z) | |
{ | |
changeRotate = true; | |
} | |
if (90 <= meter.transform.eulerAngles.z) | |
{ | |
changeRotate = false; | |
} | |
if (changeRotate) | |
{ | |
rotate = 1; | |
} | |
else | |
{ | |
rotate = -1; | |
} | |
meter.transform.Rotate(0, 0, rotate); | |
angle = meter.transform.eulerAngles.z; | |
transform.rotation = Quaternion.Euler(angle * -1, 0, 0); | |
} | |
//Slider関数 | |
void Slider() | |
{ | |
//Update関数の中で起動している間はずっと足し続ける | |
length += 0.01f; | |
//lengthが1に達した時に0に戻る | |
if (length > 1) | |
{ | |
length = 0; | |
} | |
//Sliderの長さの数値にlengthの数値を入れる | |
slider.value = length; | |
//force変数にlength変数に5000かけた数値を入れる | |
force = length * 5000; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment