PlayCanvas рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп рдордВрдЪ рд╣реИред PlayCanvas рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЧрдИ рд╣рд░ рдЪреАрдЬ HTML5 рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред PlayCanvas рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдк рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрд╣реАрдВ рднреА рдХрд┐рд╕реА рднреА рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдХреНрд▓рд┐рдХ рдХреЗ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
PlayCanvas рдореЗрдВ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ

PlayCanvas рдореЗрдВ рд╕рдм рдХреБрдЫ рдПрдХ рджреГрд╢реНрдп рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рд╕реНрдХреНрд░реАрди рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдЗрдХрд╛рдИ рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдПрдХ рдЦрдВрдб рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЦрд╛рд▓реА рд╕рдВрд╕реНрдерд╛рдУрдВ рдФрд░ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рджреЛрдиреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХреИрдорд░реЗ, рд░реЛрд╢рдиреА, рдЖрджрд┐рдо, рдСрдбрд┐рдпреЛ, рдЗрдВрдЯрд░рдлреЗрд╕, рдХрдг рдкреНрд░рдгрд╛рд▓реА рдпрд╛ рдореЙрдбрд▓ред рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдЬреЛрдбрд╝реА рдЧрдИ рдХреЛрдИ рднреА рдЗрдХрд╛рдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рджреГрд╢реНрдп рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреА рд╣реИред
рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рджреГрд╢реНрдп рд╕рдВрдкрд╛рджрдХ рд╣реИред рдпрд╣рд╛рдВ рдЖрдк рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╕ рдпрд╣ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рджреГрд╢реНрдп рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред
рджреГрд╢реНрдп рд╕рдВрдкрд╛рджрдХ рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рдЕрдиреБрднрд╛рдЧ рд╣реИред рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдЕрдиреНрдп рддрддреНрд╡ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред PlayCanvas рдореЗрдВ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИрдВ: рдлрд╝реЛрд▓реНрдбрд░, рд╕реАрдПрд╕рдПрд╕, рдХреНрдпреВрдмреИрдк, рдПрдЪрдЯреАрдПрдордПрд▓, рдЬреЗрдиреНрд╕рди, рд╕рд╛рдордЧреНрд░реА, рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд╢реЗрдбрд░ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯред рдЙрди рд╕рднреА рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджреНрджреЗрд╢реНрдп рд╣реИрдВред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╕реНрдХреНрд░реАрди рдХреЗ рджрд╛рдИрдВ рдУрд░ рдЗрдХрд╛рдИ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдПрдХ рдЦрдВрдб рд╣реИред рдПрдХ рдЗрдХрд╛рдИ рдХреЗ рдореВрд▓ рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВ: рд╕реНрдерд╛рди, рд░реЛрдЯреЗрд╢рди, рд╕реНрдХреЗрд▓, рдирд╛рдо, рдЯреИрдЧ, рдЬреЛрдбрд╝реЗ рдЧрдП рдШрдЯрдХреЛрдВ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред рдХрд┐рд╕ рдЗрдХрд╛рдИ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЧреБрдг рдмрджрд▓рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рдПрдХ рдШрди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдг рд╣реЛрдВрдЧреЗ: рдкреНрд░рдХрд╛рд░, рд╕рд╛рдордЧреНрд░реА, рдЫрд╛рдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдкрд░рддреЗрдВ рдФрд░ рд╕рдореВрд╣ред
PlayCanvas рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рдЧрднрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
- рд╣рдо рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдореЙрдбрд▓, рд╕рд╛рдордЧреНрд░реА, рдСрдбрд┐рдпреЛ, рд╡реАрдбрд┐рдпреЛред
- рд╣рдо рдЕрдкрдиреЗ рджреГрд╢реНрдп рдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рд╢рд╣рд░, рдШрд░, рдкрд░рд┐рджреГрд╢реНрдпред
- рд╕рд╣рднрд╛рдЧреА рддрддреНрд╡ рдЬреЛрдбрд╝реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдФрд░ рдЙрд╕рдХреЗ рджреБрд╢реНрдордиред
- рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдЬреЛрдбрд╝реЗрдВред
- рдЧреЗрдо рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдСрдирд▓рд╛рдЗрди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВред
PlayCanvas рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ

PlayCanvas рдореЗрдВ рд╣рдорд╛рд░реЗ рдЧреЗрдо рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рддрд░реНрдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдШрдЯрдХ рд╣реИ: рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯред рд▓рд┐рдкрд┐рдпрд╛рдВ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рджреГрд╢реНрдп рдкрджрд╛рдиреБрдХреНрд░рдо рдХреА рдЬрдбрд╝ рдЗрдХрд╛рдИ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрдерд╛рдиреАрдп рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рд╕реАрдзреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рднреАрддрд░ рдЗрдХрд╛рдИ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦреЗрд▓ рдЪрд░рд┐рддреНрд░ рдХреЗ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП)ред рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЧреЗрдо рд▓рд┐рдЦрддреЗ рд╣реИрдВред ES6 рдкреНрд░реЗрдорд┐рдпреЛрдВ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд░рд╛рд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛ PlayCanvas рдЕрднреА рднреА ES5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдЖрдк ES6 рд╕реЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд▓рд┐рдВрдЯрд░ рд╢рдкрде рд▓реЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢рд╛рд░реАрд░рд┐рдХ рд░рдЪрдирд╛ рдирд┐рдореНрди рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ:
var NewScript = pc.createScript('newScript'); NewScript.attributes.add('someString', { type: 'string', default: 'any', title: 'Some string' }); NewScript.prototype.initialize = function() { this.startPosition = this.entity.getPosition(); }; NewScript.prototype.update = function(dt) { this.entity.setLocalPosition(this.newPosition); }; NewScript.prototype.calcaulateNewPosition = function() { this.newPosition = this.startPosition.dot(pc.Vec3.ZERO) };
рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред рдЙрд╕реЗ рджреЛ рдореБрдЦреНрдп рд╡рд┐рдзрд┐рдпрд╛рдБ рдорд┐рд▓рддреА рд╣реИрдВ: рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ - рддрдм рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдЗрдХрд╛рдИ рдХреЛ рджреГрд╢реНрдп рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрджреНрдпрддрди - рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдВрдбрд░ рдлреНрд░реЗрдо рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрджреНрдпрддрди рдореЗрдВ dt рдкреИрд░рд╛рдореАрдЯрд░ рдбреЗрд▓реНрдЯрд╛ рд╕рдордп рд╣реИ - рджреВрд╕рд░реЗ рдХрд╛% рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдлреНрд░реЗрдо рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдЖрдкрдХреЛ рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ 360 рдбрд┐рдЧреНрд░реА рдореЗрдВ рдШреБрдорд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
this.entity.rotate(0, 360 * dt, 0);
рдЕрдВрдд рдореЗрдВ, рдЕрдВрддрд┐рдо
calcaulateNewPosition рд╡рд┐рдзрд┐ рдПрдХ рдХрд╕реНрдЯрдо рд╡рд┐рдзрд┐ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрд░рдЪрдирд╛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдб рдореЗрдВ рдПрдХ рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛
someString рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рдЖрдкрдХреЛ рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╕рдВрдкрд╛рджрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдЧреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЪрдпрдирд┐рдд рдЗрдХрд╛рдИ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░
"рдкрд╛рд░реНрд╕" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдпрджрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрдорд╛рдг рдерд╛, рддреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝реАрд▓реНрдб рдорд╛рди рдореЗрдВ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдпрд╣ рдорд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдЧрд╛ред PlayCanvas рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░рд╣ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ
рдпрд╣рд╛рдБ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрдкрд╛рджрдХ рдФрд░ рдЖрдкрдХреЗ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ IDE рджреЛрдиреЛрдВ рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ PlayCanvas рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗ рдЧрдП рд╕рд░реНрд╡рд░ рдХреЛ рдКрдкрд░ рдЙрдард╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЦреИрд░, рдЕрдм рдЬрдм рд╣рдордиреЗ PlayCanvas рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдХрд╡рд░ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдо PlayCanvas рдореЗрдВ рдЖрднрд╛рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рджреГрд╢реНрдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╡реА.рдЖрд░.

PlayCanvas рдЖрдкрдХреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдПрдХ рд╡реАрдЖрд░ рджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдЙрдЪрд┐рдд рд╡рд┐рдХрд▓реНрдк (рд╡реАрдЖрд░ рд╕реНрдЯрд╛рд░реНрдЯрд░ рдХрд┐рдЯ) рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рддреЛ, рдЪрд▓рд┐рдП рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ PlayCanvas рд╣рдореЗрдВ рдХреНрдпрд╛ рдбрд┐рдлреЙрд▓реНрдЯ рдХрд░рддрд╛ рд╣реИ (рд╕реНрдкреЙрдЗрд▓рд░: рдЙрддрдирд╛ рдирд╣реАрдВ рдЬрд┐рддрдирд╛ рд╣рдо рдЪрд╛рд╣реЗрдВрдЧреЗ)ред
рджреГрд╢реНрдп рдХреЛ рдЪрд▓рд╛рдиреЗ рдкрд░, рдЖрдк рдЕрдкрдиреЗ рд╕рд╛рдордиреЗ рддреАрди рдХреНрдпреВрдмреНрд╕ рджреЗрдЦреЗрдВрдЧреЗред рдЬрдм рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЯрдХрдЯрдХреА рд▓рдЧрд╛рддреЗ рд╣реИрдВ (рдЯрдХрдЯрдХреА рдирд┐рдпрдВрддреНрд░рдг), рдПрдХ рдкреНрд░рдЧрддрд┐ рдмрд╛рд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдШрди рдХреЛ рдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛ рджреЗрдЧрд╛ред рдкреАрд╕реА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирд┐рдпрдВрддреНрд░рдХ рдпрд╛ WASD рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдкреНрд░рдмрдВрдзрди рдЖрдкрдХреЛ рдХрд╛рд░реНрдбрдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдкрд░реНрд╢ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИред
рд╣рдорд╛рд░реЗ рд╕реНрдЯрд╛рд░реНрдЯрд░ рд╡реАрдЖрд░ рдХрд┐рдЯ рдХрд╛ рдХреЛрдб, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рд╕реАрдзреЗ рдЗрд╕ рджреГрд╢реНрдп рдХреЗ рддрд░реНрдХ рд╕реЗ рдмрдВрдзреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдХреБрдЫ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реИред рдХреЛрдИ рдПрдкреАрдЖрдИ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЕрдм рдЖрдЗрдП рд╕реНрдЯрд╛рд░реНрдЯрд░ рдХрд┐рдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рд▓реБрдХ- camera.js рдпрд╣рд╛рдВ рддрд░реНрдХ рд╣реИ рдХрд┐ рд╡реАрдЖрд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдФрд░ рдХреИрдорд░реЗ рдХреА рдЬреЛрдбрд╝реА рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рдЙрд╕-рдирд┐рдпрдВрддреНрд░рдХ.рдЬреЗрдПрд╕ рдпрд╛ рдЯрдЪ-рдХрдВрдЯреНрд░реЛрд▓рд░ред рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдкреАрд╕реА рдпрд╛ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рд╕реЗ рдХреИрдорд░реЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдЪ рдФрд░ рдпреЙ рдХреЛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдЪрдпрдирдХрд░реНрддрд╛- camera.js рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЯрдХрдЯрдХреА рдирд┐рдпрдВрддреНрд░рдг рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдЫрд┐рдкрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдЬреЛ рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЪрдпрдирдХрд░реНрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдШрдЯрдирд╛ рдЬреЛрдбрд╝реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рдПрдПрдмреАрдмреА рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдк рдпрд╣рд╛рдВ рд░реЗ рд▓реЙрдЬрд┐рдХ (рд░реЗ \ рд░реЗрд╕реНрдХреИрд╕реНрдЯрд░) рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред PlayCanvas рдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд╕реНрддреБ рд╣реИред рдпрд╣ = new pc.Ray (); рдЬреЛ рдмрд╛рдЙрдВрдбрд┐рдВрдЧрдмреЙрдХреНрд╕ рдпрд╛ рдмрд╛рдЙрдВрдбрд┐рдВрдЧрд╕реНрдлреЗрдпрд░ рдХреЗ рд╕рд╛рде рдЪреМрд░рд╛рд╣реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирддрд╛ рд╣реИред
- web-vr-ui.js рдмрд╕ рдПрдХ рд╡реАрдЖрд░ рд▓реЙрдЧрд┐рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╕рдЪ рдХрд╣реВрдБ рддреЛ, рдпрд╣ рдмрд╣реБрдд рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ HTML рд╕реАрдзреЗ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реИрдВред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП 2 рдбреА рд╕реНрдХреНрд░реАрди рдХреА рдЕрдкрдиреА рд╕реАрдорд╛рдПрдВ рд╣реИрдВ, рдФрд░ рдмрдЯрди рдХреЛ рдирд┐рдЪрд▓реЗ рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдХрдбрд╝рд╛рдИ рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
- box.js. рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдХреНрдпреВрдм рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рддрд░реНрдХ рдорд┐рд▓реЗрдВрдЧреЗ - рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХрд╛ рдкреНрд░рдмрдВрдзрди, рдЖрджрд┐ред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдКрдкрд░ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╢реБрд░реБрдЖрддреА рд╡реАрдЖрд░ рдХрд┐рдЯ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рдм рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдПрдХ рдХрд╛рд░реНрдбрдмреЛрд░реНрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ рдФрд░ рдпрд╣, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рд░реНрдбрдмреЛрд░реНрдб рдПрдХ рддрд░рд╣ рдХрд╛ рдЦрд┐рд▓реМрдирд╛ рд╣реИ рдЬреЛ рд╡реАрдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрднрд╡ рдХрд╛ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Oculus Go, Oculus Rift рдпрд╛ HTC Vive рдХреЗ рд╕рд╛рде рдЖрднрд╛рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдореЗрдВ рдбреВрдм рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдм рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рд╕рд╣рд╛рдпрддрд╛ рдХреИрд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╡реАрдЖрд░ рдирд┐рдпрдВрддреНрд░рдХ

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ PlayCanvas рдиреЗ рдЗрд╕рдХреЗ
рднрдВрдбрд╛рд░рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рдПрдХ рдмрдЯрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд▓реЙрдЬрд┐рдХ рд╕реЗ рдЬреБрдбрд╝реЗ рд╡рд┐рднрд┐рдиреНрди рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХреЗред рд▓реЗрдХрд┐рди рдЖрдЬ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЪрд▓рд┐рдП рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рддрд░реНрдХ рдирд╣реАрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡реЗрдм рд╡реАрдЖрд░ рд▓реИрдм рдХрд╛ рдПрдХ рдмреЗрд╣рддрд░реАрди рдЙрджрд╛рд╣рд░рдг рд╣реИред рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЛрдб ... рд╢реИрддрд╛рди рдЦреБрдж рд╣реА рдЕрдкрдирд╛ рдкреИрд░ рддреЛрдбрд╝ рджреЗрдЧрд╛ред рдПрдХ рдЫреЛрдЯрд╛
рд╡реАрдЖрд░ рдЯреНрд░реИрдХреНрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рджреГрд╢реНрдп рднреА рд╣реИ - рдмрд╕ рджреЛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рдПрдХ рдореВрд▓ рджреГрд╢реНрдпред рдпрд╣рд╛рдВ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╣реА рд╣реИ рдФрд░ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рдЙрдзрд╛рд░ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред
рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП VR рдЯреНрд░реИрдХреНрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рджреГрд╢реНрдп рдЦреЛрд▓реЗрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рд╣рдо рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдЧреБрдг рдЦрдВрдб рдореЗрдВ рд╣рдо рдореЙрдбрд▓ рдкрд╛рддреЗ рд╣реИрдВ, рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдЙрд╕ рдкрд░ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
- рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдПрдХ рдбрд╛рдЙрдирд▓реЛрдб рдмрдЯрди рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рдореЙрдбрд▓ рдФрд░ рдмрдирд╛рд╡рдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред
- рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдПрд╕реЗрдЯ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЦреАрдВрдЪреЗрдВ, рдЬреЛ рдиреАрдЪреЗ рд╕реНрдерд┐рдд рд╣реИред рдЖрдкрдХреЛ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: JSON рдкреНрд░рд╛рд░реВрдк рдФрд░ рд╕рднреА рдмрдирд╛рд╡рдЯ рдореЗрдВ рдПрдХ рдореЙрдбрд▓ред
- рдореЙрдбрд▓ рд╣рдорд╛рд░реА рд╕рдВрдкрддреНрддрд┐ рдХреА рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдЗрд╕реЗ рдордВрдЪ рдкрд░ рдЦреАрдВрдЪреЗрдВред рдФрд░ рдпрд╣рд╛рдБ рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИред рдЗрд╕реЗ рд▓реЗрдлреНрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╣рддреЗ рд╣реИрдВред
рдЕрдм рд╣рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рд╕рдВрдкрддреНрддрд┐ рдкреИрдирд▓ рдкрд░ "+" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдПрдХ рдирдИ рд╕рд╛рдордЧреНрд░реА рдмрдирд╛рдПрдВред рд╕рд╛рдордЧреНрд░реА рдирд┐рдпрдВрддреНрд░рдХ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдирд╛рдо рдмрддрд╛рдПрдВред
- рдЕрдм рд╣рдореЗрдВ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЦреЛрд▓рдиреЗ рдФрд░ рд╡рд╣рд╛рдВ рдЯреНрд░реИрдХ-рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рд╛рдордЧреНрд░реА рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╣рдорд╛рд░реЗ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдорд╛рдирдХ, рдПрдорд┐рд╕рд┐рд╡, рд╕реНрдкреЗрдХреНрдпреБрд▓рд░ рдФрд░ рдбрд┐рдлреНрдпреВрдЬрд╝ рдореИрдк (рдирдХреНрд╢реЗ) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЕрдм рдЖрдк рдкрджрд╛рдиреБрдХреНрд░рдо рдкреИрдирд▓ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреВрд╕рд░реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╕рд╣реА рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣реА рд╣реИ, рд╣рдорд╛рд░реЗ рдордВрдЪ рдкрд░ рдирд┐рдпрдВрддреНрд░рдХреЛрдВред рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдпреЗ рдХреЗрд╡рд▓ рджреЛ рдореЙрдбрд▓ рд╣реИрдВ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдЗрдП рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦреЗрдВ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
- vr-gamepad-manager.js - рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рдпрдВрддреНрд░рдХ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдШреБрдорд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рддрд░реНрдХ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рд╣реИрдВред рдпрд╣рд╛рдБ, 3-рдбреЙрд▓реНрдл рд╣реЗрд▓рдореЗрдЯ рдЬреИрд╕реЗ рдУрдХреБрд▓рд╕ рдЧреЛ, рдЧрд┐рдпрд░ рд╡реАрдЖрд░ рдпрд╛ рдбреЗрдбреНрд░реАрдо рдХреЗ рд▓рд┐рдП рдирдХрд▓реА рдХреЛрд╣рдиреА рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред _updatePadToHandMappings рдпрд╣рд╛рдВ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдФрд░ рдЖрднрд╛рд╕реА рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдорд┐рд▓рд╛рди рдХреЗ рд╕рднреА рддрд░реНрдХ _poseToWorld рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣рд╛рдВ рдбреЗрдЯрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ WebXR API рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - padPose.position, padPose.poseRotationред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рддрд░реНрдХ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рдЬреБрдбрд╝реА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрд╡рдпрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛рдиреА рдкрджрд╛рдиреБрдХреНрд░рдо рдХреА рдЬрдбрд╝ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛)ред
- input-vr.js - рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдФрд░ рдмрдЯрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдмрдЯрди рдкреНрд░реЗрд╕ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рджрдмрд╛рдП рдЧрдП рдмрдЯрди рдХреА рд╕рдВрдЦреНрдпрд╛ рднреЗрдЬрддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрдЯрди рдФрд░ рдПрдХ рдЧреЗрдордкреИрдб рдПрдкреАрдЖрдИ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рддрдереНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдУрдХреБрд▓рд╕ рдЧреЛ рдореЗрдВ рдкрд╣рд▓рд╛ рдмрдЯрди рдПрдЪрдЯреАрд╕реА рд╡рд┐рд╡реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЦреЛрджрдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рд▓рд┐рдкрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рдХ рддрддреНрд╡ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЖрднрд╛рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рддрд░рдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рдлреА рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдердХрд╛рдК рд╣реИред
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░
PlayCanvas рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЗрдВрдЬрди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк WebGL рдЧреЗрдореНрд╕ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди, рдореБрдЭреЗ рдпрд╣ рдорд╛рдирдирд╛ тАЛтАЛрд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ WebVR рдХреЗ рд▓рд┐рдП рдЦрд░рд╛рдм рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдерд╛ рдХрд┐ PlayCanvas рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣рд┐рдд рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╡рд┐рдХрд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдк рдПрдХ рд╡реАрдЖрд░ рдЧреЗрдо рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдмрд╣реБрдд рдХреБрдЫ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрд╕ рдЬрдЯрд┐рд▓ рдХреЛрдб рдХреЛ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди (рд╡реЗрдм тАЛтАЛрд╡реАрдЖрд░ рд▓реИрдм) рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдХ рдЯреЗрд▓реАрдкреЛрд░реНрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд╛рда рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕реЗрдЯ рд╣реЛ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рд╡реЗрдм рд╡реАрдЖрд░ рдЧреЗрдо рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж!