c# 2d重力感应 (陀螺仪)

陀螺仪代码 网上有很多,2d,3d。 不过好像 就是少了 c#  2d 版本的。

于是我找了 网上代码  改写了下。

代码都是很简单的,不多做说明了

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class news : MonoBehaviour
{
    public RectTransform go;
    private float cross_x, cross_y;
    private Vector2 vec;
    public Text tt;
    void Start()
    {
        print(go.sizeDelta.x);
        cross_x = Screen.width - go.sizeDelta.x/2;
        cross_y = Screen.height - go.sizeDelta.y/2;
        vec = go.position;
    }

    void Update()
    {
        vec.x += Input.acceleration.x*10;
        vec.y += Input.acceleration.y * 10;
        if (vec.x < go.sizeDelta.x/2)
        {
            vec.x = go.sizeDelta.x/2;
        }
        else if (vec.x > cross_x)
        {
            vec.x = cross_x;
        }

        if (vec.y < go.sizeDelta.y/2)
        {
            vec.y = go.sizeDelta.y/2;
        }
        else if (vec.y > cross_y)
        {
            vec.y = cross_y;
        }
        tt.text = vec.x + "      " + vec.y;
        go.position = vec;
    }
}

  用手机测试,效果 可以 让 红色方块 移动

 

 另外,陀螺仪我发现用的人很少,早期有人用来 做小球滚动游戏,后来就没有了。还有一些人做成 3d  ui,不过我觉得,这些用法都不对。

我有一台 psv,有  背触 功能。但真正能 结合 做出的 好游戏的 只有一款 《撕纸小邮差

其实,陀螺仪 结合游戏,不一定是  效果,也不一定是 方向控制。大家好好想想,他其实是  一个替代按键,让玩家 没法腾出手的时候,选择的一种 操作方式。

补充:

Console.WriteLine(Math.Atan2(x ,y) * 180 / Math.PI);              
突然想到  陀螺仪 可以让 场景永远 不倾斜。手机无论怎么倾斜,游戏场景都能  竖直于 自己 

 

posted on 2019-07-14 14:51  太粗难进  阅读(705)  评论(0编辑  收藏  举报