Exemple #1
0
    // This must be called _BEFORE_ each draw!!
    public void CompositeXform(ref Matrix4x4 parentXform)
    {
        Matrix4x4 orgT = Matrix4x4.Translate(NodeOrigin);
        Matrix4x4 trs  = Matrix4x4.TRS(transform.localPosition, transform.localRotation, transform.localScale);

        mCombinedParentXform = parentXform * orgT * trs;

        location = mCombinedParentXform.GetColumn(3);
        rotation = Quaternion.LookRotation(mCombinedParentXform.GetColumn(2), mCombinedParentXform.GetColumn(1));

        // propagate to all children
        foreach (Transform child in transform)
        {
            SceneNode cn = child.GetComponent <SceneNode>();
            if (cn != null)
            {
                cn.CompositeXform(ref mCombinedParentXform);
            }
        }

        // disenminate to primitives
        foreach (NodePrimitive p in PrimitiveList)
        {
            p.LoadShaderMatrix(ref mCombinedParentXform);
        }
    }
Exemple #2
0
    // This must be called _BEFORE_ each draw!!
    public void CompositeXform(ref Matrix4x4 parentXform)
    {
        Matrix4x4 orgT = Matrix4x4.Translate(NodeOrigin);
        Matrix4x4 trs  = Matrix4x4.TRS(transform.localPosition, transform.localRotation, transform.localScale);

        mCombinedParentXform = parentXform * orgT * trs;

        // propagate to all children
        foreach (Transform child in transform)
        {
            SceneNode cn = child.GetComponent <SceneNode>();
            if (cn != null)
            {
                cn.CompositeXform(ref mCombinedParentXform);
            }
        }

        // disenminate to primitives
        foreach (NodePrimitive p in PrimitiveList)
        {
            p.LoadShaderMatrix(ref mCombinedParentXform);
        }

        // Compute AxisFrame
        if (AxisFrame != null)
        {
            AxisFrame.localPosition = mCombinedParentXform.MultiplyPoint(kDefaultTreeTip);
            Vector3 p = mCombinedParentXform.MultiplyPoint(kAtPos);
            Debug.DrawLine(p, AxisFrame.localPosition, Color.red);
        }
    }
Exemple #3
0
    // This must be called _BEFORE_ each draw!!
    public void CompositeXform(ref Matrix4x4 parentXform)
    {
        Matrix4x4 orgT = Matrix4x4.Translate(NodeOrigin);
        Matrix4x4 trs  = Matrix4x4.TRS(transform.localPosition, transform.localRotation, transform.localScale);

        mCombinedParentXform = parentXform * orgT * trs;

        // propagate to all children
        foreach (Transform child in transform)
        {
            SceneNode cn = child.GetComponent <SceneNode>();
            if (cn != null)
            {
                cn.CompositeXform(ref mCombinedParentXform);
            }
        }

        // disenminate to primitives
        foreach (NodePrimitive p in PrimitiveList)
        {
            p.LoadShaderMatrix(ref mCombinedParentXform);
        }

        ////sc = sc.GetComponent<Camera>();
        //if (sc != null)
        //    sc.loadCombinedMatrix(ref mCombinedParentXform);
    }
Exemple #4
0
    void Update()
    {
        Vector3   pos, dir;
        Matrix4x4 m = Matrix4x4.identity;

        RootNode.CompositeXform(ref m, out pos, out dir);
    }
Exemple #5
0
    // tipPos: is the origin of this scene node
    // topDir: is the y-direction of this node
    public void CompositeXform(ref Matrix4x4 parentXform, out Vector3 snOrgin, out Vector3 snUp)
    {
        Matrix4x4 orgT = Matrix4x4.Translate(NodeOrigin);
        Matrix4x4 trs  = Matrix4x4.TRS(transform.localPosition, transform.localRotation, transform.localScale);

        mCombinedParentXform = parentXform * orgT * trs;

        // let's decompose the combined matrix into R, and S
        Vector3    c0 = mCombinedParentXform.GetColumn(0);
        Vector3    c1 = mCombinedParentXform.GetColumn(1);
        Vector3    c2 = mCombinedParentXform.GetColumn(2);
        Vector3    s  = new Vector3(c0.magnitude, c1.magnitude, c2.magnitude);
        Quaternion q  = Quaternion.LookRotation(c2, c1); // creates a rotation matrix with c2-Forward, c1-up

        snOrgin = mCombinedParentXform.GetColumn(3);
        snUp    = c1;

        // propagate to all children
        foreach (Transform child in transform)
        {
            SceneNode cn = child.GetComponent <SceneNode>();
            if (cn != null)
            {
                cn.CompositeXform(ref mCombinedParentXform, out snOrgin, out snUp);
            }
        }

        // disenminate to primitives
        foreach (NodePrimitive p in PrimitiveList)
        {
            p.LoadShaderMatrix(ref mCombinedParentXform);
        }
    }
Exemple #6
0
 public static void ShowXForm()
 {
     if (root != null && preview)
     {
         SceneNode tmp = root;
         Matrix4x4 i   = Matrix4x4.identity;
         tmp.CompositeXform(ref i);
     }
 }
    void Update()
    {
        Vector3   pos, dir;
        Matrix4x4 m = Matrix4x4.identity;

        RootNode.CompositeXform(ref m, out pos, out dir);

        Vector3 p1 = pos;
        Vector3 p2 = pos + kSightLength * dir;
    }
Exemple #8
0
 void Update()
 {
     // (Kyla) so can test magnet in separate scene
     if (RootNode_Crane != null)
     {
         Matrix4x4 m = Matrix4x4.identity;
         RootNode_Crane.CompositeXform(ref m);
     }
     CastClawShadow();
     PositionClawObj();
 }
Exemple #9
0
    private void Update()
    {
        Matrix4x4 i = Matrix4x4.identity;

        TheRoot.CompositeXform(ref i);

        if (Input.GetKeyDown(KeyCode.Q) || Input.GetKeyDown(KeyCode.Escape))
        {
            Application.Quit();
        }
    }
Exemple #10
0
    // This must be called _BEFORE_ each draw!!
    public void CompositeXform(ref Matrix4x4 parentXform)
    {
        Matrix4x4 orgT = Matrix4x4.Translate(NodeOrigin);
        Matrix4x4 trs  = Matrix4x4.TRS(transform.localPosition, transform.localRotation, transform.localScale);

        mCombinedParentXform = parentXform * orgT * trs;

        // propagate to all children
        foreach (Transform child in transform)
        {
            SceneNode cn = child.GetComponent <SceneNode>();
            if (cn != null)
            {
                cn.CompositeXform(ref mCombinedParentXform);
            }
        }

        // disenminate to primitives
        foreach (NodePrimitive p in PrimitiveList)
        {
            p.LoadShaderMatrix(ref mCombinedParentXform);
        }


        // Compute AxisFrame
        if (AxisFrame != null)
        {
            AxisFrame.localPosition = mCombinedParentXform.MultiplyPoint(kDefaultTreeTip);

            //
            // What is going on in the next two lines of code?
            Vector3 up      = mCombinedParentXform.GetColumn(1).normalized;
            Vector3 forward = mCombinedParentXform.GetColumn(2).normalized;

            if (UseUnity)
            {
                AxisFrame.localRotation = Quaternion.LookRotation(forward, up);
            }
            else
            {
                // First align up direction, remember that the default AxisFrame.up is simply the y-axis
                float   angle = Mathf.Acos(Vector3.Dot(Vector3.up, up)) * Mathf.Rad2Deg;
                Vector3 axis  = Vector3.Cross(Vector3.up, up);
                AxisFrame.localRotation = Quaternion.AngleAxis(angle, axis);

                // Now, align the forward axis
                angle = Mathf.Acos(Vector3.Dot(AxisFrame.transform.forward, forward)) * Mathf.Rad2Deg;
                axis  = Vector3.Cross(AxisFrame.transform.forward, forward);
                AxisFrame.localRotation = Quaternion.AngleAxis(angle, axis) * AxisFrame.localRotation;
            }
        }
        CalcHead();
    }
Exemple #11
0
    // This must be called _BEFORE_ each draw!!
    public void CompositeXform(ref Matrix4x4 parentXform)
    {
        Matrix4x4 pivot    = Matrix4x4.TRS(Pivot, Quaternion.identity, Vector3.one);  // Pivot translation
        Matrix4x4 invPivot = Matrix4x4.TRS(-Pivot, Quaternion.identity, Vector3.one); // inv Pivot
        Matrix4x4 trs      = Matrix4x4.TRS(transform.localPosition, transform.localRotation, transform.localScale);

        mCombinedParentXform = parentXform * pivot * trs;

        // propagate to all children
        foreach (Transform child in transform)
        {
            SceneNode cn = child.GetComponent <SceneNode>();
            if (cn != null)
            {
                cn.CompositeXform(ref mCombinedParentXform);
            }
        }

        // disenminate to primitives
        foreach (NodePrimitive p in PrimitiveList)
        {
            p.LoadShaderMatrix(ref mCombinedParentXform);
        }

        // Compute AxisFrame
        if (pivotP != null)
        {
            Vector3   x     = mCombinedParentXform.GetColumn(0);
            Vector3   y     = mCombinedParentXform.GetColumn(1);
            Vector3   z     = mCombinedParentXform.GetColumn(2);
            Vector3   size  = new Vector3(x.magnitude, y.magnitude, z.magnitude);
            Matrix4x4 xform = mCombinedParentXform * invPivot;
            pivotP.transform.localPosition = xform.MultiplyPoint(defaultPivotPos);
            pivotP.transform.localRotation = Quaternion.LookRotation(z / size.z, y / size.y);
        }

        if (isCamera)
        {
            if (smallViewCamera != null)
            {
                Vector3   x     = mCombinedParentXform.GetColumn(0);
                Vector3   y     = mCombinedParentXform.GetColumn(1);
                Vector3   z     = mCombinedParentXform.GetColumn(2);
                Vector3   size  = new Vector3(x.magnitude, y.magnitude, z.magnitude);
                Matrix4x4 xform = mCombinedParentXform * invPivot;
                smallViewCamera.transform.localPosition = xform.MultiplyPoint(cameraPos);
                smallViewCamera.transform.localRotation = Quaternion.LookRotation(y / size.y, -z / size.z);
            }
        }
    }
Exemple #12
0
    void Update()
    {
        Vector3   pos, dir;
        Matrix4x4 m = Matrix4x4.identity;

        RootNode.CompositeXform(ref m);
        if (rocket.activeSelf)
        {
            pos = rocket.transform.position;
            dir = rocket.transform.up;
        }
        else
        {
            pos = SceneNode.selected.snOrigin;
            dir = SceneNode.selected.snUp;
        }

        Vector3 p1 = pos;
        Vector3 p2 = pos + kSightLength * dir;

        LineOfSight.SetEndPoints(p1, p2);

        // Now update NodeCam
        NodeCam.transform.localPosition = pos + kNodeCamPos * dir;
        //NodeCam.transform.localPosition = pos;
        // NodeCam.transform.LookAt(p2, Vector3.up);
        //NodeCam.transform.forward = (p2 - NodeCam.transform.localPosition).normalized;
        NodeCam.transform.forward = dir.normalized;


        if (rocket.activeSelf)
        {
            if (Vector3.Distance(rocket.transform.position, RootNode.transform.position) < 10)
            {
                Destroy(explosion);
                explosion = Instantiate(explosionModel, rocket.transform.position, Quaternion.identity) as GameObject;
                rocket.SetActive(false);
            }
            if (Vector3.Distance(rocket.transform.position, alien.transform.position) < 2)
            {
                Destroy(explosion);
                explosion = Instantiate(explosionModel, rocket.transform.position, Quaternion.identity) as GameObject;
                alien.SetActive(false);
            }
            else
            {
                CheckCollision(RootNode.transform);
            }
        }
    }
Exemple #13
0
    void Update()
    {
        Vector3   pos, dir;
        Matrix4x4 m = Matrix4x4.identity;

        RootNode.CompositeXform(ref m, out pos, out dir);

        Vector3 p1 = pos;
        Vector3 p2 = pos + kSightLength * dir;

        // Now update NodeCam
        NodeCam.transform.localPosition = pos + CameraDistance * dir;
        // NodeCam.transform.LookAt(p2, Vector3.up);
        NodeCam.transform.forward = (p2 - NodeCam.transform.localPosition).normalized;
    }
Exemple #14
0
    // tipPos: is the origin of this scene node
    // topDir: is the y-direction of this node
    public void CompositeXform(ref Matrix4x4 parentXform, out Vector3 snPivot, out Vector3 snUp)
    {
        Matrix4x4 pivot = Matrix4x4.TRS(Pivot, Quaternion.identity, Vector3.one);  // Pivot translation
        //Matrix4x4 invPivot = Matrix4x4.TRS(-Pivot, Quaternion.identity, Vector3.one);  // inv Pivot
        Matrix4x4 trs = Matrix4x4.TRS(transform.localPosition, transform.localRotation, transform.localScale);

        mCombinedParentXform = parentXform * pivot * trs;

        // let's decompose the combined matrix into R, and S
        Vector3   c0 = mCombinedParentXform.GetColumn(0);
        Vector3   c1 = mCombinedParentXform.GetColumn(1);
        Vector3   c2 = mCombinedParentXform.GetColumn(2);
        Vector3   s  = new Vector3(c0.magnitude, c1.magnitude, c2.magnitude);
        Matrix4x4 r  = Matrix4x4.identity;

        c0 /= s.x;  // normalize the columns
        c1 /= s.y;
        c2 /= s.z;
        r.SetColumn(0, c0);
        r.SetColumn(1, c1);
        r.SetColumn(2, c2);
        //Quaternion q = Quaternion.LookRotation(c2, c1); // creates a rotation matrix with c2-Forward, c1-up

        snPivot = mCombinedParentXform.GetColumn(3);
        snUp    = c1;

        //AxisFrame.transform.localPosition = snPivot;  // our location is Pivot
        //AxisFrame.transform.localScale = s * kAxisFrameSize;
        //AxisFrame.transform.localRotation = q;

        // propagate to all children
        foreach (Transform child in transform)
        {
            SceneNode cn = child.GetComponent <SceneNode>();
            if (cn != null)
            {
                cn.CompositeXform(ref mCombinedParentXform, out snPivot, out snUp);
            }
        }

        // disenminate to primitives
        foreach (NodePrimitive p in PrimitiveList)
        {
            p.LoadShaderMatrix(ref mCombinedParentXform);
        }
    }
Exemple #15
0
    // This must be called _BEFORE_ each draw!!
    public void CompositeXform(ref Matrix4x4 parentXform)
    {
        Matrix4x4 orgT = Matrix4x4.Translate(NodeOrigin);
        Matrix4x4 orgR = Matrix4x4.Rotate(rotation);
        //Debug.Log("localPos:" + transform.localPosition + " localRot: " + transform.localRotation + " localScale: " + transform.localScale);
        Matrix4x4 trs = Matrix4x4.TRS(transform.localPosition, transform.localRotation, transform.localScale);

        mCombinedParentXform = parentXform * orgT * orgR * trs;

        // propagate to all children
        foreach (Transform child in transform)
        {
            SceneNode cn = child.GetComponent <SceneNode>();
            if (cn != null)
            {
                cn.CompositeXform(ref mCombinedParentXform);
            }
        }

        // disenminate to primitives
        foreach (NodePrimitive p in PrimitiveList)
        {
            p.LoadShaderMatrix(ref mCombinedParentXform);
        }

        // Compute AxisFrame
        if (AxisFrame != null)
        {
            AxisFrame.localPosition = mCombinedParentXform.MultiplyPoint(Vector3.zero);

            Vector3 up      = mCombinedParentXform.GetColumn(1).normalized;
            Vector3 forward = mCombinedParentXform.GetColumn(2).normalized;
            float   angle   = Mathf.Acos(Vector3.Dot(Vector3.up, up)) * Mathf.Rad2Deg;
            Vector3 axis    = Vector3.Cross(Vector3.up, up);
            AxisFrame.localRotation = Quaternion.AngleAxis(angle, axis);

            angle = Mathf.Acos(Vector3.Dot(AxisFrame.transform.forward, forward)) * Mathf.Rad2Deg;
            axis  = Vector3.Cross(AxisFrame.transform.forward, forward);
            AxisFrame.localRotation = Quaternion.AngleAxis(angle, axis) * AxisFrame.localRotation;
        }
    }
Exemple #16
0
    // This must be called _BEFORE_ each draw!!
    public void CompositeXform(ref Matrix4x4 parentXform)
    {
        Matrix4x4 orgT = Matrix4x4.Translate(NodeOrigin);
        Matrix4x4 trs  = Matrix4x4.TRS(transform.localPosition, transform.localRotation, transform.localScale);

        mCombinedParentXform = parentXform * orgT * trs;

        // propagate to all children
        foreach (Transform child in transform)
        {
            SceneNode cn = child.GetComponent <SceneNode>();
            if (cn != null)
            {
                cn.CompositeXform(ref mCombinedParentXform);
            }
        }

        // disenminate to primitives
        foreach (NodePrimitive p in PrimitiveList)
        {
            p.LoadShaderMatrix(ref mCombinedParentXform);
        }

        /*/ Compute AxisFrame
         * if (AxisFrame != null)
         * {
         *  AxisFrame.GetComponent<Renderer>().enabled = false;
         *  if (Parent != null)
         *  {
         *      AxisFrame.localPosition = mCombinedParentXform.MultiplyPoint(transform.localPosition);
         *      AxisFrame.localRotation = transform.localRotation;
         *  }
         *  else
         *  {
         *      AxisFrame.localPosition = transform.localPosition + Offset;
         *      AxisFrame.localRotation = transform.localRotation;
         *  }
         * }*/
    }
Exemple #17
0
    // This must be called _BEFORE_ each draw!!
    public void CompositeXform(ref Matrix4x4 parentXform)
    {
        Matrix4x4 pivot = Matrix4x4.TRS(Pivot, Quaternion.identity, Vector3.one);  // Pivot translation
        //Matrix4x4 invPivot = Matrix4x4.TRS(-Pivot, Quaternion.identity, Vector3.one);  // inv Pivot
        Matrix4x4 trs = Matrix4x4.TRS(transform.localPosition, transform.localRotation, transform.localScale);

        //Debug.Log( transform.gameObject.name + " Pivot\n" + pivot.ToString());
        // Sets new reference point
        // Inverse of the pivot is calculated in the node primitive class
        mCombinedParentXform = parentXform * pivot * trs;

        // propagate to all children
        foreach (Transform child in transform)
        {
            SceneNode cn = child.GetComponent <SceneNode>();
            //Debug.Log("Traversing: " + transform.gameObject.name);
            if (cn != null)
            {
                cn.CompositeXform(ref mCombinedParentXform);
            }
        }

        // disenminate to primitives
        foreach (NodePrimitive p in PrimitiveList)
        {
            p.LoadShaderMatrix(ref mCombinedParentXform);
        }

        //Debug.Log(transform.gameObject.name  + " local position : " + transform.localPosition.ToString());
        //Debug.Log(transform.gameObject.name + " reference position:\n" + mCombinedParentXform.ToString());
        //Debug.Log(transform.gameObject.name + " Pivot " + Pivot.ToString());
        // Compute AxisFrame
        // if (AxisFrame != null)
        //{
        //   AxisFrame.localPosition = mCombinedParentXform.MultiplyPoint(Pivot);
        //   AxisFrame.localRotation = transform.rotation; // axis frame matches selected node's rotation
        //Debug.Log("Axis Frame Position from " + transform.gameObject.name + " : " + mCombinedParentXform.MultiplyPoint(Pivot).ToString());
        // }
    }
Exemple #18
0
    // Update is called once per frame
    void Update()
    {
        Time.timeScale = timeScale;
        Matrix4x4 i = Matrix4x4.identity;

        TheRoot.CompositeXform(ref i);

        if (Input.GetKeyDown(KeyCode.H))
        {
            SceneManager.LoadScene("ScottShirleyMP4");
        }

        if (Input.GetKeyDown(KeyCode.P))
        {
            timeScale = (isPause) ? 1 : 0;
            isPause   = !isPause;
        }

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            Application.Quit();
        }
    }
    // Called before draws
    public void CompositeXform(ref Matrix4x4 parentXform)
    {
        Matrix4x4 orgT = Matrix4x4.Translate(NodeOrigin);
        Matrix4x4 trs  = Matrix4x4.TRS(transform.localPosition, transform.localRotation, transform.localScale);

        mCombinedParentXform = parentXform * orgT * trs;

        //Pass to children
        foreach (Transform child in transform)
        {
            SceneNode cn = child.GetComponent <SceneNode>();
            if (cn != null)
            {
                cn.CompositeXform(ref mCombinedParentXform);
            }
        }

        // Send to primitives
        foreach (NodePrimitive p in PrimitiveList)
        {
            p.LoadShaderMatrix(ref mCombinedParentXform);
        }
    }
Exemple #20
0
    private void Update()
    {
        Matrix4x4 i = Matrix4x4.identity;

        TheRoot.CompositeXform(ref i);
    }
Exemple #21
0
    private void Update()
    {
        shipHealth.text = "Space Ship Health: " + health;
        if (health <= 0)
        {
            SetPlayMode();
            warning.text = "Game over! Ship destroyed!";
            health       = 100;
        }
        if (Input.GetKeyDown(KeyCode.X))
        {
            if (giantAsteroids.Count > 0)
            {
                for (int k = 0; k < giantAsteroids.Count; k++)
                {
                    GiantAsteroid ga = giantAsteroids[k];
                    giantAsteroids.Remove(giantAsteroids[k]);
                    GameObject.Destroy(ga.gameObject);
                }
            }
        }
        if (TheRoot != null)
        {
            Matrix4x4 i = Matrix4x4.identity;
            TheRoot.CompositeXform(ref i);
            if (isPlayTime)
            {
                TheRoot.transform.localPosition += TheRoot.transform.up * .1f;
                velocity = TheRoot.transform.up * .1f;
                timePastInstantiation += Time.deltaTime;
                curgiantGen           += Time.deltaTime;

                if (curgiantGen >= giantGenInterval)
                {
                    GameObject g = Instantiate(Resources.Load("Prefabs\\GiantAsteroid")) as GameObject;
                    g.GetComponent <GiantAsteroid>().world = this;
                    // Set spawning location
                    g.transform.localPosition = new Vector3(Random.Range(asteroidSpawningPoint.transform.localPosition.x - 50f,
                                                                         asteroidSpawningPoint.transform.localPosition.x + 50f), Random.Range(asteroidSpawningPoint.transform.localPosition.y - 50f,
                                                                                                                                              asteroidSpawningPoint.transform.localPosition.y + 50f), Random.Range(asteroidSpawningPoint.transform.localPosition.z - 50f,
                                                                                                                                                                                                                   asteroidSpawningPoint.transform.localPosition.z + 50f));
                    giantAsteroids.Add(g.GetComponent <GiantAsteroid>());
                    // Sets direction of travel and speed of asteroid
                    curgiantGen = 0f;
                }

                if (timePastInstantiation >= generateInterval)
                {
                    GameObject g = Instantiate(Resources.Load("Prefabs\\Asteroid")) as GameObject;
                    g.GetComponent <Asteroid>().Initialize(this);
                    // Set spawning location
                    g.transform.localPosition = new Vector3(Random.Range(asteroidSpawningPoint.transform.localPosition.x - 5f,
                                                                         asteroidSpawningPoint.transform.localPosition.x + 5f), Random.Range(asteroidSpawningPoint.transform.localPosition.y - 5f,
                                                                                                                                             asteroidSpawningPoint.transform.localPosition.y + 5f), Random.Range(asteroidSpawningPoint.transform.localPosition.z - 5f,
                                                                                                                                                                                                                 asteroidSpawningPoint.transform.localPosition.z + 5f));

                    // Sets direction of travel and speed of asteroid
                    g.GetComponent <Asteroid>().SetTravellingDirection(new Vector3(Random.Range(-1, 1), Random.Range(-1, 1), Random.Range(-1, 1)));
                    g.GetComponent <Asteroid>().SetSpeed(15f);
                    asteroids.Add(g.GetComponent <Asteroid>());
                    timePastInstantiation = 0f;
                }
            }
            else
            {
                for (int k = 0; k < giantAsteroids.Count; k++)
                {
                    GiantAsteroid ga = giantAsteroids[k];
                    giantAsteroids.Remove(giantAsteroids[k]);
                    GameObject.Destroy(ga.gameObject);
                }
                for (int k = 0; k < asteroids.Count; k++)
                {
                    Asteroid ast = asteroids[k];
                    asteroids.Remove(asteroids[k]);
                    GameObject.Destroy(ast.gameObject);
                }
                foreach (StationarySentry sentry in existingSentries)
                {
                    sentry.enabled = true;
                }
            }
        }
    }
    void Update()
    {
        Matrix4x4 i = Matrix4x4.identity;

        mBallMachine.CompositeXform(ref i);
    }
Exemple #23
0
    void Update()
    {
        Matrix4x4 i = Matrix4x4.identity;

        root.CompositeXform(ref i);
    }