• 重力感应操控(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);
    }

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

  • 相关阅读:
    如何检测和删除通过pip安装的Python包?
    tensorflow使用keras
    ubuntu18.04安装tensorflow2.0
    python pip版本的安装与管理
    leetcode 377. 组合总和 Ⅳ
    little tips
    NYOJ 104-最大和
    NYOJ 44-子串和
    NYOJ 15-括号匹配(二)
    leetCode 32. Longest Valid Parentheses
  • 原文地址:https://www.cnblogs.com/android-blogs/p/6038194.html
Copyright © 2020-2023  润新知