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

    方案一:speed
    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
    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);
    }
    

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

  • 相关阅读:
    王道训练营-C语言-1
    错排问题
    王道训练营-C语言-1
    图文处理 生成海报
    根据经纬度按距离排序
    vue总结
    docker+consul
    doker es
    知识库
    php笔记
  • 原文地址:https://www.cnblogs.com/lm3515/p/1833957.html
Copyright © 2011-2022 走看看