(攻撃の作成)AsteroidXの作成
トリガーの生成&削除
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
public class ShotTrigger : MonoBehaviourPunCallbacks
{
public GameObject shotAnchor;
void Update()
{
if(photonView.IsMine)
{
// マウス左クリックでトリガーセット
if(Input.GetMouseButtonDown(0))
{
StartCoroutine(Trigger());
}
}
}
// コルーチン
// トリガーの生成&自動削除
private IEnumerator Trigger()
{
// ネットワーク上に生成
GameObject trigger = PhotonNetwork.Instantiate("AsteroidX", shotAnchor.transform.position, Camera.main.transform.rotation);
// 5秒間待機
yield return new WaitForSeconds(5f);
// 待機後、まだトリガーが存在するならば
if(trigger)
{
// 生成したトリガーをネットワーク上から削除する。
PhotonNetwork.Destroy(trigger.gameObject); // ポイント
}
}
}
直線軌道のトリガー
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
public class AsteroidX : MonoBehaviourPunCallbacks
{
private Rigidbody rb;
void Start()
{
TryGetComponent(out rb);
}
void Update()
{
if(photonView.IsMine)
{
// 右クリックで発射
if(Input.GetMouseButtonDown(1))
{
rb.AddForce(transform.forward * 3000); // 速度は自由
}
}
}
}
【2021版】BattleOnline(全37回)
他のコースを見るトリガーの生成&削除
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
public class ShotTrigger : MonoBehaviourPunCallbacks
{
public GameObject shotAnchor;
void Update()
{
if(photonView.IsMine)
{
// マウス左クリックでトリガーセット
if(Input.GetMouseButtonDown(0))
{
StartCoroutine(Trigger());
}
}
}
// コルーチン
// トリガーの生成&自動削除
private IEnumerator Trigger()
{
// ネットワーク上に生成
GameObject trigger = PhotonNetwork.Instantiate("AsteroidX", shotAnchor.transform.position, Camera.main.transform.rotation);
// 5秒間待機
yield return new WaitForSeconds(5f);
// 待機後、まだトリガーが存在するならば
if(trigger)
{
// 生成したトリガーをネットワーク上から削除する。
PhotonNetwork.Destroy(trigger.gameObject); // ポイント
}
}
}
直線軌道のトリガー
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
public class AsteroidX : MonoBehaviourPunCallbacks
{
private Rigidbody rb;
void Start()
{
TryGetComponent(out rb);
}
void Update()
{
if(photonView.IsMine)
{
// 右クリックで発射
if(Input.GetMouseButtonDown(1))
{
rb.AddForce(transform.forward * 3000); // 速度は自由
}
}
}
}
(攻撃の作成)AsteroidXの作成