Trapに触れると一時的に動けないようにする。
![Fa6a5b56 6824 4915 ba6f 256f6d919ae9](https://codegenius.org/uploads/slide/image/1359/fa6a5b56-6824-4915-ba6f-256f6d919ae9.jpeg)
![Effdf0c9 0c76 46fc bb23 d910bda245f2](https://codegenius.org/uploads/slide/image/1360/effdf0c9-0c76-46fc-bb23-d910bda245f2.jpeg)
プレーヤーの動きを一時的に止める方法
using UnityEngine;
using System.Collections;
public class TrapB : MonoBehaviour {
private TankMovement TM;
public AudioClip trapSound;
public GameObject effectPrefab;
void OnTriggerEnter(Collider other){
if(other.gameObject.CompareTag("Player")){
// Trapを画面から消す。
// DestroyメソッドだとInvokeメソッドを使えない(ポイント)。
this.gameObject.SetActive(false);
// 効果音を出す。
AudioSource.PlayClipAtPoint(trapSound, transform.position);
// エフェクトを出す。(posでエフェクトの出現位置を調整する。)
Vector3 pos = other.transform.position;
GameObject effect = (GameObject)Instantiate(effectPrefab, new Vector3(pos.x, pos.y + 1, pos.z - 1), Quaternion.identity);
// エフェクトを2秒後に消す。
Destroy(effect, 2.0f);
// プレーヤーの動きを止める。
TM = other.GetComponent<TankMovement>();
TM.enabled = false;
// 2秒後にReleaseメソッドを呼び出す。
Invoke("Release", 2.0f);
}
}
void Release(){
TM.enabled = true;
}
}
![34d6ab11 7212 4631 b902 1dd8cc6f20bb](https://codegenius.org/uploads/slide/image/1361/34d6ab11-7212-4631-b902-1dd8cc6f20bb.jpeg)
![050df839 9207 4896 85db 92daba722a5f](https://codegenius.org/uploads/slide/image/1362/050df839-9207-4896-85db-92daba722a5f.jpeg)
![8d6d820c 8bfd 48e9 a4e4 fddbd1f12761](https://codegenius.org/uploads/slide/image/1363/8d6d820c-8bfd-48e9-a4e4-fddbd1f12761.jpeg)
Unity Code Memo
他のコースを見る![Fa6a5b56 6824 4915 ba6f 256f6d919ae9](https://codegenius.org/uploads/slide/image/1359/fa6a5b56-6824-4915-ba6f-256f6d919ae9.jpeg)
![Effdf0c9 0c76 46fc bb23 d910bda245f2](https://codegenius.org/uploads/slide/image/1360/effdf0c9-0c76-46fc-bb23-d910bda245f2.jpeg)
プレーヤーの動きを一時的に止める方法
using UnityEngine;
using System.Collections;
public class TrapB : MonoBehaviour {
private TankMovement TM;
public AudioClip trapSound;
public GameObject effectPrefab;
void OnTriggerEnter(Collider other){
if(other.gameObject.CompareTag("Player")){
// Trapを画面から消す。
// DestroyメソッドだとInvokeメソッドを使えない(ポイント)。
this.gameObject.SetActive(false);
// 効果音を出す。
AudioSource.PlayClipAtPoint(trapSound, transform.position);
// エフェクトを出す。(posでエフェクトの出現位置を調整する。)
Vector3 pos = other.transform.position;
GameObject effect = (GameObject)Instantiate(effectPrefab, new Vector3(pos.x, pos.y + 1, pos.z - 1), Quaternion.identity);
// エフェクトを2秒後に消す。
Destroy(effect, 2.0f);
// プレーヤーの動きを止める。
TM = other.GetComponent<TankMovement>();
TM.enabled = false;
// 2秒後にReleaseメソッドを呼び出す。
Invoke("Release", 2.0f);
}
}
void Release(){
TM.enabled = true;
}
}
![34d6ab11 7212 4631 b902 1dd8cc6f20bb](https://codegenius.org/uploads/slide/image/1361/34d6ab11-7212-4631-b902-1dd8cc6f20bb.jpeg)
![050df839 9207 4896 85db 92daba722a5f](https://codegenius.org/uploads/slide/image/1362/050df839-9207-4896-85db-92daba722a5f.jpeg)
![8d6d820c 8bfd 48e9 a4e4 fddbd1f12761](https://codegenius.org/uploads/slide/image/1363/8d6d820c-8bfd-48e9-a4e4-fddbd1f12761.jpeg)
Trapに触れると一時的に動けないようにする。