No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

11 Días
22 Hrs
38 Min
59 Seg
Curso de Introducción a Unity: Scripting

Curso de Introducción a Unity: Scripting

Ruth Margarita García López

Ruth Margarita García López

Manipulando al componente Transform

8/24
Recursos

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Sería genial ver como tienes configurada tu editor de código para trabajar con Unity, yo uso VS pero se ven muy prácticos los atajos que tienes.

## Clase #08: Manipulando al componente Transform ### Espacio > El espacio global es el mundo, sus coordenadas son absolutas dentro de Unity. Un espacio local por el contrario, es relativo al espacio global y es propio de cada objeto de la escena. ### Vectores direccionales > Son vectores unitarios. Hay dos formas de interpretarlos, pueden ser globales: p.ejm: Vector3.front, que son respecto al mundo o pueden ser vectores direccionales locales y se encuentran en la instancia de la clase transform de cada GameObject. Las propiedades en C# siempre empiezan con minúscula. ```c# using System.Collections; using System.Collections.Generic; using UnityEngine; public class Utils { public static Vector3 SetX (Vector3 v, float x) // SetX es el nombre del método estático { v.x = x; return v; } } ```Hacemos un script con una utilidad para usarla en el script de movimiento. Este script no hereda de MonoBehaviour y no es Serializable. ```c# using System.Collections; using System.Collections.Generic; using UnityEngine; public class Movimiento : MonoBehaviour { // Start is called before the first frame update void Start() { // Por herencia no es necesario colocar this.transform... // Se crea una clase Utils para evitar reescribir todo el tiempo las 3 líneas de abajo /* Vector3 v = transform.position; v.x = 4; transform.position = v; */ // Para que se modifique transform debemos reasignarlo ya que es de solo lectura transform.position = Utils.SetX(transform.position, 4); } } ```Script de movimiento: para poner el cubo en determinada posición del mundo.
# Clase # 8 - **Manipulando al componente Transform** # Modificación del Componente Transform ## **Cómo no modificar el Transform** No podemos modificar directamente los componentes de **position** de esta manera: csharp Copiar código transform.position.x = 4; Esto genera errores porque `position.x` es una propiedad de solo lectura. ## **Forma Correcta de Modificar Transform** Debemos asignar los valores de forma correcta creando un nuevo **Vector3**: csharp Copiar código Vector3 a = transform.position; a.x = 4; transform.position = a; # **Vectores Direccionales** * Un **vector direccional** es un **vector unitario**. * Los vectores direccionales del componente **Transform** son **locales**, lo que significa que dependen de la orientación del objeto, no de un sistema global. # **Optimización del Código** Para ahorrar líneas de código, podemos crear un script con **métodos estáticos** que simplifiquen las operaciones con el componente **Transform**. ## Características: * No hereda de **MonoBehaviour**. * No es **serializable**. ### **Ejemplo**: csharp Copiar código public static class TransformUtils { public static void SetXPosition(Transform t, float x) { Vector3 pos = t.position; pos.x = x; t.position = pos; } } Este tipo de utilidad nos ayuda a evitar escribir el mismo código repetidamente.