找回密码
 立即注册

发一个控制方块翻滚的代码

热度 1已有 1506 次阅读2012-11-29 09:58

using UnityEngine;

using System.Collections;


public class CiTween : MonoBehaviour {


        // Use this for initialization

        public Transform cube;            //控制翻滚的方块//

        private float PositionZ=0.5f;

        private float PositionX=0.5f;

        private float PositionY=-1f;

        private bool isDown=false;

        private bool isDownW=false;

        private bool isDownA=false;

        private bool isDownS=false;

        private bool isDownD=false;

        private bool isLieDownZ=false;

        private bool isLieDownX=false;

        void Start () {

                this.transform.position=cube.transform.position; 

                

        }

        

        void Update () {        

                if(isLieDownX){

                        PositionX=1f;

                }else{

                        PositionX=0.5f;

                }

                if(isLieDownZ){

                        PositionZ=1f;

                }else{

                        PositionZ=0.5f;

                }

                if(Input.GetKeyDown (KeyCode.W)&&!this.transform.GetComponent()&&!isDown){

                        isDown=true;

                        isDownW=true;

                        cube.transform.parent=null;

                        this.transform.position=cube.transform.position;

                        this.transform.rotation = Quaternion.Euler(new Vector3(0,0,0));

                        this.transform.position=new Vector3(this.transform.position.x,PositionY,this.transform.position.z+PositionZ);

                }

                if(Input.GetKeyUp(KeyCode.W)&&!this.transform.GetComponent()&&isDown&&isDownW){

                        cube.transform.parent=this.transform;

                        iTween.RotateBy(this.gameObject,iTween.Hash("x",0.25f,"time",0.3));

                        isDown=false;

                        isDownW=false;

                        if(!isLieDownX){

                                isLieDownZ=(isLieDownZ?false:true);

                        }

                        

                }

                if(Input.GetKeyDown (KeyCode.S)&&!this.transform.GetComponent()&&!isDown){

                        isDown=true;

                        isDownS=true;

                        cube.transform.parent=null;

                        this.transform.position=cube.transform.position;

                        this.transform.rotation = Quaternion.Euler(new Vector3(0,0,0));

                        this.transform.position=new Vector3(this.transform.position.x,PositionY,this.transform.position.z-PositionZ);

                }

                if(Input.GetKeyUp(KeyCode.S)&&!this.transform.GetComponent()&&isDown&&isDownS){

                        cube.transform.parent=this.transform;

                        iTween.RotateBy(this.gameObject,iTween.Hash("x",-0.25f,"time",0.3));

                        isDown=false;

                        isDownS=false;

                        if(!isLieDownX){

                                isLieDownZ=(isLieDownZ?false:true);

                        }

                        

                }

                if(Input.GetKeyDown (KeyCode.A)&&!this.transform.GetComponent()&&!isDown){

                        isDown=true;

                        isDownA=true;

                        cube.transform.parent=null;

                        this.transform.position=cube.transform.position;

                        this.transform.rotation = Quaternion.Euler(new Vector3(0,0,0));

                        this.transform.position=new Vector3(this.transform.position.x-PositionX,PositionY,this.transform.position.z);

                }

                if(Input.GetKeyUp(KeyCode.A)&&!this.transform.GetComponent()&&isDown&&isDownA){

                        cube.transform.parent=this.transform;

                        iTween.RotateBy(this.gameObject,iTween.Hash("z",0.25f,"time",0.3));

                        isDown=false;

                        isDownA=false;

                        if(!isLieDownZ){

                                isLieDownX=(isLieDownX?false:true);

                        }

                }

                if(Input.GetKeyDown (KeyCode.D)&&!this.transform.GetComponent()&&!isDown){

                        isDown=true;

                        isDownD=true;

                        cube.transform.parent=null;

                        this.transform.position=cube.transform.position;

                        this.transform.rotation = Quaternion.Euler(new Vector3(0,0,0));

                        this.transform.position=new Vector3(this.transform.position.x+PositionX,PositionY,this.transform.position.z);

                }

                if(Input.GetKeyUp(KeyCode.D)&&!this.transform.GetComponent()&&isDown&&isDownD){

                        cube.transform.parent=this.transform;

                        iTween.RotateBy(this.gameObject,iTween.Hash("z",-0.25f,"time",0.3));

                        isDown=false;

                        isDownD=false;

                        if(!isLieDownZ){

                                isLieDownX=(isLieDownX?false:true);

                        }

                }

        }

}

1

路过

雷人

握手

鲜花

鸡蛋

刚表态过的朋友 (1 人)

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-7 02:43 , Processed in 0.044586 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

返回顶部