-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.ios.js
More file actions
136 lines (118 loc) · 3.57 KB
/
index.ios.js
File metadata and controls
136 lines (118 loc) · 3.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/**
* Copyright (c) 2017-present, Viro, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
import React, { Component } from 'react';
import {
AppRegistry,
Text,
View,
StyleSheet,
PixelRatio,
TouchableHighlight,
} from 'react-native';
import {
ViroSceneNavigator,
ViroARSceneNavigator
} from 'react-viro';
import { apiKey } from './apiKey';
const sharedProps = { apiKey };
// Default VR scene
var InitialVRScene = require('./js/HelloWorldScene');
var UNSET = "UNSET";
var VR_NAVIGATOR_TYPE = "VR";
var AR_NAVIGATOR_TYPE = "AR";
// This determines which type of experience to launch in, or UNSET, if the user should
// be presented with a choice of AR or VR. By default, we offer the user a choice.
var defaultNavigatorType = UNSET;
export default class ViroSample extends Component {
constructor() {
super();
this.state = {
vrHeadset: UNSET,
sharedProps : sharedProps
}
this._getExperienceSelector = this._getExperienceSelector.bind(this);
this._getVRNavigator = this._getVRNavigator.bind(this);
}
// Replace this function with the contents of _getVRNavigator() or _getARNavigator()
// if you are building a specific type of experience.
render() {
const { vrHeadset } = this.state;
if (vrHeadset == UNSET) {
return this._getExperienceSelector();
} else if (vrHeadset == true) {
return this._getVRNavigator();
} else if (vrHeadset == false) {
return this._getVRNavigator();
}
}
// Presents the user with a choice of an VR with our without a headset
_getExperienceSelector() {
return (
<View style={localStyles.outer} >
<View style={localStyles.inner} >
<Text style={localStyles.titleText}>Welcome to Viro Zombies. Do you have a VR headset?</Text>
<TouchableHighlight style={localStyles.buttons} onPress={() => this.setState({ vrHeadset: true })} underlayColor={'#68a0ff'} >
<Text style={localStyles.buttonText}>YES</Text>
</TouchableHighlight>
<TouchableHighlight style={localStyles.buttons} onPress={() => this.setState({ vrHeadset: false })} underlayColor={'#68a0ff'} >
<Text style={localStyles.buttonText}>NO</Text>
</TouchableHighlight>
</View>
</View>
);
}
// Returns the ViroSceneNavigator which will start the VR experience
_getVRNavigator() {
return (
<ViroSceneNavigator {...this.state.sharedProps}
initialScene={{scene: InitialVRScene}} vrModeEnabled={this.state.vrHeadset} />
);
}
}
var localStyles = StyleSheet.create({
outer : {
flex : 1,
flexDirection: 'row',
alignItems:'center',
backgroundColor: "black",
},
inner: {
flex : 1,
flexDirection: 'column',
alignItems:'center',
backgroundColor: "black",
},
titleText: {
paddingTop: 30,
paddingBottom: 20,
color:'#fff',
textAlign:'center',
fontSize : 25
},
buttonText: {
color:'#fff',
textAlign:'center',
fontSize : 20
},
buttons : {
height: 80,
width: 150,
paddingTop:20,
paddingBottom:20,
marginTop: 10,
marginBottom: 10,
backgroundColor:'#68a0cf',
borderRadius: 10,
borderWidth: 1,
borderColor: '#fff',
}
});
AppRegistry.registerComponent('viroGame', () => ViroSample);
// The below line is necessary for use with the TestBed App
AppRegistry.registerComponent('ViroSample', () => ViroSample);