現在我的項目中有2個類。
我想用方法類2類1
而這種代碼C#Unity3d中錯誤代碼c#oop的位置
1級
public class controlBuilding : MonoBehaviour
{
ScaleModel cScale = new ScaleModel();
public void Start()
{
}
public void Update()
{
cScale.touchScaleB1();
}
public void OnGUI()
{
}
}
2級
public class ScaleModel : MonoBehaviour
{
public void touchScaleB1()
{
if (Input.touchCount >= 2)
{
Touch touch1 = Input.touches[0];
Touch touch2 = Input.touches[1];
if (touch1.phase == TouchPhase.Moved || touch2.phase == TouchPhase.Moved)
{
float pinchDistance = Vector2.Distance(touch1.position, touch2.position);
float prevDistance = Vector2.Distance(touch1.position - touch1.deltaPosition,
touch2.position - touch2.deltaPosition);
float pinchDistanceDelta = pinchDistance - prevDistance;
if (pinchDistanceDelta > 0)
{
float mScaleFactor;
mScaleFactor = b1_floor1dae.transform.localScale.x;
mScaleFactor += 0.0004f;
b1_floor1dae.transform.localScale = new Vector3(mScaleFactor, mScaleFactor, mScaleFactor);
b1_floor2dae.transform.localScale = new Vector3(mScaleFactor, mScaleFactor, mScaleFactor);
b1_floor3dae.transform.localScale = new Vector3(mScaleFactor, mScaleFactor, mScaleFactor);
b1_floor4dae.transform.localScale = new Vector3(mScaleFactor, mScaleFactor, mScaleFactor);
b1_floorTop.transform.localScale = new Vector3(mScaleFactor, mScaleFactor, mScaleFactor);
b1_other.transform.localScale = new Vector3(mScaleFactor, mScaleFactor, mScaleFactor);
}
else if (pinchDistanceDelta < 0)
{
float mScaleFactor;
mScaleFactor = b1_floor1dae.transform.localScale.x;
mScaleFactor -= 0.0004f;
b1_floor1dae.transform.localScale = new Vector3(mScaleFactor, mScaleFactor, mScaleFactor);
b1_floor2dae.transform.localScale = new Vector3(mScaleFactor, mScaleFactor, mScaleFactor);
b1_floor3dae.transform.localScale = new Vector3(mScaleFactor, mScaleFactor, mScaleFactor);
b1_floor4dae.transform.localScale = new Vector3(mScaleFactor, mScaleFactor, mScaleFactor);
b1_floorTop.transform.localScale = new Vector3(mScaleFactor, mScaleFactor, mScaleFactor);
b1_other.transform.localScale = new Vector3(mScaleFactor, mScaleFactor, mScaleFactor);
}
}
}
}
}
爲什麼我摸上屏幕不是事件?代碼錯在哪裏?
對不起。我英語不好。
非常感謝您的回答。
派生自Monobehaviour的類不應該用new來實例化。而是使用[Instantiate](http://docs.unity3d.com/Documentation/ScriptReference/Object.Instantiate.html)。你有沒有嘗試添加一些調試來驗證問題是Input.touches? – Jerdak