はじめて質問します。よろしくお願いします。
unityで別オブジェクトからメソッドを実行し、エフェクトを呼びたいです。
流れとしてはメソッドを呼ぼうとしたら、
An object reference is required to access non-static memberのエラーが
でたため、staticをつけました。
そしたら、メソッド内のInstantiateにエラーがでて解決できずにいます。。
呼び出し先
using UnityEngine; using System.Collections; public class Chara : MonoBehaviour { public GameObject effectObj; public static void AttachEffect() { Instantiate (effectObj, transform.position, transform.rotation); } }
Assets/Scripts/Chara.cs(10,30):error CS0120:
An object reference is required to access non-static member Chara.effectObj' Assets/Scripts/Chara.cs(10,41): error CS0120: An object reference is required to access non-static member
UnityEngine.Component.transform'
Assets/Scripts/Chara.cs(10,61):
error CS0120: An object reference is required to access non-static member UnityEngine.Component.transform' Assets/Scripts/Chara.cs(10,17): error CS1502: The best overloaded method match for
UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Vector3, UnityEngine.Quaternion)' has some invalid arguments
Assets/Scripts/Chara.cs(10,17):
error CS1503: Argument #1' cannot convert
object' expression to type `UnityEngine.Object'
呼び出し元
GameObject refObj; void Start() { refObj = GameObject.Find( "Chara" ); } void ShowEffects() { Chara AttachEffect = refObj.GetComponent<Chara>(); if(AttachEffect!=null){ Chara.AttachEffect(); } else { Debug.LogWarning("Charaオブジェクトありません!"); } }
他のオブジェクトからスクリプトを呼び出さず、そのスクリプト単体であれば普通にエフェクトを表示することはできます。その他いろいろとやりましたがうまくいかずstaticをつけたとき、他の場所で発生するエラーの取り方がよくわからんということだという気がしています。
お手数おかけしますが、どうぞよろしくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/23 08:31