UnityとC#でゲーム開発をしています。
C#
1if (IsGaina) 2 { 3 count += Time.deltaTime; 4 if (!gaina) 5 { 6 gaina = PhotonNetwork.Instantiate("GainaEffect", new Vector3(transform.position.x, transform.position.y, 0.1f), Quaternion.identity,0); 7 } else 8 { 9 gaina.transform.position = new Vector3(transform.position.x, transform.position.y, 0.1f); 10 } 11 if (count >= 5f) 12 { 13 PhotonNetwork.Destroy(gaina); 14 IsGaina = false; 15 count = 0; 16 } 17 } else { 18 if (gaina) 19 { 20 PhotonNetwork.Destroy(gaina); 21 } 22 }
この関数を関数化したいと思い、
C#
1//関数化 2void Effect(ref bool isEffect, GameObject Effect) 3 { 4 if (isEffect) 5 { 6 count += Time.deltaTime; 7 if (!Effect) 8 { 9 Effect = PhotonNetwork.Instantiate(effectName, new Vector3(transform.position.x, transform.position.y, 0.1f), Quaternion.identity, 0); 10 } 11 else 12 { 13 Effect.transform.position = new Vector3(transform.position.x, transform.position.y, 0.1f); 14 } 15 if (count >= time) 16 { 17 PhotonNetwork.Destroy(Effect); 18 isEffect = false; 19 count = 0; 20 } 21 } 22 else 23 { 24 if (Effect) 25 { 26 PhotonNetwork.Destroy(Effect); 27 } 28 } 29 }
C#
1//呼び出し 2Effect(ref IsGaina, gaina);
このように記述したのですが、
error CS0206: A property or indexer may not be passed as an out or ref parameter
というエラーが出てしまいます。
ref bool...の部分をintにするとエラーは消えるのですが、bool型は参照渡しすることはできないのでしょうか?
稚拙な質問で申し訳ありませんが、ご回答いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー