unity_tips

(1)unity ios 模拟器设置

在Unity导航栏菜单中选择Edit->ProjectSettings ->Player(菜单项)选择IOS平台在下方SDK Version处选择运行设备为IOS模拟器。 选择完毕后Build and Run 即可。 

(2)Joystick

Joystick.js是官方提供的脚本.

          public MPJoystick moveJoystick;

35     float touchKey_x =  moveJoystick.position.x;
36     float touchKey_y =  moveJoystick.position.y; 
37  
38     if(touchKey_x == -1){
39        setHeroState(HERO_LEFT);
41     }else if(touchKey_x == 1){
       setHeroState(HERO_RIGHT);
44     
46     if(touchKey_y == -1){
47         setHeroState(HERO_DOWN);
48  
49     }else if(touchKey_y == 1){
50         setHeroState(HERO_UP);
51     
61     public void setHeroState(int newState)
62     {
                     case HERO_UP:
74                 transformValue = Vector3.forward * Time.deltaTime;
97     }

(3)重力感应

GUI.Label(Rect(0,0,480,100),"position is " + Input.acceleration);

(4)简单持久化

1 PlayerPrefs.SetString("key""value");
2 string str = PlayerPrefs.GetString("key""defaule"));

 GetString()方法中的第二个参数, 它代表默认值。如果通过第一个参数的Key没有找到对应的Value的话,

GetString()方法就会返回我们写的第二个参数的默认值。

1 //删除 PlayerPrefs 中某一个key的值
2 PlayerPrefs. DeleteKey (“key”);
3  
4 //判断 PlayerPrefs中是否存在这个key
5 bool b = PlayerPrefs.HasKey(“key”);

(5)播放音乐

18         if (GUI.Button(new Rect(10, 10, 100, 50), "Play music"))  {
19  
20             //没有播放中
21             if (!music.isPlaying){
22                 //播放音乐
23                 music.Play();
24             }
25  
26         }

(6)旋转屏幕

强制屏幕四个方向不旋转的方法

1 void Start () {
2     //纵向 上下 两个方向
3     iPhoneKeyboard.autorotateToPortrait = false;
4     iPhoneKeyboard.autorotateToPortraitUpsideDown = false;
5  
6     //横向 上下两个方向
7     iPhoneKeyboard.autorotateToLandscapeLeft = false;
8     iPhoneKeyboard.autorotateToLandscapeRight = false;
9 }

(7)

动态创建游戏对象

GameObject Obj = (GameObject)Instantiate(prefab);

同步加载场景

Application.LoadLevel(“yourScene”);

异步加载场景

第一种异步加载游戏场景对应的方法是:

1 Application.LoadLevelAsync("yourScene");

 第二种异步家在游戏场景对应的方法是:

1 Application.LoadLevelAdditiveAsync ("yourScene");

(8)

游戏场景中Hierarchy视图中的所有的对象在切换场景的时候都会加载。其实有一种方法可以让某些游戏对象不会被加载,首先在Hierarchy视图中选择一个游戏对象,在右侧监测面板视图中我们可以看到一个 “小对勾”默认情况下是勾选状态,说明该游戏对象处于激活状态,如果点掉的话该对象将被隐藏。

  IEnumerator loadObject()
18     {
19         //便利所有游戏对象
20         foreach(GameObject obj in Objects)
21         {
22             //激活游戏对象
23             obj.active = true;
24             //记录当前加载的对象
25             load_index ++;
26  
27             //这里可以理解为通知主线程刷新UI
28             yield return 0;
29         }
30         //全部便利完毕返回
31         yield return 0;
32     }

(9)

StartCoroutine(),其实就是开启一个异步线程,这里可能有朋友会问Thread可以代替它吗? 答案是不行, 比如查询数据库的时候如果用Thread的话Unity就会报错说不能在线程中查询,但是在StartCoroutine()中就可以完成,所以开发中大家可以尝试着使用它,我们还可以使用StopCoroutine(“name”)来关闭一个正在执行的异步线程。

(10)

可以点击右上角的那个类似 十字 的按钮,现在y轴指向下面,所以倒过来了
点击带尖的会转向那个方向,中间的方块是转换透视和Iso观察方式

或者按 alt ,会出现一个 眼睛 图标,此时按住左键并移动鼠标就可以转动场景了




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值