ビームの切り替え機能の実装
ビームの切り替え
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShotBeam : MonoBehaviour
{
public GameObject laserGun;
// ★改良(ビームの切り替え)
public GameObject[] beamPrefabs;
public AudioClip shotSound;
public float shotSpeed;
// ★追加(ビームの切り替え)
private int num = 0;
public AudioClip changeSound;
void Update()
{
// ★追加(ビームの切り替え)
// マウス右クリックで切り替える
if(Input.GetMouseButtonDown(1))
{
// 順送りのテクニック
num = (num + 1) % beamPrefabs.Length;
AudioSource.PlayClipAtPoint(changeSound, Camera.main.transform.position);
}
if(Input.GetMouseButtonDown(0))
{
// ★改良(ビームの切り替え)
GameObject beam = Instantiate(beamPrefabs[num], transform.position, laserGun.transform.rotation);
Rigidbody beamRb = beam.GetComponent<Rigidbody>();
beamRb.AddForce(transform.forward * shotSpeed);
AudioSource.PlayClipAtPoint(shotSound, Camera.main.transform.position);
}
}
}
【2021版】X_Mission(全34回)
他のコースを見るビームの切り替え
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShotBeam : MonoBehaviour
{
public GameObject laserGun;
// ★改良(ビームの切り替え)
public GameObject[] beamPrefabs;
public AudioClip shotSound;
public float shotSpeed;
// ★追加(ビームの切り替え)
private int num = 0;
public AudioClip changeSound;
void Update()
{
// ★追加(ビームの切り替え)
// マウス右クリックで切り替える
if(Input.GetMouseButtonDown(1))
{
// 順送りのテクニック
num = (num + 1) % beamPrefabs.Length;
AudioSource.PlayClipAtPoint(changeSound, Camera.main.transform.position);
}
if(Input.GetMouseButtonDown(0))
{
// ★改良(ビームの切り替え)
GameObject beam = Instantiate(beamPrefabs[num], transform.position, laserGun.transform.rotation);
Rigidbody beamRb = beam.GetComponent<Rigidbody>();
beamRb.AddForce(transform.forward * shotSpeed);
AudioSource.PlayClipAtPoint(shotSound, Camera.main.transform.position);
}
}
}
ビームの切り替え機能の実装