Загрузить конкретную сцену при нажатии кнопки - PullRequest
2 голосов
/ 14 октября 2019

Ниже приведен текущий код в App.js

//export default App;
export default class App extends Component {
  constructor(props) {
    super(props);

    this.unityContent = new UnityContent(
      "unity_project_build/Build.json",
      "unity_project_build/UnityLoader.js"
    );

    this.SceneChange = this.SceneChange.bind(this);
  }

  // change scene and orientatation buttons
  SceneChange() {
    this.unityContent.send("GameManageer", "ChangeScene");
  }

  render() {
    return (
      <Router>
        <div>
          <h2>Welcome to React Router Tutorial</h2>
          <nav className="navbar navbar-expand-lg navbar-light bg-light">
            <ul className="navbar-nav mr-auto">
              <li>
                <Link to={"/"} className="nav-link">
                  {" "}
                  Home{" "}
                </Link>
              </li>
              <li>
                <Link to={"/Office"} className="nav-link">
                  Office
                </Link>
              </li>
              <li>
                <Link to={"/gym"} className="nav-link">
                  Gym
                </Link>
              </li>
            </ul>
          </nav>
          <hr />
          <Switch>
            <Route exact path="/" component={Home} />
            <Route path="/Office" component={Office} />
            <Route path="/gym" component={Gym} />
          </Switch>
        </div>
      </Router>
    );
  }
}

, что я хочу сделать, когда я нажимаю тренажерный зал, я хочу загрузить функцию SceneChange.

Это то, что япопробовал, я написал функцию Scenechange в App.js и использую функцию onClick, чтобы связать ее. Но ничего не меняется

 <li>
   <Link to={"/gym"} onClick={this.SceneChange} className="nav-link">
    Gym
   </Link>
 </li>

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 22 октября 2019

Наконец-то решите это.

render() {
    return (
      // Finally render the Unity component and pass
      // the Unity content
      // through the props. And create
      // a button to handle the click event

      <div>
        <button onClick={this.onClickStart}>Start</button>
        <button onClick={this.onClickStop}>Stop</button>
        <button onClick={this.decrease}>-</button>
        <input
          type="number"
          min="1"
          max="200"
          value={this.state.value}
          onChange={this.onNumberChange}
        />
        <button onClick={this.increase}>+</button>
        <button onClick={this.reset}>Reset</button>
        <button onClick={this.changeView}>2D/3D</button>
        {this.SceneChange()}
        {/* <button onClick={this.SceneChange}>Change</button> */}
        <Unity unityContent={this.unityContent} />
      </div>
    );
  }
}

export default Gym;

в моем Gym.js я вызываю функцию напрямую. {this.SceneChange ()} и это сработало. Так что я просто публикую здесь решение, чтобы любой, кто использует реагирует на единство webGL, имел это решение

...