zoukankan      html  css  js  c++  java
  • 重力感应操控(unity iphone)

    方案一:speed
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    public var simulateAccelerometer:boolean = false;
    var speed = 10.0;
    function Update () {
        var dir : Vector3 = Vector3.zero;
        if (simulateAccelerometer)
        {
            dir.x = Input.GetAxis("Horizontal");
            dir.y = Input.GetAxis("Vertical");
        }
        else
        {
            dir.x = Input.acceleration.x;
            dir.y = Input.acceleration.y;
         
            // clamp acceleration vector to unit sphere
            if (dir.sqrMagnitude > 1)
                dir.Normalize();
            // Make it move 10 meters per second instead of 10 meters per frame...
        }
        dir *= Time.deltaTime;
        // Move object
        transform.Translate (dir * speed);
    }

    也可以把速度换成力

    方案二:Force
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    public var force:float = 1.0;
    public var simulateAccelerometer:boolean = false;
     
    function FixedUpdate () {
        var dir : Vector3 = Vector3.zero;
     
        if (simulateAccelerometer)
        {
            // using joystick input instead of iPhone accelerometer
            dir.x = Input.GetAxis("Horizontal");
            dir.y = Input.GetAxis("Vertical");
        }
        else
        {
            // we assume that device is held parallel to the ground
            // and Home button is in the right hand
             
            // remap device acceleration axis to game coordinates
            // 1) XY plane of the device is mapped onto XZ plane
            // 2) rotated 90 degrees around Y axis
            dir.x = Input.acceleration.y;
            dir.y = Input.acceleration.x;
             
            // clamp acceleration vector to unit sphere
            if (dir.sqrMagnitude > 1)
                dir.Normalize();
        }
         
        rigidbody.AddForce(dir * force);
    }

    个人感觉方案一操控起来比较灵活,反应灵敏。方案二操控起来具有惯性,缓冲明显。

  • 相关阅读:
    排名第一、第二的OCR软件
    补码输出
    枚举 与 枚举的应用
    动态构造结构体数组
    c 冒泡排序
    strcpy
    typedef用法
    C 结构体小结
    int 占一个机器字长
    SQL Server创建视图——视图的作用
  • 原文地址:https://www.cnblogs.com/android-blogs/p/6038194.html
Copyright © 2011-2022 走看看