Esempio n. 1
0
        public CubeController DoPush(Vector3 dir)
        {
            CubeController didPush = null;

            Vector3 origin = m_Cube.transform.position;

            RaycastHit outHit = new RaycastHit();

            if (Physics.Linecast(origin, origin + dir, out outHit))
            {
                //if has any collision object, look for a CubeController its parent object, and then try to move it
                CubeController cube = outHit.collider.transform.GetComponentInParent <CubeController>();

                if (cube != null)
                {
                    if (cube.m_CanBePushed)
                    {
                        didPush = cube.DoMove(dir);
                    }
                    else if (!cube.m_PushCubeType.Equals(PushType.DontPushCubes))
                    {
                        cube.DoPush(dir);
                    }

                    //if is not possible to move, then try to shake it
                    if (!didPush)
                    {
                        cube.DoShake();
                    }
                }
            }

            return(didPush);
        }
Esempio n. 2
0
        public void DoPush(Vector3 dir)
        {
            if (m_CanPush)
            {
                Vector3 origin = m_Cube.transform.position;

                RaycastHit outHit = new RaycastHit();

                if (Physics.Linecast(origin, origin + dir, out outHit))
                {
                    //if has any collision object, look for a CubeController its parent object, and then try to move it
                    CubeController cube = outHit.collider.transform.GetComponentInParent <CubeController>();

                    if (cube != null)
                    {
                        cube.DoMove(dir);
                    }
                }
            }
        }