Страница 1 из 1

transform.Translate vs transform.position +=

СообщениеДобавлено: 06 дек 2012, 09:53
[bm]
В чем конкретная разница между transform.Transalet(offset) от просто transform.position += offset ? Интересно что происходит в transform.Transalet(offset). Знаю что только transform.position += offset быстрее.

Re: transform.Translate vs transform.position +=

СообщениеДобавлено: 06 дек 2012, 15:47
seaman
методы в движке такие:
Синтаксис:
Используется csharp
        public void Translate(Vector3 translation)
        {
            Space self = Space.Self;
            this.Translate(translation, self);
        }
        public void Translate(Vector3 translation, Space relativeTo)
        {
            if (relativeTo == Space.World)
            {
                this.position += translation;
            }
            else
            {
                this.position += this.TransformDirection(translation);
            }
        }
        public void Translate(Vector3 translation, Transform relativeTo)
        {
            if (relativeTo != null)
            {
                this.position += relativeTo.TransformDirection(translation);
            }
            else
            {
                this.position += translation;
            }
        }
        public void Translate(float x, float y, float z)
        {
            Space self = Space.Self;
            this.Translate(x, y, z, self);
        }
        public void Translate(float x, float y, float z, Space relativeTo)
        {
            this.Translate(new Vector3(x, y, z), relativeTo);
        }
        public void Translate(float x, float y, float z, Transform relativeTo)
        {
            this.Translate(new Vector3(x, y, z), relativeTo);
        }

        [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
        internal extern void SendTransformChangedScale();
        public Vector3 TransformDirection(Vector3 direction)
        {
            return INTERNAL_CALL_TransformDirection(this, ref direction);
        }
        public Vector3 TransformDirection(float x, float y, float z)
        {
            return this.TransformDirection(new Vector3(x, y, z));
        }
 


Т.е. все сводится к некоей внутренней функции public Vector3 TransformDirection(Vector3 direction), написанной на плюсах.