从Unity中的Android Plugins文件夹中的csharp脚本类调用assets文件夹中的csharp脚本类中的函数

时间:2018-01-29 17:09:13

标签: c# android unity3d callback unityscript

我可以在Unity设置中的资源文件夹中调用两个不同类的函数。我也可以从我的插件文件夹访问脚本文件的功能,但反之亦然。例如

以下是我的Assets文件夹中的一个类,用于游戏对象Spinning Cube

下面的脚本定义了立方体的旋转

public class SpinningCube : MonoBehaviour 
{
    public float m_Speed = 20f;

    private Vector3 m_RotationDirection = Vector3.up;

    public Texture btnTexture;

    public void ToggleRotationDirection()
    {
        Debug.Log ("Toggling rotation direction");            

        if (m_RotationDirection == Vector3.up) 
        { 
            MyPlugin.doSomething();    
            m_RotationDirection = Vector3.down;
        }
        else 
        {
            MyPlugin.doSomethingElse();  
            m_RotationDirection = Vector3.up;
        }
    }

    void Update() 
    {
        transform.Rotate(m_RotationDirection * Time.deltaTime * m_Speed);
    }

}

插件中的MyPlugin类中的函数>从Spinning cube成功调用Android文件夹。

但是我似乎无法从MyPlugin类调用SpinningCube类中的函数。

using System;
using UnityEngine;

namespace My.Plugins {

    public class MyPlugin {
        public static void doSomething () {
            //doing something

        }

        public static void doSomethingElse () {
            //doing something else
        }


    }

}

当我尝试从MyPlugin文件访问SpinningCube类中的函数时:

它说

  

“当前上下文中不存在SpinningCube。”

欢迎任何指针。

我想这样做来代码回电。

1 个答案:

答案 0 :(得分:0)

您显然可以访问MyPlugin类方法,因为它们是static,这意味着可以访问它们而无需引用类的实例。

要从ToggleRotationDirection访问MyPlugin方法,您需要引用SpinningCube类。

添加:

public SpinningCube spinningCube;

MyPlugin类中,然后在Inspector中为其分配具有SpinningCube脚本的游戏对象。

之后,您将能够使用spinningCube.ToggleRotationDirection();

调用该方法