MoveTo - ObjectReference/uk: Difference between revisions

Jump to navigation Jump to search
m
Convert source tags to syntaxhighlight
m (Convert source tags to syntaxhighlight)
 
Line 7: Line 7:


== Синтаксис ==
== Синтаксис ==
<source lang="papyrus">
<syntaxhighlight lang="papyrus">
Function MoveTo(ObjectReference akTarget, float afXOffset = 0.0,
Function MoveTo(ObjectReference akTarget, float afXOffset = 0.0,
   float afYOffset = 0.0, float afZOffset = 0.0, bool abMatchRotation = true) native
   float afYOffset = 0.0, float afZOffset = 0.0, bool abMatchRotation = true) native
</source>
</syntaxhighlight>


== Параметри ==
== Параметри ==
Line 27: Line 27:


== Приклади ==
== Приклади ==
<source lang="papyrus">
<syntaxhighlight lang="papyrus">
; Переміщує Боба до його будинку, позначеного маркером BobsHouseMarker
; Переміщує Боба до його будинку, позначеного маркером BobsHouseMarker
Bob.MoveTo(BobsHouseMarker)
Bob.MoveTo(BobsHouseMarker)
</source>
</syntaxhighlight>
<br/>
<br/>
<source lang="papyrus">
<syntaxhighlight lang="papyrus">
; Переміщує Боба до його будинку, але без успадкування обертань
; Переміщує Боба до його будинку, але без успадкування обертань
Bob.MoveTo(BobsHouseMarker, abMatchRotation = false)
Bob.MoveTo(BobsHouseMarker, abMatchRotation = false)
</source>
</syntaxhighlight>
<br/>
<br/>
<source lang="papyrus">
<syntaxhighlight lang="papyrus">
; Переміщує Portal на 120 од. перед гравцем, та на 35 од. нижче його зросту
; Переміщує Portal на 120 од. перед гравцем, та на 35 од. нижче його зросту
Actor PlayerRef = Game.GetPlayer()
Actor PlayerRef = Game.GetPlayer()
Portal.MoveTo(PlayerRef, 120.0 * Math.Sin(PlayerRef.GetAngleZ()), 120.0 * Math.Cos(PlayerRef.GetAngleZ()), PlayerRef.GetHeight() - 35.0)
Portal.MoveTo(PlayerRef, 120.0 * Math.Sin(PlayerRef.GetAngleZ()), 120.0 * Math.Cos(PlayerRef.GetAngleZ()), PlayerRef.GetHeight() - 35.0)
</source>
</syntaxhighlight>


== Зауваження ==
== Зауваження ==
Line 52: Line 52:
* MoveTo може призводити до небажаних результатів під час переміщення об'єкта до іншого актора, кути обертання X та Y якого є відносними до кута огляду цього актора, а не до їхнього обертання відносно світу. Крім того, як і [[SetPosition - ObjectReference/uk|SetPosition]] [[SetPosition - ObjectReference|(en)]], MoveTo не враховує нерівний рельєф місцевості.
* MoveTo може призводити до небажаних результатів під час переміщення об'єкта до іншого актора, кути обертання X та Y якого є відносними до кута огляду цього актора, а не до їхнього обертання відносно світу. Крім того, як і [[SetPosition - ObjectReference/uk|SetPosition]] [[SetPosition - ObjectReference|(en)]], MoveTo не враховує нерівний рельєф місцевості.
** Щоб «вирівняти» або зробити обертання об'єкта плоским, встановіть параметр abMatchRotation на False або викличте [[SetAngle - ObjectReference/uk|SetAngle]] [[SetAngle - ObjectReference|(en)]], як показано нижче:
** Щоб «вирівняти» або зробити обертання об'єкта плоским, встановіть параметр abMatchRotation на False або викличте [[SetAngle - ObjectReference/uk|SetAngle]] [[SetAngle - ObjectReference|(en)]], як показано нижче:
<source lang="papyrus">
<syntaxhighlight lang="papyrus">
myObject.MoveTo(Game.GetPlayer()) ;або будь-яка інша ціль для MoveTo()
myObject.MoveTo(Game.GetPlayer()) ;або будь-яка інша ціль для MoveTo()
myObject.SetAngle(0.0, 0.0, 0.0)
myObject.SetAngle(0.0, 0.0, 0.0)
</source>
</syntaxhighlight>
* Актор, переміщений за допомогою цієї функції, завжди має правильний поворот відносно світу.
* Актор, переміщений за допомогою цієї функції, завжди має правильний поворот відносно світу.


Navigation menu