ZGC
3 years ago
130 changed files with 13739 additions and 7 deletions
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 23c43abb7ffce3a49851d3bd8d426170 |
||||
folderAsset: yes |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,182 @@
@@ -0,0 +1,182 @@
|
||||
--------------------------------------------------------- |
||||
---MPU6050&NodeMCU&ESP8266&姿态融合算法整合脚本--- |
||||
---读取MPU6050原始数据(三轴加速度,三轴角速度,环境温度) |
||||
---融合四元数算法,该程序的输出值为六轴数据融合后的四元数 |
||||
---四元数转欧拉角需要在其他外接程序上进行实现 |
||||
--------------------------------------------------------- |
||||
id = 0 -- always 0 |
||||
scl = 6 -- set pin 6 as scl |
||||
sda = 7 -- set pin 7 as sda |
||||
MPU6050SlaveAddress = 0x68 |
||||
AK8963SlaveAddress = 0x0C |
||||
|
||||
AccelScaleFactor = 16384; -- sensitivity scale factor respective to full scale setting provided in datasheet |
||||
GyroScaleFactor = 131; |
||||
|
||||
MPU6050_REGISTER_SMPLRT_DIV = 0x19 |
||||
MPU6050_REGISTER_USER_CTRL = 0x6A |
||||
MPU6050_REGISTER_PWR_MGMT_1 = 0x6B |
||||
MPU6050_REGISTER_PWR_MGMT_2 = 0x6C |
||||
MPU6050_REGISTER_CONFIG = 0x1A |
||||
MPU6050_REGISTER_GYRO_CONFIG = 0x1B |
||||
MPU6050_REGISTER_ACCEL_CONFIG = 0x1C |
||||
AK_8963_CONFIG = 0x18 |
||||
MPU6050_REGISTER_FIFO_EN = 0x23 |
||||
MPU6050_REGISTER_INT_ENABLE = 0x38 |
||||
MPU6050_REGISTER_ACCEL_XOUT_H = 0x3B |
||||
MPU6050_REGISTER_SIGNAL_PATH_RESET = 0x68 |
||||
|
||||
function I2C_Write(deviceAddress, regAddress, data) |
||||
i2c.start(id) -- send start condition |
||||
if (i2c.address(id, deviceAddress, i2c.TRANSMITTER))-- set slave address and transmit direction |
||||
then |
||||
i2c.write(id, regAddress) -- write address to slave |
||||
i2c.write(id, data) -- write data to slave |
||||
i2c.stop(id) -- send stop condition |
||||
else |
||||
print("I2C_Write fails") |
||||
end |
||||
end |
||||
|
||||
function I2C_Read(deviceAddress, regAddress, SizeOfDataToRead) |
||||
response = 0; |
||||
i2c.start(id) -- send start condition |
||||
if (i2c.address(id, deviceAddress, i2c.TRANSMITTER))-- set slave address and transmit direction |
||||
then |
||||
i2c.write(id, regAddress) -- write address to slave |
||||
i2c.stop(id) -- send stop condition |
||||
i2c.start(id) -- send start condition |
||||
i2c.address(id, deviceAddress, i2c.RECEIVER)-- set slave address and receive direction |
||||
response = i2c.read(id, SizeOfDataToRead) -- read defined length response from slave |
||||
i2c.stop(id) -- send stop condition |
||||
return response |
||||
else |
||||
print("I2C_Read fails") |
||||
end |
||||
return response |
||||
end |
||||
|
||||
function unsignTosigned16bit(num) -- convert unsigned 16-bit no. to signed 16-bit no. |
||||
if num > 32768 then |
||||
num = num - 65536 |
||||
end |
||||
return num |
||||
end |
||||
|
||||
function MPU6050_Init() --configure MPU6050 |
||||
tmr.delay(150000) |
||||
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_SMPLRT_DIV, 0x07) |
||||
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_PWR_MGMT_1, 0x01) |
||||
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_PWR_MGMT_2, 0x00) |
||||
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_CONFIG, 0x00) |
||||
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_GYRO_CONFIG, 0x00)-- set +/-250 degree/second full scale |
||||
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00)-- set +/- 2g full scale |
||||
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_FIFO_EN, 0x00) |
||||
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_INT_ENABLE, 0x01) |
||||
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_SIGNAL_PATH_RESET, 0x00) |
||||
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_USER_CTRL, 0x00) |
||||
end |
||||
|
||||
i2c.setup(id, sda, scl, i2c.SLOW) -- initialize i2c |
||||
MPU6050_Init() |
||||
data = I2C_Read(MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H, 14) |
||||
AccelX = unsignTosigned16bit((bit.bor(bit.lshift(string.byte(data, 1), 8), string.byte(data, 2)))) |
||||
AccelY = unsignTosigned16bit((bit.bor(bit.lshift(string.byte(data, 3), 8), string.byte(data, 4)))) |
||||
AccelZ = unsignTosigned16bit((bit.bor(bit.lshift(string.byte(data, 5), 8), string.byte(data, 6)))) |
||||
Temperature = unsignTosigned16bit(bit.bor(bit.lshift(string.byte(data,7), 8), string.byte(data,8))) |
||||
GyroX = unsignTosigned16bit((bit.bor(bit.lshift(string.byte(data, 9), 8), string.byte(data, 10)))) |
||||
GyroY = unsignTosigned16bit((bit.bor(bit.lshift(string.byte(data, 11), 8), string.byte(data, 12)))) |
||||
GyroZ = unsignTosigned16bit((bit.bor(bit.lshift(string.byte(data, 13), 8), string.byte(data, 14)))) |
||||
AccelX = AccelX/AccelScaleFactor -- divide each with their sensitivity scale factor |
||||
AccelY = AccelY/AccelScaleFactor |
||||
AccelZ = AccelZ/AccelScaleFactor |
||||
Temperature = Temperature/340+36.53-- temperature formula |
||||
--角速度的值会产生偏移,需要校准 |
||||
GyroX = GyroX/GyroScaleFactor+3 |
||||
GyroY = GyroY/GyroScaleFactor-0.45 |
||||
GyroZ = GyroZ/GyroScaleFactor+0.24 |
||||
|
||||
--姿态融合算法部分定义 |
||||
Kp = 100.0 |
||||
Ki = 0.002 |
||||
halfT = 0.001 |
||||
q0 = 1 |
||||
q1 = 0 |
||||
q2 = 0 |
||||
q3 = 0 |
||||
exInt = 0 |
||||
eyInt = 0 |
||||
ezInt = 0 |
||||
roll = 0.0 |
||||
pitch = 0.0 |
||||
yaw = 0.0 |
||||
|
||||
|
||||
function updateHardWareDatas() |
||||
data = I2C_Read(MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H, 14) |
||||
AccelX = unsignTosigned16bit((bit.bor(bit.lshift(string.byte(data, 1), 8), string.byte(data, 2)))) |
||||
AccelY = unsignTosigned16bit((bit.bor(bit.lshift(string.byte(data, 3), 8), string.byte(data, 4)))) |
||||
AccelZ = unsignTosigned16bit((bit.bor(bit.lshift(string.byte(data, 5), 8), string.byte(data, 6)))) |
||||
Temperature = unsignTosigned16bit(bit.bor(bit.lshift(string.byte(data,7), 8), string.byte(data,8))) |
||||
GyroX = unsignTosigned16bit((bit.bor(bit.lshift(string.byte(data, 9), 8), string.byte(data, 10)))) |
||||
GyroY = unsignTosigned16bit((bit.bor(bit.lshift(string.byte(data, 11), 8), string.byte(data, 12)))) |
||||
GyroZ = unsignTosigned16bit((bit.bor(bit.lshift(string.byte(data, 13), 8), string.byte(data, 14)))) |
||||
AccelX = AccelX/AccelScaleFactor -- divide each with their sensitivity scale factor |
||||
AccelY = AccelY/AccelScaleFactor |
||||
AccelZ = AccelZ/AccelScaleFactor |
||||
Temperature = Temperature/340+36.53-- temperature formula |
||||
GyroX = GyroX/GyroScaleFactor+3 |
||||
GyroY = GyroY/GyroScaleFactor-0.45 |
||||
GyroZ = GyroZ/GyroScaleFactor+0.24 |
||||
end |
||||
|
||||
function IMUupdate(gx,gy,gz,ax,ay,az) |
||||
-- body |
||||
-- 测量正常化 |
||||
norm = math.sqrt(ax*ax + ay*ay + az*az) |
||||
ax = ax / norm --单位化 |
||||
ay = ay / norm |
||||
az = az / norm |
||||
-- 估计方向的重力 |
||||
vx = 2*(q1*q3 - q0*q2) |
||||
vy = 2*(q0*q1 + q2*q3) |
||||
vz = q0*q0 - q1*q1 - q2*q2 + q3*q3 |
||||
-- 错误的领域和方向传感器测量参考方向之间的交叉乘积的总和 |
||||
ex = (ay*vz - az*vy) |
||||
ey = (az*vx - ax*vz) |
||||
ez = (ax*vy - ay*vx) |
||||
-- 积分误差比例积分增益 |
||||
exInt = exInt + ex*Ki |
||||
eyInt = eyInt + ey*Ki |
||||
ezInt = ezInt + ez*Ki |
||||
-- 调整后的陀螺仪测量 |
||||
gx = gx + Kp*ex + exInt |
||||
gy = gy + Kp*ey + eyInt |
||||
gz = gz + Kp*ez + ezInt |
||||
-- 整合四元数率和正常化 |
||||
q0 = q0 + (-q1*gx - q2*gy - q3*gz)*halfT |
||||
q1 = q1 + (q0*gx + q2*gz - q3*gy)*halfT |
||||
q2 = q2 + (q0*gy - q1*gz + q3*gx)*halfT |
||||
q3 = q3 + (q0*gz + q1*gy - q2*gx)*halfT |
||||
-- 正常化四元 |
||||
norm = math.sqrt(q0*q0 + q1*q1 + q2*q2 + q3*q3) |
||||
q0 = q0 / norm |
||||
q1 = q1 / norm |
||||
q2 = q2 / norm |
||||
q3 = q3 / norm |
||||
--pitch = math.asin(-2 * q1 * q3 + 2 * q0* q2) * 57.3 -- pitch ,转换为度数 |
||||
--roll = math.atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1) * 57.3 -- rollv |
||||
--yaw = math.atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3 |
||||
end |
||||
|
||||
|
||||
while true do --read and print accelero, gyro and temperature value |
||||
updateHardWareDatas() |
||||
IMUupdate(GyroX,GyroY,GyroZ,AccelX,AccelY,AccelZ) |
||||
print(string.format("{'q0':%.3g,'q1':%.3g,'q2':%.3g,'q3':%.3g}",q0,q1,q2,q3)) |
||||
--输出原始数据 |
||||
--print(string.format("%.3g,%.3g,%.3g",GyroX,GyroY,GyroZ)) |
||||
--print(string.format("{'GyroX':%.3g,'GyroY':%.3g,'GyroZ':%.3g,'Temperature':%.3g,'AccelX':%.3g,'AccelY':%.3g,'AccelZ':%.3g}", |
||||
--GyroX, GyroY, GyroZ, Temperature, AccelX, AccelY, AccelZ)) |
||||
tmr.delay(100000) -- 100ms timer delay |
||||
end |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 28a2a4a7fe17b9a47acc8267666b18fe |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
该目录下存放ESP8266烧录用的相关程序 |
||||
|
||||
NodeMCU为lua格式的串口输出程序(仅原始数据和四元数) |
||||
|
||||
MicroPython为py格式的串口输出程序(原始数据、四元数和欧拉角) |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 5e0a4b5e826b6694f8f0b567ef165250 |
||||
TextScriptImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 7cf5aae60260a064884fdf3bdba01c76 |
||||
folderAsset: yes |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,41 @@
@@ -0,0 +1,41 @@
|
||||
# Changelog |
||||
|
||||
All notable changes to this project will be documented in this file, in reverse chronological order by release. |
||||
|
||||
## [0.3.0](https://github.com/tuupola/micropython-mpu9250/compare/0.2.1...0.3.0) - 2020-03-22 |
||||
### Added |
||||
|
||||
- Support for internal temperature sensor ([#1](https://github.com/tuupola/micropython-mpu9250/issues/1), [#9](https://github.com/tuupola/micropython-mpu9250/pull/9), [#18](https://github.com/tuupola/micropython-mpu9250/pull/18)) |
||||
- Support for gyro calibration ([#5](https://github.com/tuupola/micropython-mpu9250/issues/5), [#10](https://github.com/tuupola/micropython-mpu9250/pull/10)) |
||||
|
||||
### Fixed |
||||
- Support for standalone MPU6500 sensors ([#15](https://github.com/tuupola/micropython-mpu9250/issues/15), [#16](https://github.com/tuupola/micropython-mpu9250/pull/16)) |
||||
|
||||
### Changed |
||||
|
||||
- Move I2C bypass initialisation from MPU6500 to MPU9250 ([#17](https://github.com/tuupola/micropython-mpu9250/issues/17)) |
||||
|
||||
## [0.2.1](https://github.com/tuupola/micropython-mpu9250/compare/0.2.0...0.2.1) - 2019-02-07 |
||||
### Fixed |
||||
- Gyro degrees to radians conversion ([#8](https://github.com/tuupola/micropython-mpu9250/pull/8)). |
||||
|
||||
## [0.2.0](https://github.com/tuupola/micropython-mpu9250/compare/0.1.0...0.2.0)- 2018-04-08 |
||||
### Added |
||||
- Support for magnetometer factory sensitivity adjustement values `ASAX`, `ASAY` and `ASAZ`. |
||||
- Support for setting magnetometer offset and scale calibration values. |
||||
``` |
||||
ak8963 = AK8963( |
||||
i2c, |
||||
offset=(-136.8931640625, -160.482421875, 59.02880859375), |
||||
scale=(1.18437220840483, 0.923895823933424, 0.931707933618979) |
||||
) |
||||
``` |
||||
- Method for retrieving the magnetometer offset and scale calibration values. |
||||
``` |
||||
ak8963 = AK8963(i2c) |
||||
offset, scale = ak8963.calibrate(count=256, delay=200) |
||||
``` |
||||
|
||||
## 0.1.0 - 2018-02-17 |
||||
|
||||
Initial working release. |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: dc3b63a3470513a48aed558db38e8d11 |
||||
TextScriptImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT) |
||||
|
||||
Copyright (c) 2018-2020 Mika Tuupola |
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
of this software and associated documentation files (the "Software"), to deal |
||||
in the Software without restriction, including without limitation the rights |
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
copies of the Software, and to permit persons to whom the Software is |
||||
furnished to do so, subject to the following conditions: |
||||
|
||||
The above copyright notice and this permission notice shall be included in all |
||||
copies or substantial portions of the Software. |
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||
SOFTWARE. |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 222d46ef59dd2ce4e86e1a35c9fdf484 |
||||
TextScriptImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
help: |
||||
@echo ""
|
||||
@echo "Available tasks:"
|
||||
@echo " watch Upload changed library files to board automagically"
|
||||
@echo " sync Upload library files to board"
|
||||
@echo " reset Soft reboot the board"
|
||||
@echo " repl Start a repl session"
|
||||
@echo " deps Install dependencies with upip"
|
||||
@echo ""
|
||||
|
||||
watch: |
||||
find . -name "*.py" | entr -c sh -c 'make sync && make reset'
|
||||
|
||||
sync: |
||||
ampy --port /dev/tty.SLAB_USBtoUART put mpu6500.py
|
||||
ampy --port /dev/tty.SLAB_USBtoUART put mpu9250.py
|
||||
ampy --port /dev/tty.SLAB_USBtoUART put ak8963.py
|
||||
|
||||
repl: |
||||
screen /dev/tty.SLAB_USBtoUART 115200
|
||||
|
||||
reset: |
||||
ampy --port /dev/cu.SLAB_USBtoUART reset
|
||||
|
||||
dist: |
||||
python3 setup.py sdist
|
||||
# twine upload dist/filename.tar.gz
|
||||
|
||||
.PHONY: help watch shell repl reset sync dist |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 61ade8775a795d944b524ace6c9d8266 |
||||
DefaultImporter: |
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,61 @@
@@ -0,0 +1,61 @@
|
||||
#define Kp 100.0f // 比例增益支配率收敛到加速度计/磁强计 |
||||
#define Ki 0.002f // 积分增益支配率的陀螺仪偏见的衔接 |
||||
#define halfT 0.001f // 采样周期的一半 |
||||
|
||||
float q0 = 1, q1 = 0, q2 = 0, q3 = 0; // 四元数的元素,代表估计方向 |
||||
float exInt = 0, eyInt = 0, ezInt = 0; // 按比例缩小积分误差 |
||||
|
||||
float Yaw,Pitch,Roll; //偏航角,俯仰角,翻滚角 |
||||
|
||||
void IMUupdate(float gx, float gy, float gz, float ax, float ay, float az) |
||||
{ |
||||
float norm; |
||||
float vx, vy, vz; |
||||
float ex, ey, ez; |
||||
|
||||
// 测量正常化 |
||||
norm = sqrt(ax*ax + ay*ay + az*az); |
||||
ax = ax / norm; //单位化 |
||||
ay = ay / norm; |
||||
az = az / norm; |
||||
|
||||
// 估计方向的重力 |
||||
vx = 2*(q1*q3 - q0*q2); |
||||
vy = 2*(q0*q1 + q2*q3); |
||||
vz = q0*q0 - q1*q1 - q2*q2 + q3*q3; |
||||
|
||||
// 错误的领域和方向传感器测量参考方向之间的交叉乘积的总和 |
||||
ex = (ay*vz - az*vy); |
||||
ey = (az*vx - ax*vz); |
||||
ez = (ax*vy - ay*vx); |
||||
|
||||
// 积分误差比例积分增益 |
||||
exInt = exInt + ex*Ki; |
||||
eyInt = eyInt + ey*Ki; |
||||
ezInt = ezInt + ez*Ki; |
||||
|
||||
// 调整后的陀螺仪测量 |
||||
gx = gx + Kp*ex + exInt; |
||||
gy = gy + Kp*ey + eyInt; |
||||
gz = gz + Kp*ez + ezInt; |
||||
|
||||
// 整合四元数率和正常化 |
||||
q0 = q0 + (-q1*gx - q2*gy - q3*gz)*halfT; |
||||
q1 = q1 + (q0*gx + q2*gz - q3*gy)*halfT; |
||||
q2 = q2 + (q0*gy - q1*gz + q3*gx)*halfT; |
||||
q3 = q3 + (q0*gz + q1*gy - q2*gx)*halfT; |
||||
|
||||
// 正常化四元 |
||||
norm = sqrt(q0*q0 + q1*q1 + q2*q2 + q3*q3); |
||||
q0 = q0 / norm; |
||||
q1 = q1 / norm; |
||||
q2 = q2 / norm; |
||||
q3 = q3 / norm; |
||||
|
||||
Pitch = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3; // pitch ,转换为度数 |
||||
Roll = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3; // rollv |
||||
//Yaw = atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3; //此处没有价值,注掉 |
||||
} |
||||
———————————————— |
||||
版权声明:本文为CSDN博主「Fred_1986」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 |
||||
原文链接:https://blog.csdn.net/fred_1986/article/details/108522529 |
@ -0,0 +1,58 @@
@@ -0,0 +1,58 @@
|
||||
#define Kp 100.0f // 比例增益支配率收敛到加速度计/磁强计
|
||||
#define Ki 0.002f // 积分增益支配率的陀螺仪偏见的衔接
|
||||
#define halfT 0.001f // 采样周期的一半
|
||||
|
||||
float q0 = 1, q1 = 0, q2 = 0, q3 = 0; // 四元数的元素,代表估计方向
|
||||
float exInt = 0, eyInt = 0, ezInt = 0; // 按比例缩小积分误差
|
||||
|
||||
float Yaw,Pitch,Roll; //偏航角,俯仰角,翻滚角
|
||||
|
||||
void IMUupdate(float gx, float gy, float gz, float ax, float ay, float az) |
||||
{ |
||||
float norm; |
||||
float vx, vy, vz; |
||||
float ex, ey, ez;
|
||||
|
||||
// 测量正常化
|
||||
norm = sqrt(ax*ax + ay*ay + az*az);
|
||||
ax = ax / norm; //单位化
|
||||
ay = ay / norm; |
||||
az = az / norm;
|
||||
|
||||
// 估计方向的重力
|
||||
vx = 2*(q1*q3 - q0*q2); |
||||
vy = 2*(q0*q1 + q2*q3); |
||||
vz = q0*q0 - q1*q1 - q2*q2 + q3*q3; |
||||
|
||||
// 错误的领域和方向传感器测量参考方向之间的交叉乘积的总和
|
||||
ex = (ay*vz - az*vy); |
||||
ey = (az*vx - ax*vz); |
||||
ez = (ax*vy - ay*vx); |
||||
|
||||
// 积分误差比例积分增益
|
||||
exInt = exInt + ex*Ki; |
||||
eyInt = eyInt + ey*Ki; |
||||
ezInt = ezInt + ez*Ki; |
||||
|
||||
// 调整后的陀螺仪测量
|
||||
gx = gx + Kp*ex + exInt; |
||||
gy = gy + Kp*ey + eyInt; |
||||
gz = gz + Kp*ez + ezInt; |
||||
|
||||
// 整合四元数率和正常化
|
||||
q0 = q0 + (-q1*gx - q2*gy - q3*gz)*halfT; |
||||
q1 = q1 + (q0*gx + q2*gz - q3*gy)*halfT; |
||||
q2 = q2 + (q0*gy - q1*gz + q3*gx)*halfT; |
||||
q3 = q3 + (q0*gz + q1*gy - q2*gx)*halfT;
|
||||
|
||||
// 正常化四元
|
||||
norm = sqrt(q0*q0 + q1*q1 + q2*q2 + q3*q3); |
||||
q0 = q0 / norm; |
||||
q1 = q1 / norm; |
||||
q2 = q2 / norm; |
||||
q3 = q3 / norm; |
||||
|
||||
Pitch = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3; // pitch ,转换为度数
|
||||
Roll = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3; // rollv
|
||||
//Yaw = atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3; //此处没有价值,注掉
|
||||
} |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 9d32cc185bcc035468484db493275736 |
||||
PluginImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
iconMap: {} |
||||
executionOrder: {} |
||||
isPreloaded: 0 |
||||
isOverridable: 0 |
||||
platformData: |
||||
- first: |
||||
Any: |
||||
second: |
||||
enabled: 1 |
||||
settings: {} |
||||
- first: |
||||
Editor: Editor |
||||
second: |
||||
enabled: 0 |
||||
settings: |
||||
DefaultValueInitialized: true |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 2f84164ba96a10e46a2f81831df04c90 |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,122 @@
@@ -0,0 +1,122 @@
|
||||
# MicroPython MPU-9250 (MPU-6500 + AK8963) I2C driver |
||||
|
||||
MPU-9250 is a System in Package (SiP) which combines two chips: MPU-6500 which contains 3-axis gyroscope and 3-axis accelerometer and an AK8963 which is a 3-axis digital compass. |
||||
|
||||
## Usage |
||||
|
||||
Simple test with never ending loop. |
||||
|
||||
```python |
||||
import utime |
||||
from machine import I2C, Pin |
||||
from mpu9250 import MPU9250 |
||||
|
||||
i2c = I2C(scl=Pin(22), sda=Pin(21)) |
||||
sensor = MPU9250(i2c) |
||||
|
||||
print("MPU9250 id: " + hex(sensor.whoami)) |
||||
|
||||
while True: |
||||
print(sensor.acceleration) |
||||
print(sensor.gyro) |
||||
print(sensor.magnetic) |
||||
print(sensor.temperature) |
||||
|
||||
utime.sleep_ms(1000) |
||||
``` |
||||
|
||||
By default the library returns 3-tuple of X, Y, Z axis values for either acceleration, gyroscope and magnetometer ie compass. Default units are `m/s^2`, `rad/s`, `uT` and `°C`. It is possible to also get acceleration values in `g` and gyro values `deg/s`. See the example below. Note that both the MPU6500 and the AK8963 drivers are available as separate classes. MPU9250 is actually a composite of those two. |
||||
|
||||
```python |
||||
import utime |
||||
from machine import I2C, Pin |
||||
from mpu9250 import MPU9250 |
||||
from mpu6500 import MPU6500, SF_G, SF_DEG_S |
||||
|
||||
i2c = I2C(scl=Pin(22), sda=Pin(21)) |
||||
mpu6500 = MPU6500(i2c, accel_sf=SF_G, gyro_sf=SF_DEG_S) |
||||
sensor = MPU9250(i2c, mpu6500=mpu6500) |
||||
|
||||
print("MPU9250 id: " + hex(sensor.whoami)) |
||||
|
||||
while True: |
||||
print(sensor.acceleration) |
||||
print(sensor.gyro) |
||||
print(sensor.magnetic) |
||||
print(sensor.temperature) |
||||
|
||||
utime.sleep_ms(1000) |
||||
``` |
||||
|
||||
More realistic example usage with timer. If you get `OSError: 26` or `i2c driver install error` after soft reboot do a hard reboot. |
||||
|
||||
```python |
||||
import micropython |
||||
from machine import I2C, Pin, Timer |
||||
from mpu9250 import MPU9250 |
||||
|
||||
micropython.alloc_emergency_exception_buf(100) |
||||
|
||||
i2c = I2C(scl=Pin(22), sda=Pin(21)) |
||||
sensor = MPU9250(i2c) |
||||
|
||||
def read_sensor(timer): |
||||
print(sensor.acceleration) |
||||
print(sensor.gyro) |
||||
print(sensor.magnetic) |
||||
print(sensor.temperature) |
||||
|
||||
print("MPU9250 id: " + hex(sensor.whoami)) |
||||
|
||||
timer_0 = Timer(0) |
||||
timer_0.init(period=1000, mode=Timer.PERIODIC, callback=read_sensor) |
||||
``` |
||||
|
||||
## Magnetometer Calibration |
||||
|
||||
For real life applications you should almost always [calibrate the magnetometer](https://appelsiini.net/2018/calibrate-magnetometer/). The AK8963 driver supports both hard and soft iron correction. Calibration function takes two parameters: `count` is the number of samples to collect and `delay` is the delay in millisecods between the samples. |
||||
|
||||
With the default values of `256` and `200` calibration takes aproximately one minute. While calibration function is running the sensor should be rotated multiple times around each axis. |
||||
|
||||
NOTE! If using MPU9250 you will first need to open the I2C bypass access to AK8963. This is not needed when using a standalone AK8963 sensor. |
||||
|
||||
```python |
||||
from machine import I2C, Pin |
||||
from mpu9250 import MPU9250 |
||||
from ak8963 import AK8963 |
||||
|
||||
i2c = I2C(scl=Pin(22), sda=Pin(21)) |
||||
|
||||
dummy = MPU9250(i2c) # this opens the bybass to access to the AK8963 |
||||
ak8963 = AK8963(i2c) |
||||
offset, scale = ak8963.calibrate(count=256, delay=200) |
||||
|
||||
sensor = MPU9250(i2c, ak8963=ak8963) |
||||
``` |
||||
|
||||
After finishing calibration the `calibrate()` method also returns tuples for both hard iron `offset` and soft iron `scale`. To avoid calibrating after each startup it would make sense to strore these values in NVRAM or config file and pass them to the AK8963 constructor. Below example only illustrates how to use the constructor. |
||||
|
||||
```python |
||||
from machine import I2C, Pin |
||||
from mpu9250 import MPU9250 |
||||
from ak8963 import AK8963 |
||||
|
||||
i2c = I2C(scl=Pin(22), sda=Pin(21)) |
||||
dummy = MPU9250(i2c) # this opens the bybass to access to the AK8963 |
||||
|
||||
ak8963 = AK8963( |
||||
i2c, |
||||
offset=(-136.8931640625, -160.482421875, 59.02880859375), |
||||
scale=(1.18437220840483, 0.923895823933424, 0.931707933618979) |
||||
) |
||||
|
||||
sensor = MPU9250(i2c, ak8963=ak8963) |
||||
``` |
||||
|
||||
## Gyro Calibration |
||||
|
||||
TODO |
||||
|
||||
## License |
||||
|
||||
The MIT License (MIT). Please see [License File](LICENSE.txt) for more information. |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 58ac5f7fe29992445bb6e3a83141290e |
||||
TextScriptImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,207 @@
@@ -0,0 +1,207 @@
|
||||
# Copyright (c) 2018-2020 Mika Tuupola |
||||
# |
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
# of this software and associated documentation files (the "Software"), to |
||||
# deal in the Software without restriction, including without limitation the |
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
||||
# sell copied of the Software, and to permit persons to whom the Software is |
||||
# furnished to do so, subject to the following conditions: |
||||
# |
||||
# The above copyright notice and this permission notice shall be included in |
||||
# all copies or substantial portions of the Software. |
||||
# |
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||
# SOFTWARE. |
||||
|
||||
# https://github.com/tuupola/micropython-mpu9250 |
||||
# https://www.akm.com/akm/en/file/datasheet/AK8963C.pdf |
||||
|
||||
""" |
||||
MicroPython I2C driver for AK8963 magnetometer |
||||
""" |
||||
|
||||
__version__ = "0.3.0" |
||||
|
||||
# pylint: disable=import-error |
||||
import ustruct |
||||
import utime |
||||
from machine import I2C, Pin |
||||
from micropython import const |
||||
# pylint: enable=import-error |
||||
|
||||
_WIA = const(0x00) |
||||
_HXL = const(0x03) |
||||
_HXH = const(0x04) |
||||
_HYL = const(0x05) |
||||
_HYH = const(0x06) |
||||
_HZL = const(0x07) |
||||
_HZH = const(0x08) |
||||
_ST2 = const(0x09) |
||||
_CNTL1 = const(0x0a) |
||||
_ASAX = const(0x10) |
||||
_ASAY = const(0x11) |
||||
_ASAZ = const(0x12) |
||||
|
||||
_MODE_POWER_DOWN = 0b00000000 |
||||
MODE_SINGLE_MEASURE = 0b00000001 |
||||
MODE_CONTINOUS_MEASURE_1 = 0b00000010 # 8Hz |
||||
MODE_CONTINOUS_MEASURE_2 = 0b00000110 # 100Hz |
||||
MODE_EXTERNAL_TRIGGER_MEASURE = 0b00000100 |
||||
_MODE_SELF_TEST = 0b00001000 |
||||
_MODE_FUSE_ROM_ACCESS = 0b00001111 |
||||
|
||||
OUTPUT_14_BIT = 0b00000000 |
||||
OUTPUT_16_BIT = 0b00010000 |
||||
|
||||
_SO_14BIT = 0.6 # μT per digit when 14bit mode |
||||
_SO_16BIT = 0.15 # μT per digit when 16bit mode |
||||
|
||||
class AK8963: |
||||
"""Class which provides interface to AK8963 magnetometer.""" |
||||
def __init__( |
||||
self, i2c, address=0x0c, |
||||
mode=MODE_CONTINOUS_MEASURE_1, output=OUTPUT_16_BIT, |
||||
offset=(0, 0, 0), scale=(1, 1, 1) |
||||
): |
||||
self.i2c = i2c |
||||
self.address = address |
||||
self._offset = offset |
||||
self._scale = scale |
||||
|
||||
if 0x48 != self.whoami: |
||||
raise RuntimeError("AK8963 not found in I2C bus.") |
||||
|
||||
# Sensitivity adjustement values |
||||
self._register_char(_CNTL1, _MODE_FUSE_ROM_ACCESS) |
||||
asax = self._register_char(_ASAX) |
||||
asay = self._register_char(_ASAY) |
||||
asaz = self._register_char(_ASAZ) |
||||
self._register_char(_CNTL1, _MODE_POWER_DOWN) |
||||
|
||||
# Should wait atleast 100us before next mode |
||||
self._adjustement = ( |
||||
(0.5 * (asax - 128)) / 128 + 1, |
||||
(0.5 * (asay - 128)) / 128 + 1, |
||||
(0.5 * (asaz - 128)) / 128 + 1 |
||||
) |
||||
|
||||
# Power on |
||||
self._register_char(_CNTL1, (mode | output)) |
||||
|
||||
if output is OUTPUT_16_BIT: |
||||
self._so = _SO_16BIT |
||||
else: |
||||
self._so = _SO_14BIT |
||||
|
||||
@property |
||||
def magnetic(self): |
||||
""" |
||||
X, Y, Z axis micro-Tesla (uT) as floats. |
||||
""" |
||||
xyz = list(self._register_three_shorts(_HXL)) |
||||
self._register_char(_ST2) # Enable updating readings again |
||||
|
||||
# Apply factory axial sensitivy adjustements |
||||
xyz[0] *= self._adjustement[0] |
||||
xyz[1] *= self._adjustement[1] |
||||
xyz[2] *= self._adjustement[2] |
||||
|
||||
# Apply output scale determined in constructor |
||||
so = self._so |
||||
xyz[0] *= so |
||||
xyz[1] *= so |
||||
xyz[2] *= so |
||||
|
||||
# Apply hard iron ie. offset bias from calibration |
||||
xyz[0] -= self._offset[0] |
||||
xyz[1] -= self._offset[1] |
||||
xyz[2] -= self._offset[2] |
||||
|
||||
# Apply soft iron ie. scale bias from calibration |
||||
xyz[0] *= self._scale[0] |
||||
xyz[1] *= self._scale[1] |
||||
xyz[2] *= self._scale[2] |
||||
|
||||
return tuple(xyz) |
||||
|
||||
@property |
||||
def adjustement(self): |
||||
return self._adjustement |
||||
|
||||
@property |
||||
def whoami(self): |
||||
""" Value of the whoami register. """ |
||||
return self._register_char(_WIA) |
||||
|
||||
def calibrate(self, count=256, delay=200): |
||||
self._offset = (0, 0, 0) |
||||
self._scale = (1, 1, 1) |
||||
|
||||
reading = self.magnetic |
||||
minx = maxx = reading[0] |
||||
miny = maxy = reading[1] |
||||
minz = maxz = reading[2] |
||||
|
||||
while count: |
||||
utime.sleep_ms(delay) |
||||
reading = self.magnetic |
||||
minx = min(minx, reading[0]) |
||||
maxx = max(maxx, reading[0]) |
||||
miny = min(miny, reading[1]) |
||||
maxy = max(maxy, reading[1]) |
||||
minz = min(minz, reading[2]) |
||||
maxz = max(maxz, reading[2]) |
||||
count -= 1 |
||||
|
||||
# Hard iron correction |
||||
offset_x = (maxx + minx) / 2 |
||||
offset_y = (maxy + miny) / 2 |
||||
offset_z = (maxz + minz) / 2 |
||||
|
||||
self._offset = (offset_x, offset_y, offset_z) |
||||
|
||||
# Soft iron correction |
||||
avg_delta_x = (maxx - minx) / 2 |
||||
avg_delta_y = (maxy - miny) / 2 |
||||
avg_delta_z = (maxz - minz) / 2 |
||||
|
||||
avg_delta = (avg_delta_x + avg_delta_y + avg_delta_z) / 3 |
||||
|
||||
scale_x = avg_delta / avg_delta_x |
||||
scale_y = avg_delta / avg_delta_y |
||||
scale_z = avg_delta / avg_delta_z |
||||
|
||||
self._scale = (scale_x, scale_y, scale_z) |
||||
|
||||
return self._offset, self._scale |
||||
|
||||
def _register_short(self, register, value=None, buf=bytearray(2)): |
||||
if value is None: |
||||
self.i2c.readfrom_mem_into(self.address, register, buf) |
||||
return ustruct.unpack("<h", buf)[0] |
||||
|
||||
ustruct.pack_into("<h", buf, 0, value) |
||||
return self.i2c.writeto_mem(self.address, register, buf) |
||||
|
||||
def _register_three_shorts(self, register, buf=bytearray(6)): |
||||
self.i2c.readfrom_mem_into(self.address, register, buf) |
||||
return ustruct.unpack("<hhh", buf) |
||||
|
||||
def _register_char(self, register, value=None, buf=bytearray(1)): |
||||
if value is None: |
||||
self.i2c.readfrom_mem_into(self.address, register, buf) |
||||
return buf[0] |
||||
|
||||
ustruct.pack_into("<b", buf, 0, value) |
||||
return self.i2c.writeto_mem(self.address, register, buf) |
||||
|
||||
def __enter__(self): |
||||
return self |
||||
|
||||
def __exit__(self, exception_type, exception_value, traceback): |
||||
pass |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 32aef81dc7a58f0408f81dcd8dcccb83 |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,275 @@
@@ -0,0 +1,275 @@
|
||||
//=============================================================================================
|
||||
// MahonyAHRS.c
|
||||
//=============================================================================================
|
||||
//
|
||||
// Madgwick's implementation of Mayhony's AHRS algorithm.
|
||||
// See: http://www.x-io.co.uk/open-source-imu-and-ahrs-algorithms/
|
||||
//
|
||||
// From the x-io website "Open-source resources available on this website are
|
||||
// provided under the GNU General Public Licence unless an alternative licence
|
||||
// is provided in source."
|
||||
//
|
||||
// Date Author Notes
|
||||
// 29/09/2011 SOH Madgwick Initial release
|
||||
// 02/10/2011 SOH Madgwick Optimised for reduced CPU load
|
||||
//
|
||||
// Algorithm paper:
|
||||
// http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4608934&url=http%3A%2F%2Fieeexplore.ieee.org%2Fstamp%2Fstamp.jsp%3Ftp%3D%26arnumber%3D4608934
|
||||
//
|
||||
//=============================================================================================
|
||||
|
||||
//-------------------------------------------------------------------------------------------
|
||||
// Header files
|
||||
|
||||
#include "MahonyAHRS.h" |
||||
#include <math.h> |
||||
|
||||
//-------------------------------------------------------------------------------------------
|
||||
// Definitions
|
||||
|
||||
#define DEFAULT_SAMPLE_FREQ 512.0f // sample frequency in Hz
|
||||
#define twoKpDef (2.0f * 0.5f) // 2 * proportional gain
|
||||
#define twoKiDef (2.0f * 0.0f) // 2 * integral gain
|
||||
|
||||
|
||||
//============================================================================================
|
||||
// Functions
|
||||
|
||||
//-------------------------------------------------------------------------------------------
|
||||
// AHRS algorithm update
|
||||
|
||||
Mahony::Mahony() |
||||
{ |
||||
twoKp = twoKpDef; // 2 * proportional gain (Kp)
|
||||
twoKi = twoKiDef; // 2 * integral gain (Ki)
|
||||
q0 = 1.0f; |
||||
q1 = 0.0f; |
||||
q2 = 0.0f; |
||||
q3 = 0.0f; |
||||
integralFBx = 0.0f; |
||||
integralFBy = 0.0f; |
||||
integralFBz = 0.0f; |
||||
anglesComputed = 0; |
||||
invSampleFreq = 1.0f / DEFAULT_SAMPLE_FREQ; |
||||
} |
||||
|
||||
void Mahony::update(float gx, float gy, float gz, float ax, float ay, float az, float mx, float my, float mz) |
||||
{ |
||||
float recipNorm; |
||||
float q0q0, q0q1, q0q2, q0q3, q1q1, q1q2, q1q3, q2q2, q2q3, q3q3; |
||||
float hx, hy, bx, bz; |
||||
float halfvx, halfvy, halfvz, halfwx, halfwy, halfwz; |
||||
float halfex, halfey, halfez; |
||||
float qa, qb, qc; |
||||
|
||||
// Use IMU algorithm if magnetometer measurement invalid
|
||||
// (avoids NaN in magnetometer normalisation)
|
||||
if((mx == 0.0f) && (my == 0.0f) && (mz == 0.0f)) { |
||||
updateIMU(gx, gy, gz, ax, ay, az); |
||||
return; |
||||
} |
||||
|
||||
// Convert gyroscope degrees/sec to radians/sec
|
||||
gx *= 0.0174533f; |
||||
gy *= 0.0174533f; |
||||
gz *= 0.0174533f; |
||||
|
||||
// Compute feedback only if accelerometer measurement valid
|
||||
// (avoids NaN in accelerometer normalisation)
|
||||
if(!((ax == 0.0f) && (ay == 0.0f) && (az == 0.0f))) { |
||||
|
||||
// Normalise accelerometer measurement
|
||||
recipNorm = invSqrt(ax * ax + ay * ay + az * az); |
||||
ax *= recipNorm; |
||||
ay *= recipNorm; |
||||
az *= recipNorm; |
||||
|
||||
// Normalise magnetometer measurement
|
||||
recipNorm = invSqrt(mx * mx + my * my + mz * mz); |
||||
mx *= recipNorm; |
||||
my *= recipNorm; |
||||
mz *= recipNorm; |
||||
|
||||
// Auxiliary variables to avoid repeated arithmetic
|
||||
q0q0 = q0 * q0; |
||||
q0q1 = q0 * q1; |
||||
q0q2 = q0 * q2; |
||||
q0q3 = q0 * q3; |
||||
q1q1 = q1 * q1; |
||||
q1q2 = q1 * q2; |
||||
q1q3 = q1 * q3; |
||||
q2q2 = q2 * q2; |
||||
q2q3 = q2 * q3; |
||||
q3q3 = q3 * q3; |
||||
|
||||
// Reference direction of Earth's magnetic field
|
||||
hx = 2.0f * (mx * (0.5f - q2q2 - q3q3) + my * (q1q2 - q0q3) + mz * (q1q3 + q0q2)); |
||||
hy = 2.0f * (mx * (q1q2 + q0q3) + my * (0.5f - q1q1 - q3q3) + mz * (q2q3 - q0q1)); |
||||
bx = sqrtf(hx * hx + hy * hy); |
||||
bz = 2.0f * (mx * (q1q3 - q0q2) + my * (q2q3 + q0q1) + mz * (0.5f - q1q1 - q2q2)); |
||||
|
||||
// Estimated direction of gravity and magnetic field
|
||||
halfvx = q1q3 - q0q2; |
||||
halfvy = q0q1 + q2q3; |
||||
halfvz = q0q0 - 0.5f + q3q3; |
||||
halfwx = bx * (0.5f - q2q2 - q3q3) + bz * (q1q3 - q0q2); |
||||
halfwy = bx * (q1q2 - q0q3) + bz * (q0q1 + q2q3); |
||||
halfwz = bx * (q0q2 + q1q3) + bz * (0.5f - q1q1 - q2q2); |
||||
|
||||
// Error is sum of cross product between estimated direction
|
||||
// and measured direction of field vectors
|
||||
halfex = (ay * halfvz - az * halfvy) + (my * halfwz - mz * halfwy); |
||||
halfey = (az * halfvx - ax * halfvz) + (mz * halfwx - mx * halfwz); |
||||
halfez = (ax * halfvy - ay * halfvx) + (mx * halfwy - my * halfwx); |
||||
|
||||
// Compute and apply integral feedback if enabled
|
||||
if(twoKi > 0.0f) { |
||||
// integral error scaled by Ki
|
||||
integralFBx += twoKi * halfex * invSampleFreq; |
||||
integralFBy += twoKi * halfey * invSampleFreq; |
||||
integralFBz += twoKi * halfez * invSampleFreq; |
||||
gx += integralFBx; // apply integral feedback
|
||||
gy += integralFBy; |
||||
gz += integralFBz; |
||||
} else { |
||||
integralFBx = 0.0f; // prevent integral windup
|
||||
integralFBy = 0.0f; |
||||
integralFBz = 0.0f; |
||||
} |
||||
|
||||
// Apply proportional feedback
|
||||
gx += twoKp * halfex; |
||||
gy += twoKp * halfey; |
||||
gz += twoKp * halfez; |
||||
} |
||||
|
||||
// Integrate rate of change of quaternion
|
||||
gx *= (0.5f * invSampleFreq); // pre-multiply common factors
|
||||
gy *= (0.5f * invSampleFreq); |
||||
gz *= (0.5f * invSampleFreq); |
||||
qa = q0; |
||||
qb = q1; |
||||
qc = q2; |
||||
q0 += (-qb * gx - qc * gy - q3 * gz); |
||||
q1 += (qa * gx + qc * gz - q3 * gy); |
||||
q2 += (qa * gy - qb * gz + q3 * gx); |
||||
q3 += (qa * gz + qb * gy - qc * gx); |
||||
|
||||
// Normalise quaternion
|
||||
recipNorm = invSqrt(q0 * q0 + q1 * q1 + q2 * q2 + q3 * q3); |
||||
q0 *= recipNorm; |
||||
q1 *= recipNorm; |
||||
q2 *= recipNorm; |
||||
q3 *= recipNorm; |
||||
anglesComputed = 0; |
||||
} |
||||
|
||||
//-------------------------------------------------------------------------------------------
|
||||
// IMU algorithm update
|
||||
|
||||
void Mahony::updateIMU(float gx, float gy, float gz, float ax, float ay, float az) |
||||
{ |
||||
float recipNorm; |
||||
float halfvx, halfvy, halfvz; |
||||
float halfex, halfey, halfez; |
||||
float qa, qb, qc; |
||||
|
||||
// Convert gyroscope degrees/sec to radians/sec
|
||||
gx *= 0.0174533f; |
||||
gy *= 0.0174533f; |
||||
gz *= 0.0174533f; |
||||
|
||||
// Compute feedback only if accelerometer measurement valid
|
||||
// (avoids NaN in accelerometer normalisation)
|
||||
if(!((ax == 0.0f) && (ay == 0.0f) && (az == 0.0f))) { |
||||
|
||||
// Normalise accelerometer measurement
|
||||
recipNorm = invSqrt(ax * ax + ay * ay + az * az); |
||||
ax *= recipNorm; |
||||
ay *= recipNorm; |
||||
az *= recipNorm; |
||||
|
||||
// Estimated direction of gravity
|
||||
halfvx = q1 * q3 - q0 * q2; |
||||
halfvy = q0 * q1 + q2 * q3; |
||||
halfvz = q0 * q0 - 0.5f + q3 * q3; |
||||
|
||||
// Error is sum of cross product between estimated
|
||||
// and measured direction of gravity
|
||||
halfex = (ay * halfvz - az * halfvy); |
||||
halfey = (az * halfvx - ax * halfvz); |
||||
halfez = (ax * halfvy - ay * halfvx); |
||||
|
||||
// Compute and apply integral feedback if enabled
|
||||
if(twoKi > 0.0f) { |
||||
// integral error scaled by Ki
|
||||
integralFBx += twoKi * halfex * invSampleFreq; |
||||
integralFBy += twoKi * halfey * invSampleFreq; |
||||
integralFBz += twoKi * halfez * invSampleFreq; |
||||
gx += integralFBx; // apply integral feedback
|
||||
gy += integralFBy; |
||||
gz += integralFBz; |
||||
} else { |
||||
integralFBx = 0.0f; // prevent integral windup
|
||||
integralFBy = 0.0f; |
||||
integralFBz = 0.0f; |
||||
} |
||||
|
||||
// Apply proportional feedback
|
||||
gx += twoKp * halfex; |
||||
gy += twoKp * halfey; |
||||
gz += twoKp * halfez; |
||||
} |
||||
|
||||
// Integrate rate of change of quaternion
|
||||
gx *= (0.5f * invSampleFreq); // pre-multiply common factors
|
||||
gy *= (0.5f * invSampleFreq); |
||||
gz *= (0.5f * invSampleFreq); |
||||
qa = q0; |
||||
qb = q1; |
||||
qc = q2; |
||||
q0 += (-qb * gx - qc * gy - q3 * gz); |
||||
q1 += (qa * gx + qc * gz - q3 * gy); |
||||
q2 += (qa * gy - qb * gz + q3 * gx); |
||||
q3 += (qa * gz + qb * gy - qc * gx); |
||||
|
||||
// Normalise quaternion
|
||||
recipNorm = invSqrt(q0 * q0 + q1 * q1 + q2 * q2 + q3 * q3); |
||||
q0 *= recipNorm; |
||||
q1 *= recipNorm; |
||||
q2 *= recipNorm; |
||||
q3 *= recipNorm; |
||||
anglesComputed = 0; |
||||
} |
||||
|
||||
//-------------------------------------------------------------------------------------------
|
||||
// Fast inverse square-root
|
||||
// See: http://en.wikipedia.org/wiki/Fast_inverse_square_root
|
||||
|
||||
float Mahony::invSqrt(float x) |
||||
{ |
||||
float halfx = 0.5f * x; |
||||
float y = x; |
||||
long i = *(long*)&y; |
||||
i = 0x5f3759df - (i>>1); |
||||
y = *(float*)&i; |
||||
y = y * (1.5f - (halfx * y * y)); |
||||
y = y * (1.5f - (halfx * y * y)); |
||||
return y; |
||||
} |
||||
|
||||
//-------------------------------------------------------------------------------------------
|
||||
|
||||
void Mahony::computeAngles() |
||||
{ |
||||
roll = atan2f(q0*q1 + q2*q3, 0.5f - q1*q1 - q2*q2); |
||||
pitch = asinf(-2.0f * (q1*q3 - q0*q2)); |
||||
yaw = atan2f(q1*q2 + q0*q3, 0.5f - q2*q2 - q3*q3); |
||||
anglesComputed = 1; |
||||
} |
||||
|
||||
|
||||
//============================================================================================
|
||||
// END OF CODE
|
||||
//============================================================================================
|
||||
© 2021 GitHub, Inc. |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 4b10b79676f245846bf68004b1d87fa7 |
||||
PluginImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
iconMap: {} |
||||
executionOrder: {} |
||||
isPreloaded: 0 |
||||
isOverridable: 0 |
||||
platformData: |
||||
- first: |
||||
Any: |
||||
second: |
||||
enabled: 1 |
||||
settings: {} |
||||
- first: |
||||
Editor: Editor |
||||
second: |
||||
enabled: 0 |
||||
settings: |
||||
DefaultValueInitialized: true |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,217 @@
@@ -0,0 +1,217 @@
|
||||
# Copyright (c) 2018-2020 Mika Tuupola |
||||
# |
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
# of this software and associated documentation files (the "Software"), to |
||||
# deal in the Software without restriction, including without limitation the |
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
||||
# sell copied of the Software, and to permit persons to whom the Software is |
||||
# furnished to do so, subject to the following conditions: |
||||
# |
||||
# The above copyright notice and this permission notice shall be included in |
||||
# all copies or substantial portions of the Software. |
||||
# |
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||
# SOFTWARE. |
||||
|
||||
# https://github.com/tuupola/micropython-mpu9250 |
||||
|
||||
""" |
||||
MicroPython I2C driver for MPU6500 6-axis motion tracking device |
||||
""" |
||||
|
||||
__version__ = "0.3.0" |
||||
|
||||
# pylint: disable=import-error |
||||
import ustruct |
||||
import utime |
||||
from machine import I2C, Pin |
||||
from micropython import const |
||||
# pylint: enable=import-error |
||||
|
||||
_GYRO_CONFIG = const(0x1b) |
||||
_ACCEL_CONFIG = const(0x1c) |
||||
_ACCEL_CONFIG2 = const(0x1d) |
||||
_ACCEL_XOUT_H = const(0x3b) |
||||
_ACCEL_XOUT_L = const(0x3c) |
||||
_ACCEL_YOUT_H = const(0x3d) |
||||
_ACCEL_YOUT_L = const(0x3e) |
||||
_ACCEL_ZOUT_H = const(0x3f) |
||||
_ACCEL_ZOUT_L= const(0x40) |
||||
_TEMP_OUT_H = const(0x41) |
||||
_TEMP_OUT_L = const(0x42) |
||||
_GYRO_XOUT_H = const(0x43) |
||||
_GYRO_XOUT_L = const(0x44) |
||||
_GYRO_YOUT_H = const(0x45) |
||||
_GYRO_YOUT_L = const(0x46) |
||||
_GYRO_ZOUT_H = const(0x47) |
||||
_GYRO_ZOUT_L = const(0x48) |
||||
_WHO_AM_I = const(0x75) |
||||
|
||||
#_ACCEL_FS_MASK = const(0b00011000) |
||||
ACCEL_FS_SEL_2G = const(0b00000000) |
||||
ACCEL_FS_SEL_4G = const(0b00001000) |
||||
ACCEL_FS_SEL_8G = const(0b00010000) |
||||
ACCEL_FS_SEL_16G = const(0b00011000) |
||||
|
||||
_ACCEL_SO_2G = 16384 # 1 / 16384 ie. 0.061 mg / digit |
||||
_ACCEL_SO_4G = 8192 # 1 / 8192 ie. 0.122 mg / digit |
||||
_ACCEL_SO_8G = 4096 # 1 / 4096 ie. 0.244 mg / digit |
||||
_ACCEL_SO_16G = 2048 # 1 / 2048 ie. 0.488 mg / digit |
||||
|
||||
#_GYRO_FS_MASK = const(0b00011000) |
||||
GYRO_FS_SEL_250DPS = const(0b00000000) |
||||
GYRO_FS_SEL_500DPS = const(0b00001000) |
||||
GYRO_FS_SEL_1000DPS = const(0b00010000) |
||||
GYRO_FS_SEL_2000DPS = const(0b00011000) |
||||
|
||||
_GYRO_SO_250DPS = 131 |
||||
_GYRO_SO_500DPS = 62.5 |
||||
_GYRO_SO_1000DPS = 32.8 |
||||
_GYRO_SO_2000DPS = 16.4 |
||||
|
||||
_TEMP_SO = 333.87 |
||||
_TEMP_OFFSET = 21 |
||||
|
||||
SF_G = 1 |
||||
SF_M_S2 = 9.80665 # 1 g = 9.80665 m/s2 ie. standard gravity |
||||
SF_DEG_S = 1 |
||||
SF_RAD_S = 0.017453292519943 # 1 deg/s is 0.017453292519943 rad/s |
||||
|
||||
class MPU6500: |
||||
"""Class which provides interface to MPU6500 6-axis motion tracking device.""" |
||||
def __init__( |
||||
self, i2c, address=0x68, |
||||
accel_fs=ACCEL_FS_SEL_2G, gyro_fs=GYRO_FS_SEL_250DPS, |
||||
accel_sf=SF_M_S2, gyro_sf=SF_RAD_S, |
||||
gyro_offset=(0, 0, 0) |
||||
): |
||||
self.i2c = i2c |
||||
self.address = address |
||||
|
||||
# 0x70 = standalone MPU6500, 0x71 = MPU6250 SIP |
||||
if self.whoami not in [0x71, 0x70]: |
||||
raise RuntimeError("MPU6500 not found in I2C bus.") |
||||
|
||||
self._accel_so = self._accel_fs(accel_fs) |
||||
self._gyro_so = self._gyro_fs(gyro_fs) |
||||
self._accel_sf = accel_sf |
||||
self._gyro_sf = gyro_sf |
||||
self._gyro_offset = gyro_offset |
||||
|
||||
@property |
||||
def acceleration(self): |
||||
""" |
||||
Acceleration measured by the sensor. By default will return a |
||||
3-tuple of X, Y, Z axis acceleration values in m/s^2 as floats. Will |
||||
return values in g if constructor was provided `accel_sf=SF_M_S2` |
||||
parameter. |
||||
""" |
||||
so = self._accel_so |
||||
sf = self._accel_sf |
||||
|
||||
xyz = self._register_three_shorts(_ACCEL_XOUT_H) |
||||
return tuple([value / so * sf for value in xyz]) |
||||
|
||||
@property |
||||
def gyro(self): |
||||
""" |
||||
X, Y, Z radians per second as floats. |
||||
""" |
||||
so = self._gyro_so |
||||
sf = self._gyro_sf |
||||
ox, oy, oz = self._gyro_offset |
||||
|
||||
xyz = self._register_three_shorts(_GYRO_XOUT_H) |
||||
xyz = [value / so * sf for value in xyz] |
||||
|
||||
xyz[0] -= ox |
||||
xyz[1] -= oy |
||||
xyz[2] -= oz |
||||
|
||||
return tuple(xyz) |
||||
|
||||
@property |
||||
def temperature(self): |
||||
""" |
||||
Die temperature in celcius as a float. |
||||
""" |
||||
temp = self._register_short(_TEMP_OUT_H) |
||||
return ((temp - _TEMP_OFFSET) / _TEMP_SO) + _TEMP_OFFSET |
||||
|
||||
@property |
||||
def whoami(self): |
||||
""" Value of the whoami register. """ |
||||
return self._register_char(_WHO_AM_I) |
||||
|
||||
def calibrate(self, count=256, delay=0): |
||||
ox, oy, oz = (0.0, 0.0, 0.0) |
||||
self._gyro_offset = (0.0, 0.0, 0.0) |
||||
n = float(count) |
||||
|
||||
while count: |
||||
utime.sleep_ms(delay) |
||||
gx, gy, gz = self.gyro |
||||
ox += gx |
||||
oy += gy |
||||
oz += gz |
||||
count -= 1 |
||||
|
||||
self._gyro_offset = (ox / n, oy / n, oz / n) |
||||
return self._gyro_offset |
||||
|
||||
def _register_short(self, register, value=None, buf=bytearray(2)): |
||||
if value is None: |
||||
self.i2c.readfrom_mem_into(self.address, register, buf) |
||||
return ustruct.unpack(">h", buf)[0] |
||||
|
||||
ustruct.pack_into(">h", buf, 0, value) |
||||
return self.i2c.writeto_mem(self.address, register, buf) |
||||
|
||||
def _register_three_shorts(self, register, buf=bytearray(6)): |
||||
self.i2c.readfrom_mem_into(self.address, register, buf) |
||||
return ustruct.unpack(">hhh", buf) |
||||
|
||||
def _register_char(self, register, value=None, buf=bytearray(1)): |
||||
if value is None: |
||||
self.i2c.readfrom_mem_into(self.address, register, buf) |
||||
return buf[0] |
||||
|
||||
ustruct.pack_into("<b", buf, 0, value) |
||||
return self.i2c.writeto_mem(self.address, register, buf) |
||||
|
||||
def _accel_fs(self, value): |
||||
self._register_char(_ACCEL_CONFIG, value) |
||||
|
||||
# Return the sensitivity divider |
||||
if ACCEL_FS_SEL_2G == value: |
||||
return _ACCEL_SO_2G |
||||
elif ACCEL_FS_SEL_4G == value: |
||||
return _ACCEL_SO_4G |
||||
elif ACCEL_FS_SEL_8G == value: |
||||
return _ACCEL_SO_8G |
||||
elif ACCEL_FS_SEL_16G == value: |
||||
return _ACCEL_SO_16G |
||||
|
||||
def _gyro_fs(self, value): |
||||
self._register_char(_GYRO_CONFIG, value) |
||||
|
||||
# Return the sensitivity divider |
||||
if GYRO_FS_SEL_250DPS == value: |
||||
return _GYRO_SO_250DPS |
||||
elif GYRO_FS_SEL_500DPS == value: |
||||
return _GYRO_SO_500DPS |
||||
elif GYRO_FS_SEL_1000DPS == value: |
||||
return _GYRO_SO_1000DPS |
||||
elif GYRO_FS_SEL_2000DPS == value: |
||||
return _GYRO_SO_2000DPS |
||||
|
||||
def __enter__(self): |
||||
return self |
||||
|
||||
def __exit__(self, exception_type, exception_value, traceback): |
||||
pass |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 44e941f18d1c4234ebd0faaf071f3635 |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,100 @@
@@ -0,0 +1,100 @@
|
||||
# Copyright (c) 2018-2020 Mika Tuupola |
||||
# |
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
# of this software and associated documentation files (the "Software"), to |
||||
# deal in the Software without restriction, including without limitation the |
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
||||
# sell copied of the Software, and to permit persons to whom the Software is |
||||
# furnished to do so, subject to the following conditions: |
||||
# |
||||
# The above copyright notice and this permission notice shall be included in |
||||
# all copies or substantial portions of the Software. |
||||
# |
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||
# SOFTWARE. |
||||
|
||||
# https://github.com/tuupola/micropython-mpu9250 |
||||
|
||||
""" |
||||
MicroPython I2C driver for MPU9250 9-axis motion tracking device |
||||
""" |
||||
|
||||
# pylint: disable=import-error |
||||
from micropython import const |
||||
from mpu6500 import MPU6500 |
||||
from ak8963 import AK8963 |
||||
# pylint: enable=import-error |
||||
|
||||
__version__ = "0.3.0" |
||||
|
||||
# Used for enabling and disabling the I2C bypass access |
||||
_INT_PIN_CFG = const(0x37) |
||||
_I2C_BYPASS_MASK = const(0b00000010) |
||||
_I2C_BYPASS_EN = const(0b00000010) |
||||
_I2C_BYPASS_DIS = const(0b00000000) |
||||
|
||||
class MPU9250: |
||||
"""Class which provides interface to MPU9250 9-axis motion tracking device.""" |
||||
def __init__(self, i2c, mpu6500 = None, ak8963 = None): |
||||
if mpu6500 is None: |
||||
self.mpu6500 = MPU6500(i2c) |
||||
else: |
||||
self.mpu6500 = mpu6500 |
||||
|
||||
# Enable I2C bypass to access AK8963 directly. |
||||
char = self.mpu6500._register_char(_INT_PIN_CFG) |
||||
char &= ~_I2C_BYPASS_MASK # clear I2C bits |
||||
char |= _I2C_BYPASS_EN |
||||
self.mpu6500._register_char(_INT_PIN_CFG, char) |
||||
|
||||
if ak8963 is None: |
||||
self.ak8963 = AK8963(i2c) |
||||
else: |
||||
self.ak8963 = ak8963 |
||||
|
||||
@property |
||||
def acceleration(self): |
||||
""" |
||||
Acceleration measured by the sensor. By default will return a |
||||
3-tuple of X, Y, Z axis values in m/s^2 as floats. To get values in g |
||||
pass `accel_fs=SF_G` parameter to the MPU6500 constructor. |
||||
""" |
||||
return self.mpu6500.acceleration |
||||
|
||||
@property |
||||
def gyro(self): |
||||
""" |
||||
Gyro measured by the sensor. By default will return a 3-tuple of |
||||
X, Y, Z axis values in rad/s as floats. To get values in deg/s pass |
||||
`gyro_sf=SF_DEG_S` parameter to the MPU6500 constructor. |
||||
""" |
||||
return self.mpu6500.gyro |
||||
|
||||
@property |
||||
def temperature(self): |
||||
""" |
||||
Die temperature in celcius as a float. |
||||
""" |
||||
return self.mpu6500.temperature |
||||
|
||||
@property |
||||
def magnetic(self): |
||||
""" |
||||
X, Y, Z axis micro-Tesla (uT) as floats. |
||||
""" |
||||
return self.ak8963.magnetic |
||||
|
||||
@property |
||||
def whoami(self): |
||||
return self.mpu6500.whoami |
||||
|
||||
def __enter__(self): |
||||
return self |
||||
|
||||
def __exit__(self, exception_type, exception_value, traceback): |
||||
pass |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 03fd210311253c147878319e86f1193c |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,2 @@
@@ -0,0 +1,2 @@
|
||||
[metadata] |
||||
description-file = README.md |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 978962c3c10a80e478401ba40fcd26bd |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
import sys |
||||
sys.path.pop(0) |
||||
from setuptools import setup |
||||
from codecs import open |
||||
from os import path |
||||
|
||||
cwd = path.abspath(path.dirname(__file__)) |
||||
|
||||
# Get the long description from the README file |
||||
with open(path.join(cwd, "README.md"), encoding="utf-8") as f: |
||||
long_description = f.read() |
||||
|
||||
setup( |
||||
name="micropython-mpu9250", |
||||
py_modules=["mpu9250", "mpu6500", "ak8963"], |
||||
version="0.3.0", |
||||
description="MicroPython I2C driver for MPU9250 9-axis motion tracking device", |
||||
long_description=long_description, |
||||
long_description_content_type="text/markdown", |
||||
keywords="accelerometer, gyro, magnetometer, micropython, i2c", |
||||
url="https://github.com/tuupola/micropython-mpu9250", |
||||
author="Mika Tuupola", |
||||
author_email="tuupola@appelsiini.net", |
||||
maintainer="Mika Tuupola", |
||||
maintainer_email="tuupola@appelsiini.net", |
||||
license="MIT", |
||||
classifiers=[ |
||||
"Development Status :: 4 - Beta", |
||||
"Programming Language :: Python :: Implementation :: MicroPython", |
||||
"License :: OSI Approved :: MIT License", |
||||
], |
||||
) |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: bc7cd4bd62febd24082dadd364be4ac0 |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 92e1538cf332f1b488beb1dfbc1ff31c |
||||
folderAsset: yes |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
Binary file not shown.
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
fileFormatVersion: 2 |
||||
guid: e475d5c8d487c7d4493577c0ea85424a |
||||
PluginImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
iconMap: {} |
||||
executionOrder: {} |
||||
isPreloaded: 0 |
||||
isOverridable: 0 |
||||
platformData: |
||||
- first: |
||||
Any: |
||||
second: |
||||
enabled: 1 |
||||
settings: {} |
||||
- first: |
||||
Editor: Editor |
||||
second: |
||||
enabled: 0 |
||||
settings: |
||||
DefaultValueInitialized: true |
||||
- first: |
||||
Windows Store Apps: WindowsStoreApps |
||||
second: |
||||
enabled: 0 |
||||
settings: |
||||
CPU: AnyCPU |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: e0c81cac9271bb843af386637b6d6b4e |
||||
folderAsset: yes |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,383 @@
@@ -0,0 +1,383 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!1001 &100100000 |
||||
Prefab: |
||||
m_ObjectHideFlags: 1 |
||||
serializedVersion: 2 |
||||
m_Modification: |
||||
m_TransformParent: {fileID: 0} |
||||
m_Modifications: [] |
||||
m_RemovedComponents: [] |
||||
m_SourcePrefab: {fileID: 0} |
||||
m_RootGameObject: {fileID: 1456091746794382} |
||||
m_IsPrefabAsset: 1 |
||||
--- !u!1 &1139793821990616 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 224154201844102352} |
||||
- component: {fileID: 222910016590611166} |
||||
- component: {fileID: 114323351348535382} |
||||
m_Layer: 0 |
||||
m_Name: Text |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!1 &1456091746794382 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 224368088909558600} |
||||
- component: {fileID: 222462660609205198} |
||||
- component: {fileID: 114442951676989116} |
||||
- component: {fileID: 114626009689362896} |
||||
m_Layer: 0 |
||||
m_Name: Image (1) |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!1 &1475654912373326 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 224259740641284928} |
||||
- component: {fileID: 222707800505319690} |
||||
- component: {fileID: 114828079985214486} |
||||
m_Layer: 0 |
||||
m_Name: AccelYNegativeBar |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!1 &1698285148425396 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 224995374732261912} |
||||
- component: {fileID: 222402013992604818} |
||||
- component: {fileID: 114130620587259498} |
||||
m_Layer: 0 |
||||
m_Name: Line |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!1 &1907999241691114 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 224120546346935508} |
||||
- component: {fileID: 222048752067549718} |
||||
- component: {fileID: 114375934314842058} |
||||
m_Layer: 0 |
||||
m_Name: AccelYPositiveBar |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!114 &114130620587259498 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1698285148425396} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_Material: {fileID: 0} |
||||
m_Color: {r: 1, g: 1, b: 1, a: 1} |
||||
m_RaycastTarget: 1 |
||||
m_OnCullStateChanged: |
||||
m_PersistentCalls: |
||||
m_Calls: [] |
||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, |
||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null |
||||
m_Sprite: {fileID: 0} |
||||
m_Type: 0 |
||||
m_PreserveAspect: 0 |
||||
m_FillCenter: 1 |
||||
m_FillMethod: 4 |
||||
m_FillAmount: 1 |
||||
m_FillClockwise: 1 |
||||
m_FillOrigin: 0 |
||||
--- !u!114 &114323351348535382 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1139793821990616} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_Material: {fileID: 0} |
||||
m_Color: {r: 1, g: 1, b: 1, a: 1} |
||||
m_RaycastTarget: 1 |
||||
m_OnCullStateChanged: |
||||
m_PersistentCalls: |
||||
m_Calls: [] |
||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, |
||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null |
||||
m_FontData: |
||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} |
||||
m_FontSize: 14 |
||||
m_FontStyle: 0 |
||||
m_BestFit: 0 |
||||
m_MinSize: 10 |
||||
m_MaxSize: 40 |
||||
m_Alignment: 3 |
||||
m_AlignByGeometry: 0 |
||||
m_RichText: 1 |
||||
m_HorizontalOverflow: 0 |
||||
m_VerticalOverflow: 0 |
||||
m_LineSpacing: 1 |
||||
m_Text: "\u7AD6\u76F4" |
||||
--- !u!114 &114375934314842058 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1907999241691114} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_Material: {fileID: 0} |
||||
m_Color: {r: 0.7575587, g: 1, b: 0.740566, a: 1} |
||||
m_RaycastTarget: 1 |
||||
m_OnCullStateChanged: |
||||
m_PersistentCalls: |
||||
m_Calls: [] |
||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, |
||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null |
||||
m_Sprite: {fileID: 21300000, guid: dff3e7effdd533c46a367b83d25d471b, type: 3} |
||||
m_Type: 3 |
||||
m_PreserveAspect: 0 |
||||
m_FillCenter: 1 |
||||
m_FillMethod: 1 |
||||
m_FillAmount: 1 |
||||
m_FillClockwise: 1 |
||||
m_FillOrigin: 0 |
||||
--- !u!114 &114442951676989116 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1456091746794382} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_Material: {fileID: 0} |
||||
m_Color: {r: 0, g: 0, b: 0, a: 0.53333336} |
||||
m_RaycastTarget: 1 |
||||
m_OnCullStateChanged: |
||||
m_PersistentCalls: |
||||
m_Calls: [] |
||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, |
||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null |
||||
m_Sprite: {fileID: 0} |
||||
m_Type: 0 |
||||
m_PreserveAspect: 0 |
||||
m_FillCenter: 1 |
||||
m_FillMethod: 4 |
||||
m_FillAmount: 1 |
||||
m_FillClockwise: 1 |
||||
m_FillOrigin: 0 |
||||
--- !u!114 &114626009689362896 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1456091746794382} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 11500000, guid: 72fa529d1dea2a845b05e00a99658d71, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
BarImgPostive: {fileID: 114375934314842058} |
||||
BarImgNagetive: {fileID: 114828079985214486} |
||||
values: 0 |
||||
--- !u!114 &114828079985214486 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1475654912373326} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_Material: {fileID: 0} |
||||
m_Color: {r: 1, g: 0.6084906, b: 0.6084906, a: 1} |
||||
m_RaycastTarget: 1 |
||||
m_OnCullStateChanged: |
||||
m_PersistentCalls: |
||||
m_Calls: [] |
||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, |
||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null |
||||
m_Sprite: {fileID: 21300000, guid: dff3e7effdd533c46a367b83d25d471b, type: 3} |
||||
m_Type: 3 |
||||
m_PreserveAspect: 0 |
||||
m_FillCenter: 1 |
||||
m_FillMethod: 1 |
||||
m_FillAmount: 1 |
||||
m_FillClockwise: 1 |
||||
m_FillOrigin: 1 |
||||
--- !u!222 &222048752067549718 |
||||
CanvasRenderer: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1907999241691114} |
||||
m_CullTransparentMesh: 0 |
||||
--- !u!222 &222402013992604818 |
||||
CanvasRenderer: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1698285148425396} |
||||
m_CullTransparentMesh: 0 |
||||
--- !u!222 &222462660609205198 |
||||
CanvasRenderer: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1456091746794382} |
||||
m_CullTransparentMesh: 0 |
||||
--- !u!222 &222707800505319690 |
||||
CanvasRenderer: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1475654912373326} |
||||
m_CullTransparentMesh: 0 |
||||
--- !u!222 &222910016590611166 |
||||
CanvasRenderer: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1139793821990616} |
||||
m_CullTransparentMesh: 0 |
||||
--- !u!224 &224120546346935508 |
||||
RectTransform: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1907999241691114} |
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 0, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 224368088909558600} |
||||
m_RootOrder: 1 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
m_AnchorMin: {x: 0, y: 0.5} |
||||
m_AnchorMax: {x: 0, y: 0.5} |
||||
m_AnchoredPosition: {x: 36, y: 71.25} |
||||
m_SizeDelta: {x: 10, y: 142.5} |
||||
m_Pivot: {x: 0.5, y: 0.5} |
||||
--- !u!224 &224154201844102352 |
||||
RectTransform: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1139793821990616} |
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 0, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 224368088909558600} |
||||
m_RootOrder: 0 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
m_AnchorMin: {x: 0, y: 1} |
||||
m_AnchorMax: {x: 0, y: 1} |
||||
m_AnchoredPosition: {x: 36, y: -15} |
||||
m_SizeDelta: {x: 72, y: 30} |
||||
m_Pivot: {x: 0.5, y: 0.5} |
||||
--- !u!224 &224259740641284928 |
||||
RectTransform: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1475654912373326} |
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 0, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 224368088909558600} |
||||
m_RootOrder: 2 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
m_AnchorMin: {x: 0, y: 0.5} |
||||
m_AnchorMax: {x: 0, y: 0.5} |
||||
m_AnchoredPosition: {x: 36, y: -71.25} |
||||
m_SizeDelta: {x: 10, y: 142.5} |
||||
m_Pivot: {x: 0.5, y: 0.5} |
||||
--- !u!224 &224368088909558600 |
||||
RectTransform: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1456091746794382} |
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 0, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: |
||||
- {fileID: 224154201844102352} |
||||
- {fileID: 224120546346935508} |
||||
- {fileID: 224259740641284928} |
||||
- {fileID: 224995374732261912} |
||||
m_Father: {fileID: 0} |
||||
m_RootOrder: 0 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
m_AnchorMin: {x: 0, y: 0.5} |
||||
m_AnchorMax: {x: 0, y: 0.5} |
||||
m_AnchoredPosition: {x: 25, y: -25} |
||||
m_SizeDelta: {x: 50, y: 285} |
||||
m_Pivot: {x: 0.5, y: 0.5} |
||||
--- !u!224 &224995374732261912 |
||||
RectTransform: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1698285148425396} |
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 0, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 224368088909558600} |
||||
m_RootOrder: 3 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
m_AnchorMin: {x: 0.5, y: 0.5} |
||||
m_AnchorMax: {x: 0.5, y: 0.5} |
||||
m_AnchoredPosition: {x: 11, y: 0} |
||||
m_SizeDelta: {x: 30, y: 1} |
||||
m_Pivot: {x: 0.5, y: 0.5} |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 364b73b05bdc99a458ed129f06b58a66 |
||||
NativeFormatImporter: |
||||
externalObjects: {} |
||||
mainObjectFileID: 100100000 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,383 @@
@@ -0,0 +1,383 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!1001 &100100000 |
||||
Prefab: |
||||
m_ObjectHideFlags: 1 |
||||
serializedVersion: 2 |
||||
m_Modification: |
||||
m_TransformParent: {fileID: 0} |
||||
m_Modifications: [] |
||||
m_RemovedComponents: [] |
||||
m_SourcePrefab: {fileID: 0} |
||||
m_RootGameObject: {fileID: 1810457917552842} |
||||
m_IsPrefabAsset: 1 |
||||
--- !u!1 &1131191174832364 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 224281302679026160} |
||||
- component: {fileID: 222930081758608868} |
||||
- component: {fileID: 114725553398422278} |
||||
m_Layer: 0 |
||||
m_Name: AccelXPositiveBar |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!1 &1181152457585234 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 224332375974617662} |
||||
- component: {fileID: 222436521078970218} |
||||
- component: {fileID: 114590145857257460} |
||||
m_Layer: 0 |
||||
m_Name: Text |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!1 &1571849015857112 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 224292744078189534} |
||||
- component: {fileID: 222230930779836456} |
||||
- component: {fileID: 114508849228248392} |
||||
m_Layer: 0 |
||||
m_Name: Line |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!1 &1663622980831548 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 224103184171721240} |
||||
- component: {fileID: 222575257487439706} |
||||
- component: {fileID: 114677000956631158} |
||||
m_Layer: 0 |
||||
m_Name: AccelXNegativeBar |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!1 &1810457917552842 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 224437245420184406} |
||||
- component: {fileID: 222970116671210502} |
||||
- component: {fileID: 114204262816197546} |
||||
- component: {fileID: 114970952197763046} |
||||
m_Layer: 0 |
||||
m_Name: Image |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!114 &114204262816197546 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1810457917552842} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_Material: {fileID: 0} |
||||
m_Color: {r: 0, g: 0, b: 0, a: 0.53333336} |
||||
m_RaycastTarget: 1 |
||||
m_OnCullStateChanged: |
||||
m_PersistentCalls: |
||||
m_Calls: [] |
||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, |
||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null |
||||
m_Sprite: {fileID: 0} |
||||
m_Type: 0 |
||||
m_PreserveAspect: 0 |
||||
m_FillCenter: 1 |
||||
m_FillMethod: 4 |
||||
m_FillAmount: 1 |
||||
m_FillClockwise: 1 |
||||
m_FillOrigin: 0 |
||||
--- !u!114 &114508849228248392 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1571849015857112} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_Material: {fileID: 0} |
||||
m_Color: {r: 1, g: 1, b: 1, a: 1} |
||||
m_RaycastTarget: 1 |
||||
m_OnCullStateChanged: |
||||
m_PersistentCalls: |
||||
m_Calls: [] |
||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, |
||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null |
||||
m_Sprite: {fileID: 0} |
||||
m_Type: 0 |
||||
m_PreserveAspect: 0 |
||||
m_FillCenter: 1 |
||||
m_FillMethod: 4 |
||||
m_FillAmount: 1 |
||||
m_FillClockwise: 1 |
||||
m_FillOrigin: 0 |
||||
--- !u!114 &114590145857257460 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1181152457585234} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_Material: {fileID: 0} |
||||
m_Color: {r: 1, g: 1, b: 1, a: 1} |
||||
m_RaycastTarget: 1 |
||||
m_OnCullStateChanged: |
||||
m_PersistentCalls: |
||||
m_Calls: [] |
||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, |
||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null |
||||
m_FontData: |
||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} |
||||
m_FontSize: 14 |
||||
m_FontStyle: 0 |
||||
m_BestFit: 0 |
||||
m_MinSize: 10 |
||||
m_MaxSize: 40 |
||||
m_Alignment: 3 |
||||
m_AlignByGeometry: 0 |
||||
m_RichText: 1 |
||||
m_HorizontalOverflow: 0 |
||||
m_VerticalOverflow: 0 |
||||
m_LineSpacing: 1 |
||||
m_Text: "\u6A2A\u5411" |
||||
--- !u!114 &114677000956631158 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1663622980831548} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_Material: {fileID: 0} |
||||
m_Color: {r: 1, g: 0.6084906, b: 0.6084906, a: 1} |
||||
m_RaycastTarget: 1 |
||||
m_OnCullStateChanged: |
||||
m_PersistentCalls: |
||||
m_Calls: [] |
||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, |
||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null |
||||
m_Sprite: {fileID: 21300000, guid: dff3e7effdd533c46a367b83d25d471b, type: 3} |
||||
m_Type: 3 |
||||
m_PreserveAspect: 0 |
||||
m_FillCenter: 1 |
||||
m_FillMethod: 0 |
||||
m_FillAmount: 1 |
||||
m_FillClockwise: 1 |
||||
m_FillOrigin: 1 |
||||
--- !u!114 &114725553398422278 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1131191174832364} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_Material: {fileID: 0} |
||||
m_Color: {r: 0.7575587, g: 1, b: 0.740566, a: 1} |
||||
m_RaycastTarget: 1 |
||||
m_OnCullStateChanged: |
||||
m_PersistentCalls: |
||||
m_Calls: [] |
||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, |
||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null |
||||
m_Sprite: {fileID: 21300000, guid: dff3e7effdd533c46a367b83d25d471b, type: 3} |
||||
m_Type: 3 |
||||
m_PreserveAspect: 0 |
||||
m_FillCenter: 1 |
||||
m_FillMethod: 0 |
||||
m_FillAmount: 1 |
||||
m_FillClockwise: 1 |
||||
m_FillOrigin: 0 |
||||
--- !u!114 &114970952197763046 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1810457917552842} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 11500000, guid: 72fa529d1dea2a845b05e00a99658d71, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
BarImgPostive: {fileID: 114725553398422278} |
||||
BarImgNagetive: {fileID: 114677000956631158} |
||||
values: 0 |
||||
--- !u!222 &222230930779836456 |
||||
CanvasRenderer: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1571849015857112} |
||||
m_CullTransparentMesh: 0 |
||||
--- !u!222 &222436521078970218 |
||||
CanvasRenderer: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1181152457585234} |
||||
m_CullTransparentMesh: 0 |
||||
--- !u!222 &222575257487439706 |
||||
CanvasRenderer: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1663622980831548} |
||||
m_CullTransparentMesh: 0 |
||||
--- !u!222 &222930081758608868 |
||||
CanvasRenderer: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1131191174832364} |
||||
m_CullTransparentMesh: 0 |
||||
--- !u!222 &222970116671210502 |
||||
CanvasRenderer: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1810457917552842} |
||||
m_CullTransparentMesh: 0 |
||||
--- !u!224 &224103184171721240 |
||||
RectTransform: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1663622980831548} |
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 0, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 224437245420184406} |
||||
m_RootOrder: 2 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
m_AnchorMin: {x: 0, y: 0.5} |
||||
m_AnchorMax: {x: 0, y: 0.5} |
||||
m_AnchoredPosition: {x: 90, y: -5} |
||||
m_SizeDelta: {x: 180, y: 10} |
||||
m_Pivot: {x: 0.5, y: 0.5} |
||||
--- !u!224 &224281302679026160 |
||||
RectTransform: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1131191174832364} |
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 0, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 224437245420184406} |
||||
m_RootOrder: 1 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
m_AnchorMin: {x: 1, y: 0.5} |
||||
m_AnchorMax: {x: 1, y: 0.5} |
||||
m_AnchoredPosition: {x: -90, y: -5} |
||||
m_SizeDelta: {x: 180, y: 10} |
||||
m_Pivot: {x: 0.5, y: 0.5} |
||||
--- !u!224 &224292744078189534 |
||||
RectTransform: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1571849015857112} |
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 0, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 224437245420184406} |
||||
m_RootOrder: 3 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
m_AnchorMin: {x: 0.5, y: 0.5} |
||||
m_AnchorMax: {x: 0.5, y: 0.5} |
||||
m_AnchoredPosition: {x: 0, y: 0} |
||||
m_SizeDelta: {x: 1, y: 30} |
||||
m_Pivot: {x: 0.5, y: 0.5} |
||||
--- !u!224 &224332375974617662 |
||||
RectTransform: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1181152457585234} |
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 0, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 224437245420184406} |
||||
m_RootOrder: 0 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
m_AnchorMin: {x: 0, y: 1} |
||||
m_AnchorMax: {x: 0, y: 1} |
||||
m_AnchoredPosition: {x: 36, y: -15} |
||||
m_SizeDelta: {x: 72, y: 30} |
||||
m_Pivot: {x: 0.5, y: 0.5} |
||||
--- !u!224 &224437245420184406 |
||||
RectTransform: |
||||
m_ObjectHideFlags: 1 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 100100000} |
||||
m_GameObject: {fileID: 1810457917552842} |
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 0, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: |
||||
- {fileID: 224332375974617662} |
||||
- {fileID: 224281302679026160} |
||||
- {fileID: 224103184171721240} |
||||
- {fileID: 224292744078189534} |
||||
m_Father: {fileID: 0} |
||||
m_RootOrder: 0 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
m_AnchorMin: {x: 0, y: 1} |
||||
m_AnchorMax: {x: 0, y: 1} |
||||
m_AnchoredPosition: {x: 180, y: -25} |
||||
m_SizeDelta: {x: 360, y: 50} |
||||
m_Pivot: {x: 0.5, y: 0.5} |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 57d6fecbc8dac514d9d092ad19230c94 |
||||
NativeFormatImporter: |
||||
externalObjects: {} |
||||
mainObjectFileID: 100100000 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 20d7688177ab3034aa2bb79e98227a84 |
||||
NativeFormatImporter: |
||||
externalObjects: {} |
||||
mainObjectFileID: 100100000 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 4f704ae4b4f98ae41a0bce26658850c1 |
||||
folderAsset: yes |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,908 @@
@@ -0,0 +1,908 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!29 &1 |
||||
OcclusionCullingSettings: |
||||
m_ObjectHideFlags: 0 |
||||
serializedVersion: 2 |
||||
m_OcclusionBakeSettings: |
||||
smallestOccluder: 5 |
||||
smallestHole: 0.25 |
||||
backfaceThreshold: 100 |
||||
m_SceneGUID: 00000000000000000000000000000000 |
||||
m_OcclusionCullingData: {fileID: 0} |
||||
--- !u!104 &2 |
||||
RenderSettings: |
||||
m_ObjectHideFlags: 0 |
||||
serializedVersion: 9 |
||||
m_Fog: 0 |
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} |
||||
m_FogMode: 3 |
||||
m_FogDensity: 0.01 |
||||
m_LinearFogStart: 0 |
||||
m_LinearFogEnd: 300 |
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} |
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} |
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} |
||||
m_AmbientIntensity: 1 |
||||
m_AmbientMode: 0 |
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} |
||||
m_SkyboxMaterial: {fileID: 0} |
||||
m_HaloStrength: 0.5 |
||||
m_FlareStrength: 1 |
||||
m_FlareFadeSpeed: 3 |
||||
m_HaloTexture: {fileID: 0} |
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} |
||||
m_DefaultReflectionMode: 0 |
||||
m_DefaultReflectionResolution: 128 |
||||
m_ReflectionBounces: 1 |
||||
m_ReflectionIntensity: 1 |
||||
m_CustomReflection: {fileID: 0} |
||||
m_Sun: {fileID: 0} |
||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} |
||||
m_UseRadianceAmbientProbe: 0 |
||||
--- !u!157 &3 |
||||
LightmapSettings: |
||||
m_ObjectHideFlags: 0 |
||||
serializedVersion: 11 |
||||
m_GIWorkflowMode: 0 |
||||
m_GISettings: |
||||
serializedVersion: 2 |
||||
m_BounceScale: 1 |
||||
m_IndirectOutputScale: 1 |
||||
m_AlbedoBoost: 1 |
||||
m_TemporalCoherenceThreshold: 1 |
||||
m_EnvironmentLightingMode: 0 |
||||
m_EnableBakedLightmaps: 1 |
||||
m_EnableRealtimeLightmaps: 1 |
||||
m_LightmapEditorSettings: |
||||
serializedVersion: 10 |
||||
m_Resolution: 2 |
||||
m_BakeResolution: 40 |
||||
m_AtlasSize: 1024 |
||||
m_AO: 0 |
||||
m_AOMaxDistance: 1 |
||||
m_CompAOExponent: 1 |
||||
m_CompAOExponentDirect: 0 |
||||
m_Padding: 2 |
||||
m_LightmapParameters: {fileID: 0} |
||||
m_LightmapsBakeMode: 1 |
||||
m_TextureCompression: 1 |
||||
m_FinalGather: 0 |
||||
m_FinalGatherFiltering: 1 |
||||
m_FinalGatherRayCount: 256 |
||||
m_ReflectionCompression: 2 |
||||
m_MixedBakeMode: 2 |
||||
m_BakeBackend: 1 |
||||
m_PVRSampling: 1 |
||||
m_PVRDirectSampleCount: 32 |
||||
m_PVRSampleCount: 500 |
||||
m_PVRBounces: 2 |
||||
m_PVRFilterTypeDirect: 0 |
||||
m_PVRFilterTypeIndirect: 0 |
||||
m_PVRFilterTypeAO: 0 |
||||
m_PVRFilteringMode: 1 |
||||
m_PVRCulling: 1 |
||||
m_PVRFilteringGaussRadiusDirect: 1 |
||||
m_PVRFilteringGaussRadiusIndirect: 5 |
||||
m_PVRFilteringGaussRadiusAO: 2 |
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5 |
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2 |
||||
m_PVRFilteringAtrousPositionSigmaAO: 1 |
||||
m_ShowResolutionOverlay: 1 |
||||
m_LightingDataAsset: {fileID: 0} |
||||
m_UseShadowmask: 1 |
||||
--- !u!196 &4 |
||||
NavMeshSettings: |
||||
serializedVersion: 2 |
||||
m_ObjectHideFlags: 0 |
||||
m_BuildSettings: |
||||
serializedVersion: 2 |
||||
agentTypeID: 0 |
||||
agentRadius: 0.5 |
||||
agentHeight: 2 |
||||
agentSlope: 45 |
||||
agentClimb: 0.4 |
||||
ledgeDropHeight: 0 |
||||
maxJumpAcrossDistance: 0 |
||||
minRegionArea: 2 |
||||
manualCellSize: 0 |
||||
cellSize: 0.16666667 |
||||
manualTileSize: 0 |
||||
tileSize: 256 |
||||
accuratePlacement: 0 |
||||
debug: |
||||
m_Flags: 0 |
||||
m_NavMeshData: {fileID: 0} |
||||
--- !u!1 &109144102 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 109144105} |
||||
- component: {fileID: 109144104} |
||||
- component: {fileID: 109144103} |
||||
m_Layer: 0 |
||||
m_Name: Main Camera |
||||
m_TagString: MainCamera |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!81 &109144103 |
||||
AudioListener: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 109144102} |
||||
m_Enabled: 1 |
||||
--- !u!20 &109144104 |
||||
Camera: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 109144102} |
||||
m_Enabled: 1 |
||||
serializedVersion: 2 |
||||
m_ClearFlags: 2 |
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} |
||||
m_projectionMatrixMode: 1 |
||||
m_SensorSize: {x: 36, y: 24} |
||||
m_LensShift: {x: 0, y: 0} |
||||
m_FocalLength: 50 |
||||
m_NormalizedViewPortRect: |
||||
serializedVersion: 2 |
||||
x: 0 |
||||
y: 0 |
||||
width: 1 |
||||
height: 1 |
||||
near clip plane: 0.3 |
||||
far clip plane: 10 |
||||
field of view: 60 |
||||
orthographic: 1 |
||||
orthographic size: 5 |
||||
m_Depth: -1 |
||||
m_CullingMask: |
||||
serializedVersion: 2 |
||||
m_Bits: 4294967295 |
||||
m_RenderingPath: -1 |
||||
m_TargetTexture: {fileID: 0} |
||||
m_TargetDisplay: 0 |
||||
m_TargetEye: 3 |
||||
m_HDR: 1 |
||||
m_AllowMSAA: 1 |
||||
m_AllowDynamicResolution: 0 |
||||
m_ForceIntoRT: 0 |
||||
m_OcclusionCulling: 1 |
||||
m_StereoConvergence: 10 |
||||
m_StereoSeparation: 0.022 |
||||
--- !u!4 &109144105 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 109144102} |
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
||||
m_LocalPosition: {x: -1.09, y: 5.07, z: -7.98} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 0} |
||||
m_RootOrder: 0 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
--- !u!1 &462210905 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 462210908} |
||||
- component: {fileID: 462210907} |
||||
- component: {fileID: 462210906} |
||||
m_Layer: 0 |
||||
m_Name: EventSystem |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!114 &462210906 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 462210905} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_HorizontalAxis: Horizontal |
||||
m_VerticalAxis: Vertical |
||||
m_SubmitButton: Submit |
||||
m_CancelButton: Cancel |
||||
m_InputActionsPerSecond: 10 |
||||
m_RepeatDelay: 0.5 |
||||
m_ForceModuleActive: 0 |
||||
--- !u!114 &462210907 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 462210905} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_FirstSelected: {fileID: 0} |
||||
m_sendNavigationEvents: 1 |
||||
m_DragThreshold: 10 |
||||
--- !u!4 &462210908 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 462210905} |
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 0, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 0} |
||||
m_RootOrder: 6 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
--- !u!1 &919013184 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 919013188} |
||||
- component: {fileID: 919013187} |
||||
- component: {fileID: 919013186} |
||||
- component: {fileID: 919013185} |
||||
m_Layer: 0 |
||||
m_Name: Cube |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!65 &919013185 |
||||
BoxCollider: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 919013184} |
||||
m_Material: {fileID: 0} |
||||
m_IsTrigger: 0 |
||||
m_Enabled: 1 |
||||
serializedVersion: 2 |
||||
m_Size: {x: 1, y: 1, z: 1} |
||||
m_Center: {x: 0, y: 0, z: 0} |
||||
--- !u!23 &919013186 |
||||
MeshRenderer: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 919013184} |
||||
m_Enabled: 1 |
||||
m_CastShadows: 1 |
||||
m_ReceiveShadows: 1 |
||||
m_DynamicOccludee: 1 |
||||
m_MotionVectors: 1 |
||||
m_LightProbeUsage: 1 |
||||
m_ReflectionProbeUsage: 1 |
||||
m_RenderingLayerMask: 4294967295 |
||||
m_Materials: |
||||
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} |
||||
m_StaticBatchInfo: |
||||
firstSubMesh: 0 |
||||
subMeshCount: 0 |
||||
m_StaticBatchRoot: {fileID: 0} |
||||
m_ProbeAnchor: {fileID: 0} |
||||
m_LightProbeVolumeOverride: {fileID: 0} |
||||
m_ScaleInLightmap: 1 |
||||
m_PreserveUVs: 0 |
||||
m_IgnoreNormalsForChartDetection: 0 |
||||
m_ImportantGI: 0 |
||||
m_StitchLightmapSeams: 0 |
||||
m_SelectedEditorRenderState: 3 |
||||
m_MinimumChartSize: 4 |
||||
m_AutoUVMaxDistance: 0.5 |
||||
m_AutoUVMaxAngle: 89 |
||||
m_LightmapParameters: {fileID: 0} |
||||
m_SortingLayerID: 0 |
||||
m_SortingLayer: 0 |
||||
m_SortingOrder: 0 |
||||
--- !u!33 &919013187 |
||||
MeshFilter: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 919013184} |
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
||||
--- !u!4 &919013188 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 919013184} |
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
||||
m_LocalPosition: {x: -3.18, y: 3.96, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 0} |
||||
m_RootOrder: 4 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
--- !u!1 &1004079317 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 1004079319} |
||||
- component: {fileID: 1004079318} |
||||
m_Layer: 0 |
||||
m_Name: New Sprite |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!212 &1004079318 |
||||
SpriteRenderer: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 1004079317} |
||||
m_Enabled: 1 |
||||
m_CastShadows: 0 |
||||
m_ReceiveShadows: 0 |
||||
m_DynamicOccludee: 1 |
||||
m_MotionVectors: 1 |
||||
m_LightProbeUsage: 1 |
||||
m_ReflectionProbeUsage: 1 |
||||
m_RenderingLayerMask: 4294967295 |
||||
m_Materials: |
||||
- {fileID: 2100000, guid: 264a8026f6825c042944cf8bdf356431, type: 2} |
||||
m_StaticBatchInfo: |
||||
firstSubMesh: 0 |
||||
subMeshCount: 0 |
||||
m_StaticBatchRoot: {fileID: 0} |
||||
m_ProbeAnchor: {fileID: 0} |
||||
m_LightProbeVolumeOverride: {fileID: 0} |
||||
m_ScaleInLightmap: 1 |
||||
m_PreserveUVs: 0 |
||||
m_IgnoreNormalsForChartDetection: 0 |
||||
m_ImportantGI: 0 |
||||
m_StitchLightmapSeams: 0 |
||||
m_SelectedEditorRenderState: 0 |
||||
m_MinimumChartSize: 4 |
||||
m_AutoUVMaxDistance: 0.5 |
||||
m_AutoUVMaxAngle: 89 |
||||
m_LightmapParameters: {fileID: 0} |
||||
m_SortingLayerID: 0 |
||||
m_SortingLayer: 0 |
||||
m_SortingOrder: 0 |
||||
m_Sprite: {fileID: 21300000, guid: dff3e7effdd533c46a367b83d25d471b, type: 3} |
||||
m_Color: {r: 1, g: 1, b: 1, a: 1} |
||||
m_FlipX: 0 |
||||
m_FlipY: 0 |
||||
m_DrawMode: 0 |
||||
m_Size: {x: 0.16, y: 0.16} |
||||
m_AdaptiveModeThreshold: 0.5 |
||||
m_SpriteTileMode: 0 |
||||
m_WasSpriteAssigned: 1 |
||||
m_MaskInteraction: 0 |
||||
m_SpriteSortPoint: 0 |
||||
--- !u!4 &1004079319 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 1004079317} |
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 3.3, z: 0} |
||||
m_LocalScale: {x: 22, y: 22, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 0} |
||||
m_RootOrder: 7 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
--- !u!1 &1109229777 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 1109229779} |
||||
- component: {fileID: 1109229778} |
||||
m_Layer: 0 |
||||
m_Name: Script |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!114 &1109229778 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 1109229777} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 11500000, guid: 124ab28672a6a104cab21f951dbdcc9c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
jsonData: |
||||
MpuBoardTrans: {fileID: 1409469105} |
||||
value1: {fileID: 1405471468} |
||||
value2: {fileID: 1389643388} |
||||
--- !u!4 &1109229779 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 1109229777} |
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 3, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 0} |
||||
m_RootOrder: 2 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
--- !u!1 &1350859374 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 1350859376} |
||||
- component: {fileID: 1350859375} |
||||
m_Layer: 0 |
||||
m_Name: Directional Light |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 0 |
||||
--- !u!108 &1350859375 |
||||
Light: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 1350859374} |
||||
m_Enabled: 1 |
||||
serializedVersion: 8 |
||||
m_Type: 1 |
||||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} |
||||
m_Intensity: 1 |
||||
m_Range: 10 |
||||
m_SpotAngle: 30 |
||||
m_CookieSize: 10 |
||||
m_Shadows: |
||||
m_Type: 2 |
||||
m_Resolution: -1 |
||||
m_CustomResolution: -1 |
||||
m_Strength: 1 |
||||
m_Bias: 0.05 |
||||
m_NormalBias: 0.4 |
||||
m_NearPlane: 0.2 |
||||
m_Cookie: {fileID: 0} |
||||
m_DrawHalo: 0 |
||||
m_Flare: {fileID: 0} |
||||
m_RenderMode: 0 |
||||
m_CullingMask: |
||||
serializedVersion: 2 |
||||
m_Bits: 4294967295 |
||||
m_Lightmapping: 4 |
||||
m_LightShadowCasterMode: 0 |
||||
m_AreaSize: {x: 1, y: 1} |
||||
m_BounceIntensity: 1 |
||||
m_ColorTemperature: 6570 |
||||
m_UseColorTemperature: 0 |
||||
m_ShadowRadius: 0 |
||||
m_ShadowAngle: 0 |
||||
--- !u!4 &1350859376 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 1350859374} |
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 3, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 0} |
||||
m_RootOrder: 3 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
--- !u!1001 &1389643386 |
||||
Prefab: |
||||
m_ObjectHideFlags: 0 |
||||
serializedVersion: 2 |
||||
m_Modification: |
||||
m_TransformParent: {fileID: 1599924583} |
||||
m_Modifications: |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_LocalPosition.x |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_LocalPosition.y |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_LocalPosition.z |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_LocalRotation.x |
||||
value: -0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_LocalRotation.y |
||||
value: -0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_LocalRotation.z |
||||
value: -0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_LocalRotation.w |
||||
value: 1 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_RootOrder |
||||
value: 1 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_AnchoredPosition.x |
||||
value: 25 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_AnchoredPosition.y |
||||
value: -25 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_SizeDelta.x |
||||
value: 50 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_SizeDelta.y |
||||
value: 285 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_AnchorMin.x |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_AnchorMin.y |
||||
value: 0.5 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_AnchorMax.x |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_AnchorMax.y |
||||
value: 0.5 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_Pivot.x |
||||
value: 0.5 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
propertyPath: m_Pivot.y |
||||
value: 0.5 |
||||
objectReference: {fileID: 0} |
||||
m_RemovedComponents: [] |
||||
m_SourcePrefab: {fileID: 100100000, guid: 364b73b05bdc99a458ed129f06b58a66, type: 2} |
||||
m_IsPrefabAsset: 0 |
||||
--- !u!224 &1389643387 stripped |
||||
RectTransform: |
||||
m_CorrespondingSourceObject: {fileID: 224368088909558600, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
m_PrefabInternal: {fileID: 1389643386} |
||||
--- !u!114 &1389643388 stripped |
||||
MonoBehaviour: |
||||
m_CorrespondingSourceObject: {fileID: 114626009689362896, guid: 364b73b05bdc99a458ed129f06b58a66, |
||||
type: 2} |
||||
m_PrefabInternal: {fileID: 1389643386} |
||||
m_Script: {fileID: 11500000, guid: 72fa529d1dea2a845b05e00a99658d71, type: 3} |
||||
--- !u!1001 &1405471466 |
||||
Prefab: |
||||
m_ObjectHideFlags: 0 |
||||
serializedVersion: 2 |
||||
m_Modification: |
||||
m_TransformParent: {fileID: 1599924583} |
||||
m_Modifications: |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_LocalPosition.x |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_LocalPosition.y |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_LocalPosition.z |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_LocalRotation.x |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_LocalRotation.y |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_LocalRotation.z |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_LocalRotation.w |
||||
value: 1 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_RootOrder |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_AnchoredPosition.x |
||||
value: 180 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_AnchoredPosition.y |
||||
value: -25 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_SizeDelta.x |
||||
value: 360 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_SizeDelta.y |
||||
value: 50 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_AnchorMin.x |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_AnchorMin.y |
||||
value: 1 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_AnchorMax.x |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_AnchorMax.y |
||||
value: 1 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_Pivot.x |
||||
value: 0.5 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
propertyPath: m_Pivot.y |
||||
value: 0.5 |
||||
objectReference: {fileID: 0} |
||||
m_RemovedComponents: [] |
||||
m_SourcePrefab: {fileID: 100100000, guid: 57d6fecbc8dac514d9d092ad19230c94, type: 2} |
||||
m_IsPrefabAsset: 0 |
||||
--- !u!224 &1405471467 stripped |
||||
RectTransform: |
||||
m_CorrespondingSourceObject: {fileID: 224437245420184406, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
m_PrefabInternal: {fileID: 1405471466} |
||||
--- !u!114 &1405471468 stripped |
||||
MonoBehaviour: |
||||
m_CorrespondingSourceObject: {fileID: 114970952197763046, guid: 57d6fecbc8dac514d9d092ad19230c94, |
||||
type: 2} |
||||
m_PrefabInternal: {fileID: 1405471466} |
||||
m_Script: {fileID: 11500000, guid: 72fa529d1dea2a845b05e00a99658d71, type: 3} |
||||
--- !u!1001 &1409469104 |
||||
Prefab: |
||||
m_ObjectHideFlags: 0 |
||||
serializedVersion: 2 |
||||
m_Modification: |
||||
m_TransformParent: {fileID: 0} |
||||
m_Modifications: |
||||
- target: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
propertyPath: m_LocalPosition.x |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
propertyPath: m_LocalPosition.y |
||||
value: 2.57 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
propertyPath: m_LocalPosition.z |
||||
value: 0 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
propertyPath: m_LocalRotation.x |
||||
value: 0.5 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
propertyPath: m_LocalRotation.y |
||||
value: 0.5 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
propertyPath: m_LocalRotation.z |
||||
value: -0.5 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
propertyPath: m_LocalRotation.w |
||||
value: -0.5 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
propertyPath: m_RootOrder |
||||
value: 1 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
propertyPath: m_LocalScale.y |
||||
value: 0.1 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
propertyPath: m_LocalScale.z |
||||
value: 2 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
propertyPath: m_LocalScale.x |
||||
value: 1.5 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
propertyPath: m_LocalEulerAnglesHint.y |
||||
value: 270 |
||||
objectReference: {fileID: 0} |
||||
- target: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
propertyPath: m_LocalEulerAnglesHint.z |
||||
value: 90 |
||||
objectReference: {fileID: 0} |
||||
m_RemovedComponents: [] |
||||
m_SourcePrefab: {fileID: 100100000, guid: 20d7688177ab3034aa2bb79e98227a84, type: 2} |
||||
m_IsPrefabAsset: 0 |
||||
--- !u!4 &1409469105 stripped |
||||
Transform: |
||||
m_CorrespondingSourceObject: {fileID: 4854354438479990, guid: 20d7688177ab3034aa2bb79e98227a84, |
||||
type: 2} |
||||
m_PrefabInternal: {fileID: 1409469104} |
||||
--- !u!1 &1599924579 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 1599924583} |
||||
- component: {fileID: 1599924582} |
||||
- component: {fileID: 1599924581} |
||||
- component: {fileID: 1599924580} |
||||
m_Layer: 0 |
||||
m_Name: Canvas |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!114 &1599924580 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 1599924579} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_IgnoreReversedGraphics: 1 |
||||
m_BlockingObjects: 0 |
||||
m_BlockingMask: |
||||
serializedVersion: 2 |
||||
m_Bits: 4294967295 |
||||
--- !u!114 &1599924581 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 1599924579} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
m_UiScaleMode: 0 |
||||
m_ReferencePixelsPerUnit: 100 |
||||
m_ScaleFactor: 1 |
||||
m_ReferenceResolution: {x: 800, y: 600} |
||||
m_ScreenMatchMode: 0 |
||||
m_MatchWidthOrHeight: 0 |
||||
m_PhysicalUnit: 3 |
||||
m_FallbackScreenDPI: 96 |
||||
m_DefaultSpriteDPI: 96 |
||||
m_DynamicPixelsPerUnit: 1 |
||||
--- !u!223 &1599924582 |
||||
Canvas: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 1599924579} |
||||
m_Enabled: 1 |
||||
serializedVersion: 3 |
||||
m_RenderMode: 0 |
||||
m_Camera: {fileID: 0} |
||||
m_PlaneDistance: 100 |
||||
m_PixelPerfect: 0 |
||||
m_ReceivesEvents: 1 |
||||
m_OverrideSorting: 0 |
||||
m_OverridePixelPerfect: 0 |
||||
m_SortingBucketNormalizedSize: 0 |
||||
m_AdditionalShaderChannelsFlag: 0 |
||||
m_SortingLayerID: 0 |
||||
m_SortingOrder: 0 |
||||
m_TargetDisplay: 0 |
||||
--- !u!224 &1599924583 |
||||
RectTransform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 1599924579} |
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 0, z: 0} |
||||
m_LocalScale: {x: 0, y: 0, z: 0} |
||||
m_Children: |
||||
- {fileID: 1405471467} |
||||
- {fileID: 1389643387} |
||||
m_Father: {fileID: 0} |
||||
m_RootOrder: 5 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
m_AnchorMin: {x: 0, y: 0} |
||||
m_AnchorMax: {x: 0, y: 0} |
||||
m_AnchoredPosition: {x: 0, y: 0} |
||||
m_SizeDelta: {x: 0, y: 0} |
||||
m_Pivot: {x: 0, y: 0} |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 5f28c3dffe484eb4f9b598cc974f91d0 |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: b91e8bcdfe0d40340acfdb07ec6ac489 |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,258 @@
@@ -0,0 +1,258 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!29 &1 |
||||
OcclusionCullingSettings: |
||||
m_ObjectHideFlags: 0 |
||||
serializedVersion: 2 |
||||
m_OcclusionBakeSettings: |
||||
smallestOccluder: 5 |
||||
smallestHole: 0.25 |
||||
backfaceThreshold: 100 |
||||
m_SceneGUID: 00000000000000000000000000000000 |
||||
m_OcclusionCullingData: {fileID: 0} |
||||
--- !u!104 &2 |
||||
RenderSettings: |
||||
m_ObjectHideFlags: 0 |
||||
serializedVersion: 9 |
||||
m_Fog: 0 |
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} |
||||
m_FogMode: 3 |
||||
m_FogDensity: 0.01 |
||||
m_LinearFogStart: 0 |
||||
m_LinearFogEnd: 300 |
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} |
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} |
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} |
||||
m_AmbientIntensity: 1 |
||||
m_AmbientMode: 0 |
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} |
||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} |
||||
m_HaloStrength: 0.5 |
||||
m_FlareStrength: 1 |
||||
m_FlareFadeSpeed: 3 |
||||
m_HaloTexture: {fileID: 0} |
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} |
||||
m_DefaultReflectionMode: 0 |
||||
m_DefaultReflectionResolution: 128 |
||||
m_ReflectionBounces: 1 |
||||
m_ReflectionIntensity: 1 |
||||
m_CustomReflection: {fileID: 0} |
||||
m_Sun: {fileID: 0} |
||||
m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} |
||||
m_UseRadianceAmbientProbe: 0 |
||||
--- !u!157 &3 |
||||
LightmapSettings: |
||||
m_ObjectHideFlags: 0 |
||||
serializedVersion: 11 |
||||
m_GIWorkflowMode: 0 |
||||
m_GISettings: |
||||
serializedVersion: 2 |
||||
m_BounceScale: 1 |
||||
m_IndirectOutputScale: 1 |
||||
m_AlbedoBoost: 1 |
||||
m_TemporalCoherenceThreshold: 1 |
||||
m_EnvironmentLightingMode: 0 |
||||
m_EnableBakedLightmaps: 1 |
||||
m_EnableRealtimeLightmaps: 0 |
||||
m_LightmapEditorSettings: |
||||
serializedVersion: 10 |
||||
m_Resolution: 2 |
||||
m_BakeResolution: 10 |
||||
m_AtlasSize: 512 |
||||
m_AO: 0 |
||||
m_AOMaxDistance: 1 |
||||
m_CompAOExponent: 1 |
||||
m_CompAOExponentDirect: 0 |
||||
m_Padding: 2 |
||||
m_LightmapParameters: {fileID: 0} |
||||
m_LightmapsBakeMode: 1 |
||||
m_TextureCompression: 1 |
||||
m_FinalGather: 0 |
||||
m_FinalGatherFiltering: 1 |
||||
m_FinalGatherRayCount: 256 |
||||
m_ReflectionCompression: 2 |
||||
m_MixedBakeMode: 2 |
||||
m_BakeBackend: 1 |
||||
m_PVRSampling: 1 |
||||
m_PVRDirectSampleCount: 32 |
||||
m_PVRSampleCount: 256 |
||||
m_PVRBounces: 2 |
||||
m_PVRFilterTypeDirect: 0 |
||||
m_PVRFilterTypeIndirect: 0 |
||||
m_PVRFilterTypeAO: 0 |
||||
m_PVRFilteringMode: 1 |
||||
m_PVRCulling: 1 |
||||
m_PVRFilteringGaussRadiusDirect: 1 |
||||
m_PVRFilteringGaussRadiusIndirect: 5 |
||||
m_PVRFilteringGaussRadiusAO: 2 |
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5 |
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2 |
||||
m_PVRFilteringAtrousPositionSigmaAO: 1 |
||||
m_ShowResolutionOverlay: 1 |
||||
m_LightingDataAsset: {fileID: 0} |
||||
m_UseShadowmask: 1 |
||||
--- !u!196 &4 |
||||
NavMeshSettings: |
||||
serializedVersion: 2 |
||||
m_ObjectHideFlags: 0 |
||||
m_BuildSettings: |
||||
serializedVersion: 2 |
||||
agentTypeID: 0 |
||||
agentRadius: 0.5 |
||||
agentHeight: 2 |
||||
agentSlope: 45 |
||||
agentClimb: 0.4 |
||||
ledgeDropHeight: 0 |
||||
maxJumpAcrossDistance: 0 |
||||
minRegionArea: 2 |
||||
manualCellSize: 0 |
||||
cellSize: 0.16666667 |
||||
manualTileSize: 0 |
||||
tileSize: 256 |
||||
accuratePlacement: 0 |
||||
debug: |
||||
m_Flags: 0 |
||||
m_NavMeshData: {fileID: 0} |
||||
--- !u!1 &170076733 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 170076735} |
||||
- component: {fileID: 170076734} |
||||
m_Layer: 0 |
||||
m_Name: Directional Light |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!108 &170076734 |
||||
Light: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 170076733} |
||||
m_Enabled: 1 |
||||
serializedVersion: 8 |
||||
m_Type: 1 |
||||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} |
||||
m_Intensity: 1 |
||||
m_Range: 10 |
||||
m_SpotAngle: 30 |
||||
m_CookieSize: 10 |
||||
m_Shadows: |
||||
m_Type: 2 |
||||
m_Resolution: -1 |
||||
m_CustomResolution: -1 |
||||
m_Strength: 1 |
||||
m_Bias: 0.05 |
||||
m_NormalBias: 0.4 |
||||
m_NearPlane: 0.2 |
||||
m_Cookie: {fileID: 0} |
||||
m_DrawHalo: 0 |
||||
m_Flare: {fileID: 0} |
||||
m_RenderMode: 0 |
||||
m_CullingMask: |
||||
serializedVersion: 2 |
||||
m_Bits: 4294967295 |
||||
m_Lightmapping: 1 |
||||
m_LightShadowCasterMode: 0 |
||||
m_AreaSize: {x: 1, y: 1} |
||||
m_BounceIntensity: 1 |
||||
m_ColorTemperature: 6570 |
||||
m_UseColorTemperature: 0 |
||||
m_ShadowRadius: 0 |
||||
m_ShadowAngle: 0 |
||||
--- !u!4 &170076735 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 170076733} |
||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} |
||||
m_LocalPosition: {x: 0, y: 3, z: 0} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 0} |
||||
m_RootOrder: 1 |
||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} |
||||
--- !u!1 &534669902 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 534669905} |
||||
- component: {fileID: 534669904} |
||||
- component: {fileID: 534669903} |
||||
m_Layer: 0 |
||||
m_Name: Main Camera |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!81 &534669903 |
||||
AudioListener: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 534669902} |
||||
m_Enabled: 1 |
||||
--- !u!20 &534669904 |
||||
Camera: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 534669902} |
||||
m_Enabled: 1 |
||||
serializedVersion: 2 |
||||
m_ClearFlags: 1 |
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} |
||||
m_projectionMatrixMode: 1 |
||||
m_SensorSize: {x: 36, y: 24} |
||||
m_LensShift: {x: 0, y: 0} |
||||
m_FocalLength: 50 |
||||
m_NormalizedViewPortRect: |
||||
serializedVersion: 2 |
||||
x: 0 |
||||
y: 0 |
||||
width: 1 |
||||
height: 1 |
||||
near clip plane: 0.3 |
||||
far clip plane: 1000 |
||||
field of view: 60 |
||||
orthographic: 0 |
||||
orthographic size: 5 |
||||
m_Depth: -1 |
||||
m_CullingMask: |
||||
serializedVersion: 2 |
||||
m_Bits: 4294967295 |
||||
m_RenderingPath: -1 |
||||
m_TargetTexture: {fileID: 0} |
||||
m_TargetDisplay: 0 |
||||
m_TargetEye: 3 |
||||
m_HDR: 1 |
||||
m_AllowMSAA: 1 |
||||
m_AllowDynamicResolution: 0 |
||||
m_ForceIntoRT: 0 |
||||
m_OcclusionCulling: 1 |
||||
m_StereoConvergence: 10 |
||||
m_StereoSeparation: 0.022 |
||||
--- !u!4 &534669905 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_GameObject: {fileID: 534669902} |
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
||||
m_LocalPosition: {x: 0, y: 1, z: -10} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 0} |
||||
m_RootOrder: 0 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 99c9720ab356a0642a771bea13969a05 |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 8f8159cab31b51041a806d94b8e97319 |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 27dbeba3f3d6fdd4ebe03cd188f5da79 |
||||
folderAsset: yes |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,58 @@
@@ -0,0 +1,58 @@
|
||||
Shader "Unlit/MyShader" |
||||
{ |
||||
Properties |
||||
{ |
||||
_MainTex ("Texture", 2D) = "white" {} |
||||
} |
||||
SubShader |
||||
{ |
||||
Tags { "RenderType"="Opaque" } |
||||
LOD 100 |
||||
|
||||
Pass |
||||
{ |
||||
CGPROGRAM |
||||
#pragma vertex vert |
||||
#pragma fragment frag |
||||
// make fog work |
||||
#pragma multi_compile_fog |
||||
|
||||
#include "UnityCG.cginc" |
||||
|
||||
struct appdata |
||||
{ |
||||
float4 vertex : POSITION; |
||||
float2 uv : TEXCOORD0; |
||||
}; |
||||
|
||||
struct v2f |
||||
{ |
||||
float2 uv : TEXCOORD0; |
||||
UNITY_FOG_COORDS(1) |
||||
float4 vertex : SV_POSITION; |
||||
}; |
||||
|
||||
sampler2D _MainTex; |
||||
float4 _MainTex_ST; |
||||
|
||||
v2f vert (appdata v) |
||||
{ |
||||
v2f o; |
||||
o.vertex = UnityObjectToClipPos(v.vertex); |
||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex); |
||||
UNITY_TRANSFER_FOG(o,o.vertex); |
||||
return o; |
||||
} |
||||
|
||||
fixed4 frag (v2f i) : SV_Target |
||||
{ |
||||
// sample the texture |
||||
fixed4 col = tex2D(_MainTex, i.uv); |
||||
// apply fog |
||||
UNITY_APPLY_FOG(i.fogCoord, col); |
||||
return col; |
||||
} |
||||
ENDCG |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2 |
||||
guid: e0c25f1fbc629ff47b927ff8b39d3abc |
||||
ShaderImporter: |
||||
externalObjects: {} |
||||
defaultTextures: [] |
||||
nonModifiableTextures: [] |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: ba60e7e7896ed304388dcbebe9b56bd4 |
||||
folderAsset: yes |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
After Width: | Height: | Size: 2.7 KiB |
@ -0,0 +1,132 @@
@@ -0,0 +1,132 @@
|
||||
fileFormatVersion: 2 |
||||
guid: dff3e7effdd533c46a367b83d25d471b |
||||
TextureImporter: |
||||
fileIDToRecycleName: {} |
||||
externalObjects: {} |
||||
serializedVersion: 7 |
||||
mipmaps: |
||||
mipMapMode: 0 |
||||
enableMipMap: 0 |
||||
sRGBTexture: 1 |
||||
linearTexture: 0 |
||||
fadeOut: 0 |
||||
borderMipMap: 0 |
||||
mipMapsPreserveCoverage: 0 |
||||
alphaTestReferenceValue: 0.5 |
||||
mipMapFadeDistanceStart: 1 |
||||
mipMapFadeDistanceEnd: 3 |
||||
bumpmap: |
||||
convertToNormalMap: 0 |
||||
externalNormalMap: 0 |
||||
heightScale: 0.25 |
||||
normalMapFilter: 0 |
||||
isReadable: 0 |
||||
streamingMipmaps: 0 |
||||
streamingMipmapsPriority: 0 |
||||
grayScaleToAlpha: 0 |
||||
generateCubemap: 6 |
||||
cubemapConvolution: 0 |
||||
seamlessCubemap: 0 |
||||
textureFormat: 1 |
||||
maxTextureSize: 2048 |
||||
textureSettings: |
||||
serializedVersion: 2 |
||||
filterMode: -1 |
||||
aniso: -1 |
||||
mipBias: -100 |
||||
wrapU: 1 |
||||
wrapV: 1 |
||||
wrapW: -1 |
||||
nPOTScale: 0 |
||||
lightmap: 0 |
||||
compressionQuality: 50 |
||||
spriteMode: 1 |
||||
spriteExtrude: 1 |
||||
spriteMeshType: 1 |
||||
alignment: 0 |
||||
spritePivot: {x: 0.5, y: 0.5} |
||||
spritePixelsToUnits: 100 |
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
||||
spriteGenerateFallbackPhysicsShape: 1 |
||||
alphaUsage: 1 |
||||
alphaIsTransparency: 1 |
||||
spriteTessellationDetail: -1 |
||||
textureType: 8 |
||||
textureShape: 1 |
||||
singleChannelComponent: 0 |
||||
maxTextureSizeSet: 0 |
||||
compressionQualitySet: 0 |
||||
textureFormatSet: 0 |
||||
platformSettings: |
||||
- serializedVersion: 2 |
||||
buildTarget: DefaultTexturePlatform |
||||
maxTextureSize: 2048 |
||||
resizeAlgorithm: 0 |
||||
textureFormat: -1 |
||||
textureCompression: 1 |
||||
compressionQuality: 50 |
||||
crunchedCompression: 0 |
||||
allowsAlphaSplitting: 0 |
||||
overridden: 0 |
||||
androidETC2FallbackOverride: 0 |
||||
- serializedVersion: 2 |
||||
buildTarget: Standalone |
||||
maxTextureSize: 2048 |
||||
resizeAlgorithm: 0 |
||||
textureFormat: -1 |
||||
textureCompression: 1 |
||||
compressionQuality: 50 |
||||
crunchedCompression: 0 |
||||
allowsAlphaSplitting: 0 |
||||
overridden: 0 |
||||
androidETC2FallbackOverride: 0 |
||||
- serializedVersion: 2 |
||||
buildTarget: iPhone |
||||
maxTextureSize: 2048 |
||||
resizeAlgorithm: 0 |
||||
textureFormat: -1 |
||||
textureCompression: 1 |
||||
compressionQuality: 50 |
||||
crunchedCompression: 0 |
||||
allowsAlphaSplitting: 0 |
||||
overridden: 0 |
||||
androidETC2FallbackOverride: 0 |
||||
- serializedVersion: 2 |
||||
buildTarget: Android |
||||
maxTextureSize: 2048 |
||||
resizeAlgorithm: 0 |
||||
textureFormat: -1 |
||||
textureCompression: 1 |
||||
compressionQuality: 50 |
||||
crunchedCompression: 0 |
||||
allowsAlphaSplitting: 0 |
||||
overridden: 0 |
||||
androidETC2FallbackOverride: 0 |
||||
- serializedVersion: 2 |
||||
buildTarget: WebGL |
||||
maxTextureSize: 2048 |
||||
resizeAlgorithm: 0 |
||||
textureFormat: -1 |
||||
textureCompression: 1 |
||||
compressionQuality: 50 |
||||
crunchedCompression: 0 |
||||
allowsAlphaSplitting: 0 |
||||
overridden: 0 |
||||
androidETC2FallbackOverride: 0 |
||||
spriteSheet: |
||||
serializedVersion: 2 |
||||
sprites: [] |
||||
outline: [] |
||||
physicsShape: [] |
||||
bones: [] |
||||
spriteID: |
||||
vertices: [] |
||||
indices: |
||||
edges: [] |
||||
weights: [] |
||||
spritePackingTag: |
||||
pSDRemoveMatte: 0 |
||||
pSDShowRemoveMatteOption: 0 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 4a5338f45e3c01045953ea095ec264fb |
||||
folderAsset: yes |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,76 @@
@@ -0,0 +1,76 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!21 &2100000 |
||||
Material: |
||||
serializedVersion: 6 |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_Name: Board |
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
||||
m_ShaderKeywords: ETC1_EXTERNAL_ALPHA |
||||
m_LightmapFlags: 4 |
||||
m_EnableInstancingVariants: 0 |
||||
m_DoubleSidedGI: 0 |
||||
m_CustomRenderQueue: -1 |
||||
stringTagMap: {} |
||||
disabledShaderPasses: [] |
||||
m_SavedProperties: |
||||
serializedVersion: 3 |
||||
m_TexEnvs: |
||||
- _BumpMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailAlbedoMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailMask: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailNormalMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _EmissionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MainTex: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MetallicGlossMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _OcclusionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _ParallaxMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
m_Floats: |
||||
- _BumpScale: 1 |
||||
- _Cutoff: 0.5 |
||||
- _DetailNormalMapScale: 1 |
||||
- _DstBlend: 0 |
||||
- _GlossMapScale: 1 |
||||
- _Glossiness: 0.5 |
||||
- _GlossyReflections: 1 |
||||
- _Metallic: 0 |
||||
- _Mode: 0 |
||||
- _OcclusionStrength: 1 |
||||
- _Parallax: 0.02 |
||||
- _SmoothnessTextureChannel: 0 |
||||
- _SpecularHighlights: 1 |
||||
- _SrcBlend: 1 |
||||
- _UVSec: 0 |
||||
- _ZWrite: 1 |
||||
m_Colors: |
||||
- _Color: {r: 0.10453009, g: 0.22444806, b: 0.2735849, a: 1} |
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 7ac2528e2ab2cbc448770b550ca6829b |
||||
NativeFormatImporter: |
||||
externalObjects: {} |
||||
mainObjectFileID: 2100000 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,91 @@
@@ -0,0 +1,91 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!21 &2100000 |
||||
Material: |
||||
serializedVersion: 6 |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_Name: Glass |
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
||||
m_ShaderKeywords: _ALPHABLEND_ON |
||||
m_LightmapFlags: 4 |
||||
m_EnableInstancingVariants: 0 |
||||
m_DoubleSidedGI: 0 |
||||
m_CustomRenderQueue: 3000 |
||||
stringTagMap: |
||||
RenderType: Transparent |
||||
disabledShaderPasses: [] |
||||
m_SavedProperties: |
||||
serializedVersion: 3 |
||||
m_TexEnvs: |
||||
- _BumpMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailAlbedoMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailMask: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailNormalMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailTex: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _EmissionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MainTex: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MetallicGlossMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _OcclusionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _ParallaxMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
m_Floats: |
||||
- _BumpScale: 1 |
||||
- _ColorMask: 15 |
||||
- _Cull: 2 |
||||
- _Cutoff: 0.5 |
||||
- _DetailNormalMapScale: 1 |
||||
- _DstBlend: 10 |
||||
- _GlossMapScale: 1 |
||||
- _Glossiness: 0.5 |
||||
- _GlossyReflections: 1 |
||||
- _Metallic: 0 |
||||
- _Mode: 2 |
||||
- _OcclusionStrength: 1 |
||||
- _Parallax: 0.02 |
||||
- _SmoothnessTextureChannel: 0 |
||||
- _SpecularHighlights: 1 |
||||
- _SrcBlend: 5 |
||||
- _Stencil: 0 |
||||
- _StencilComp: 8 |
||||
- _StencilOp: 0 |
||||
- _StencilReadMask: 255 |
||||
- _StencilWriteMask: 255 |
||||
- _UVSec: 0 |
||||
- _UseUIAlphaClip: 0 |
||||
- _WindQuality: 0 |
||||
- _ZWrite: 0 |
||||
m_Colors: |
||||
- _Color: {r: 0, g: 0, b: 0, a: 0.56078434} |
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
||||
- _HueVariation: {r: 1, g: 0.5, b: 0, a: 0.1} |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: c2285cc0075b0904aba11a440b710662 |
||||
NativeFormatImporter: |
||||
externalObjects: {} |
||||
mainObjectFileID: 2100000 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 41e166d3169236b409ca34a675a4580e |
||||
folderAsset: yes |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,76 @@
@@ -0,0 +1,76 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!21 &2100000 |
||||
Material: |
||||
serializedVersion: 6 |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_Name: Blue |
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
||||
m_ShaderKeywords: |
||||
m_LightmapFlags: 4 |
||||
m_EnableInstancingVariants: 0 |
||||
m_DoubleSidedGI: 0 |
||||
m_CustomRenderQueue: -1 |
||||
stringTagMap: {} |
||||
disabledShaderPasses: [] |
||||
m_SavedProperties: |
||||
serializedVersion: 3 |
||||
m_TexEnvs: |
||||
- _BumpMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailAlbedoMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailMask: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailNormalMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _EmissionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MainTex: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MetallicGlossMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _OcclusionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _ParallaxMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
m_Floats: |
||||
- _BumpScale: 1 |
||||
- _Cutoff: 0.5 |
||||
- _DetailNormalMapScale: 1 |
||||
- _DstBlend: 0 |
||||
- _GlossMapScale: 1 |
||||
- _Glossiness: 0.5 |
||||
- _GlossyReflections: 1 |
||||
- _Metallic: 0 |
||||
- _Mode: 0 |
||||
- _OcclusionStrength: 1 |
||||
- _Parallax: 0.02 |
||||
- _SmoothnessTextureChannel: 0 |
||||
- _SpecularHighlights: 1 |
||||
- _SrcBlend: 1 |
||||
- _UVSec: 0 |
||||
- _ZWrite: 1 |
||||
m_Colors: |
||||
- _Color: {r: 0, g: 0.4501295, b: 1, a: 1} |
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 53a4b9ea828981c47ae982569172aeaa |
||||
NativeFormatImporter: |
||||
externalObjects: {} |
||||
mainObjectFileID: 2100000 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,76 @@
@@ -0,0 +1,76 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!21 &2100000 |
||||
Material: |
||||
serializedVersion: 6 |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_Name: Red |
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
||||
m_ShaderKeywords: |
||||
m_LightmapFlags: 4 |
||||
m_EnableInstancingVariants: 0 |
||||
m_DoubleSidedGI: 0 |
||||
m_CustomRenderQueue: -1 |
||||
stringTagMap: {} |
||||
disabledShaderPasses: [] |
||||
m_SavedProperties: |
||||
serializedVersion: 3 |
||||
m_TexEnvs: |
||||
- _BumpMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailAlbedoMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailMask: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailNormalMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _EmissionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MainTex: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MetallicGlossMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _OcclusionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _ParallaxMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
m_Floats: |
||||
- _BumpScale: 1 |
||||
- _Cutoff: 0.5 |
||||
- _DetailNormalMapScale: 1 |
||||
- _DstBlend: 0 |
||||
- _GlossMapScale: 1 |
||||
- _Glossiness: 0.5 |
||||
- _GlossyReflections: 1 |
||||
- _Metallic: 0 |
||||
- _Mode: 0 |
||||
- _OcclusionStrength: 1 |
||||
- _Parallax: 0.02 |
||||
- _SmoothnessTextureChannel: 0 |
||||
- _SpecularHighlights: 1 |
||||
- _SrcBlend: 1 |
||||
- _UVSec: 0 |
||||
- _ZWrite: 1 |
||||
m_Colors: |
||||
- _Color: {r: 1, g: 0, b: 0, a: 1} |
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: d376e4ccf8c9f2d428eb6fdf8f230718 |
||||
NativeFormatImporter: |
||||
externalObjects: {} |
||||
mainObjectFileID: 2100000 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 0a67c1ebde2f701419ee342a29497f7d |
||||
folderAsset: yes |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,83 @@
@@ -0,0 +1,83 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!21 &2100000 |
||||
Material: |
||||
serializedVersion: 6 |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_Name: A |
||||
m_Shader: {fileID: 4800000, guid: e0c25f1fbc629ff47b927ff8b39d3abc, type: 3} |
||||
m_ShaderKeywords: |
||||
m_LightmapFlags: 4 |
||||
m_EnableInstancingVariants: 0 |
||||
m_DoubleSidedGI: 0 |
||||
m_CustomRenderQueue: -1 |
||||
stringTagMap: {} |
||||
disabledShaderPasses: [] |
||||
m_SavedProperties: |
||||
serializedVersion: 3 |
||||
m_TexEnvs: |
||||
- _BumpMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailAlbedoMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailMask: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailNormalMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _EmissionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MainTex: |
||||
m_Texture: {fileID: 10300, guid: 0000000000000000f000000000000000, type: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MetallicGlossMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _OcclusionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _ParallaxMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _Tex: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
m_Floats: |
||||
- _BumpScale: 1 |
||||
- _Cutoff: 0.5 |
||||
- _DetailNormalMapScale: 1 |
||||
- _DstBlend: 0 |
||||
- _Exposure: 1 |
||||
- _GlossMapScale: 1 |
||||
- _Glossiness: 0.5 |
||||
- _GlossyReflections: 1 |
||||
- _Metallic: 0 |
||||
- _Mode: 0 |
||||
- _OcclusionStrength: 1 |
||||
- _Parallax: 0.02 |
||||
- _Rotation: 0 |
||||
- _SmoothnessTextureChannel: 0 |
||||
- _SpecularHighlights: 1 |
||||
- _SrcBlend: 1 |
||||
- _UVSec: 0 |
||||
- _ZWrite: 1 |
||||
m_Colors: |
||||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
||||
- _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 4ea7f207cbf55df48a060d452f3e9853 |
||||
NativeFormatImporter: |
||||
externalObjects: {} |
||||
mainObjectFileID: 2100000 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,76 @@
@@ -0,0 +1,76 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!21 &2100000 |
||||
Material: |
||||
serializedVersion: 6 |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_Name: Sprite |
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
||||
m_ShaderKeywords: ETC1_EXTERNAL_ALPHA |
||||
m_LightmapFlags: 4 |
||||
m_EnableInstancingVariants: 0 |
||||
m_DoubleSidedGI: 0 |
||||
m_CustomRenderQueue: -1 |
||||
stringTagMap: {} |
||||
disabledShaderPasses: [] |
||||
m_SavedProperties: |
||||
serializedVersion: 3 |
||||
m_TexEnvs: |
||||
- _BumpMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailAlbedoMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailMask: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailNormalMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _EmissionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MainTex: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MetallicGlossMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _OcclusionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _ParallaxMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
m_Floats: |
||||
- _BumpScale: 1 |
||||
- _Cutoff: 0.5 |
||||
- _DetailNormalMapScale: 1 |
||||
- _DstBlend: 0 |
||||
- _GlossMapScale: 1 |
||||
- _Glossiness: 0.5 |
||||
- _GlossyReflections: 1 |
||||
- _Metallic: 0 |
||||
- _Mode: 0 |
||||
- _OcclusionStrength: 1 |
||||
- _Parallax: 0.02 |
||||
- _SmoothnessTextureChannel: 0 |
||||
- _SpecularHighlights: 1 |
||||
- _SrcBlend: 1 |
||||
- _UVSec: 0 |
||||
- _ZWrite: 1 |
||||
m_Colors: |
||||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 264a8026f6825c042944cf8bdf356431 |
||||
NativeFormatImporter: |
||||
externalObjects: {} |
||||
mainObjectFileID: 2100000 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,76 @@
@@ -0,0 +1,76 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!21 &2100000 |
||||
Material: |
||||
serializedVersion: 6 |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_Name: foot |
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
||||
m_ShaderKeywords: |
||||
m_LightmapFlags: 4 |
||||
m_EnableInstancingVariants: 0 |
||||
m_DoubleSidedGI: 0 |
||||
m_CustomRenderQueue: -1 |
||||
stringTagMap: {} |
||||
disabledShaderPasses: [] |
||||
m_SavedProperties: |
||||
serializedVersion: 3 |
||||
m_TexEnvs: |
||||
- _BumpMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailAlbedoMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailMask: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailNormalMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _EmissionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MainTex: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MetallicGlossMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _OcclusionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _ParallaxMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
m_Floats: |
||||
- _BumpScale: 1 |
||||
- _Cutoff: 0.5 |
||||
- _DetailNormalMapScale: 1 |
||||
- _DstBlend: 0 |
||||
- _GlossMapScale: 1 |
||||
- _Glossiness: 0.5 |
||||
- _GlossyReflections: 1 |
||||
- _Metallic: 0 |
||||
- _Mode: 0 |
||||
- _OcclusionStrength: 1 |
||||
- _Parallax: 0.02 |
||||
- _SmoothnessTextureChannel: 0 |
||||
- _SpecularHighlights: 1 |
||||
- _SrcBlend: 1 |
||||
- _UVSec: 0 |
||||
- _ZWrite: 1 |
||||
m_Colors: |
||||
- _Color: {r: 0, g: 0, b: 0, a: 1} |
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 42707bafbb4dc6d41b3fac8302bac345 |
||||
NativeFormatImporter: |
||||
externalObjects: {} |
||||
mainObjectFileID: 2100000 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,76 @@
@@ -0,0 +1,76 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!21 &2100000 |
||||
Material: |
||||
serializedVersion: 6 |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_Name: line |
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
||||
m_ShaderKeywords: ETC1_EXTERNAL_ALPHA |
||||
m_LightmapFlags: 4 |
||||
m_EnableInstancingVariants: 0 |
||||
m_DoubleSidedGI: 0 |
||||
m_CustomRenderQueue: -1 |
||||
stringTagMap: {} |
||||
disabledShaderPasses: [] |
||||
m_SavedProperties: |
||||
serializedVersion: 3 |
||||
m_TexEnvs: |
||||
- _BumpMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailAlbedoMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailMask: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailNormalMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _EmissionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MainTex: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MetallicGlossMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _OcclusionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _ParallaxMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
m_Floats: |
||||
- _BumpScale: 1 |
||||
- _Cutoff: 0.5 |
||||
- _DetailNormalMapScale: 1 |
||||
- _DstBlend: 0 |
||||
- _GlossMapScale: 1 |
||||
- _Glossiness: 0.5 |
||||
- _GlossyReflections: 1 |
||||
- _Metallic: 1 |
||||
- _Mode: 0 |
||||
- _OcclusionStrength: 1 |
||||
- _Parallax: 0.02 |
||||
- _SmoothnessTextureChannel: 0 |
||||
- _SpecularHighlights: 1 |
||||
- _SrcBlend: 1 |
||||
- _UVSec: 0 |
||||
- _ZWrite: 1 |
||||
m_Colors: |
||||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: d96bb49ec14ffd14bb392fee0e91a9e1 |
||||
NativeFormatImporter: |
||||
externalObjects: {} |
||||
mainObjectFileID: 2100000 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,76 @@
@@ -0,0 +1,76 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!21 &2100000 |
||||
Material: |
||||
serializedVersion: 6 |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInternal: {fileID: 0} |
||||
m_Name: tabel |
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
||||
m_ShaderKeywords: ETC1_EXTERNAL_ALPHA |
||||
m_LightmapFlags: 4 |
||||
m_EnableInstancingVariants: 0 |
||||
m_DoubleSidedGI: 0 |
||||
m_CustomRenderQueue: -1 |
||||
stringTagMap: {} |
||||
disabledShaderPasses: [] |
||||
m_SavedProperties: |
||||
serializedVersion: 3 |
||||
m_TexEnvs: |
||||
- _BumpMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailAlbedoMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailMask: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _DetailNormalMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _EmissionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MainTex: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _MetallicGlossMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _OcclusionMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
- _ParallaxMap: |
||||
m_Texture: {fileID: 0} |
||||
m_Scale: {x: 1, y: 1} |
||||
m_Offset: {x: 0, y: 0} |
||||
m_Floats: |
||||
- _BumpScale: 1 |
||||
- _Cutoff: 0.5 |
||||
- _DetailNormalMapScale: 1 |
||||
- _DstBlend: 0 |
||||
- _GlossMapScale: 1 |
||||
- _Glossiness: 0 |
||||
- _GlossyReflections: 1 |
||||
- _Metallic: 0 |
||||
- _Mode: 0 |
||||
- _OcclusionStrength: 1 |
||||
- _Parallax: 0.02 |
||||
- _SmoothnessTextureChannel: 0 |
||||
- _SpecularHighlights: 1 |
||||
- _SrcBlend: 1 |
||||
- _UVSec: 0 |
||||
- _ZWrite: 1 |
||||
m_Colors: |
||||
- _Color: {r: 0.6132076, g: 0.6132076, b: 0.6132076, a: 1} |
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: c33099cc9d2e28d4eab41f33d757fcf6 |
||||
NativeFormatImporter: |
||||
externalObjects: {} |
||||
mainObjectFileID: 2100000 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: c01f48914451ee7458b09edbd7adfcc8 |
||||
folderAsset: yes |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: df19c0c43899ea8449a5ccf9547a584a |
||||
folderAsset: yes |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
//MPU9250陀螺仪模块实体类 |
||||
public class MPU9250Data{ |
||||
public double Temperature { set; get; } |
||||
public double GyroX { set; get; } |
||||
public double GyroY { set; get; } |
||||
public double GyroZ { set; get; } |
||||
public double AccelX { set; get; } |
||||
public double AccelY { set; get; } |
||||
public double AccelZ { set; get; } |
||||
public double MagneticX { set; get; } |
||||
public double MagneticY { set; get; } |
||||
public double MagneticZ { set; get; } |
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2 |
||||
guid: d556d41ba0ef18b47a58a4e031689dfa |
||||
MonoImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
defaultReferences: [] |
||||
executionOrder: 0 |
||||
icon: {instanceID: 0} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
//MPU9250加速计实体类 |
||||
public class MPUAccelData |
||||
{ |
||||
public double AccelX { set; get; } |
||||
public double AccelY { set; get; } |
||||
public double AccelZ { set; get; } |
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 80437c579ec444c4a83c83d2853116b6 |
||||
MonoImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
defaultReferences: [] |
||||
executionOrder: 0 |
||||
icon: {instanceID: 0} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
//MPU6050陀螺仪模块实体类 |
||||
public class MPUData { |
||||
public double GyroX { set; get; } |
||||
public double GyroY { set; get; } |
||||
public double GyroZ { set; get; } |
||||
public double Temperature { set; get; } |
||||
public double AccelX { set; get; } |
||||
public double AccelY { set; get; } |
||||
public double AccelZ { set; get; } |
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 5e373d86f7d3a54498d6bd90ba37f387 |
||||
MonoImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
defaultReferences: [] |
||||
executionOrder: 0 |
||||
icon: {instanceID: 0} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
//MPU6050姿态融合算法融合后欧拉角 |
||||
public class MPUEulerAnglesData{ |
||||
public double Pitch { set; get; } |
||||
public double Roll { set; get; } |
||||
public double Yaw { set; get; } |
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2 |
||||
guid: f1fadca1ecc93b1468c8842b58c1760d |
||||
MonoImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
defaultReferences: [] |
||||
executionOrder: 0 |
||||
icon: {instanceID: 0} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
//MPU9250磁力计实体类 |
||||
public class MPUMagneticData |
||||
{ |
||||
public double MagneticX { set; get; } |
||||
public double MagneticY { set; get; } |
||||
public double MagneticZ { set; get; } |
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2 |
||||
guid: b78a2409e7493be4fa36160bd98233df |
||||
MonoImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
defaultReferences: [] |
||||
executionOrder: 0 |
||||
icon: {instanceID: 0} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
//MPU6050姿态融合算法融合后四元数 |
||||
public class MPUQuaternion { |
||||
public double q0 { set; get; } |
||||
public double q1 { set; get; } |
||||
public double q2 { set; get; } |
||||
public double q3 { set; get; } |
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2 |
||||
guid: fad13b14dc7f9bf4289e29e25d65d1f8 |
||||
MonoImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
defaultReferences: [] |
||||
executionOrder: 0 |
||||
icon: {instanceID: 0} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,101 @@
@@ -0,0 +1,101 @@
|
||||
using System; |
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using System.IO.Ports; |
||||
using System.Threading; |
||||
using UnityEngine; |
||||
using LitJson; |
||||
|
||||
public class MyUnitySerialPort : MonoBehaviour { |
||||
private SerialPort serialPort; |
||||
private Thread readPortData; |
||||
//public List<byte> listReceive = new List<byte>(); |
||||
public string jsonData = ""; |
||||
public Transform MpuBoardTrans; |
||||
|
||||
|
||||
// Use this for initialization |
||||
void Start () { |
||||
//Application.targetFrameRate = 120; |
||||
try |
||||
{ |
||||
serialPort = new SerialPort("COM4", 115200); |
||||
serialPort.ReadTimeout = 500; |
||||
if (!serialPort.IsOpen) |
||||
{ |
||||
serialPort.Open(); |
||||
} |
||||
readPortData = new Thread(new ThreadStart(readData)); |
||||
readPortData.IsBackground = true; |
||||
readPortData.Start(); |
||||
} |
||||
catch (Exception) |
||||
{ |
||||
throw; |
||||
} |
||||
} |
||||
|
||||
// Update is called once per frame |
||||
void Update () { |
||||
if (jsonData != "") { |
||||
MPUQuaternion mpudata_ = JsonMapper.ToObject<MPUQuaternion>(jsonData); |
||||
MpuBoardTrans.transform.localEulerAngles = TransQuaternionToEularAngles((float)mpudata_.q0, (float)mpudata_.q1, (float)mpudata_.q2, (float)mpudata_.q3); |
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//结束后关闭串口 |
||||
private void OnDestroy() |
||||
{ |
||||
if (serialPort.IsOpen) |
||||
serialPort.Close(); |
||||
readPortData.Abort(); |
||||
} |
||||
|
||||
//弧度转角度 |
||||
private float TransRadToAngle(double rad) |
||||
{ |
||||
//return -(float)rad * 180 / Mathf.PI; |
||||
return (float)rad * 90; |
||||
} |
||||
//Double转Float |
||||
private float TransDoubleToFloat(double angle) |
||||
{ |
||||
//return -(float)rad * 180 / Mathf.PI; |
||||
return (float)angle; |
||||
} |
||||
/// <summary> |
||||
/// 读取数据 |
||||
/// </summary> |
||||
private void readData() |
||||
{ |
||||
try |
||||
{ |
||||
while (serialPort != null && serialPort.IsOpen) |
||||
{ |
||||
byte addr = Convert.ToByte(serialPort.ReadByte()); |
||||
serialPort.DiscardInBuffer(); |
||||
//listReceive.Add(addr); |
||||
//print("{"+serialPort.ReadLine()); |
||||
jsonData = "{" + serialPort.ReadLine(); |
||||
} |
||||
} |
||||
catch (Exception) |
||||
{ |
||||
throw; |
||||
} |
||||
} |
||||
|
||||
//将四元数转换为欧拉角(pitch,yaw取负数的情况) |
||||
public Vector3 TransQuaternionToEularAngles(float q0, float q1, float q2, float q3) |
||||
{ |
||||
float pitch = -Mathf.Asin(-2 * q1 * q3 + 2 * q0 * q2) * 57.3f; |
||||
float roll = Mathf.Atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2 * q2 + 1) * 57.3f; |
||||
float yaw = -Mathf.Atan2(2 * (q1 * q2 + q0 * q3), q0 * q0 + q1 * q1 - q2 * q2 - q3 * q3) * 57.3f; |
||||
Vector3 eularAngles = new Vector3(pitch, yaw, roll); |
||||
return eularAngles; |
||||
} |
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 124ab28672a6a104cab21f951dbdcc9c |
||||
MonoImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
defaultReferences: [] |
||||
executionOrder: 0 |
||||
icon: {instanceID: 0} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2 |
||||
guid: f069669f196b83645a25c2fc7e3266fc |
||||
folderAsset: yes |
||||
DefaultImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,107 @@
@@ -0,0 +1,107 @@
|
||||
using System; |
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using System.IO.Ports; |
||||
using System.Threading; |
||||
using UnityEngine; |
||||
using LitJson; |
||||
using AHRS; |
||||
|
||||
public class My9AxisSerialPort : MonoBehaviour { |
||||
private SerialPort serialPort; |
||||
private Thread readPortData; |
||||
//public List<byte> listReceive = new List<byte>(); |
||||
public string jsonData = ""; |
||||
public Transform MpuBoardTrans; |
||||
private MahonyAHRS ahrsObj = new MahonyAHRS(0.016f); |
||||
|
||||
|
||||
// Use this for initialization |
||||
void Start() |
||||
{ |
||||
//Application.targetFrameRate = 120; |
||||
try |
||||
{ |
||||
serialPort = new SerialPort("COM4", 115200); |
||||
serialPort.ReadTimeout = 500; |
||||
if (!serialPort.IsOpen) |
||||
{ |
||||
serialPort.Open(); |
||||
} |
||||
readPortData = new Thread(new ThreadStart(readData)); |
||||
readPortData.IsBackground = true; |
||||
readPortData.Start(); |
||||
} |
||||
catch (Exception) |
||||
{ |
||||
throw; |
||||
} |
||||
} |
||||
|
||||
// Update is called once per frame |
||||
void Update() |
||||
{ |
||||
if (jsonData != "") |
||||
{ |
||||
MPU9250Data mpudata_ = JsonMapper.ToObject<MPU9250Data>(jsonData); |
||||
ahrsObj.Update((float)mpudata_.GyroX, (float)mpudata_.GyroY, (float)mpudata_.GyroZ, (float)mpudata_.AccelX, (float)mpudata_.AccelY, (float)mpudata_.AccelZ, (float)mpudata_.MagneticX, (float)mpudata_.MagneticY, (float)mpudata_.MagneticZ); |
||||
MpuBoardTrans.transform.localEulerAngles = TransQuaternionToEularAngles(ahrsObj.Quaternion[0], ahrsObj.Quaternion[1], ahrsObj.Quaternion[2], ahrsObj.Quaternion[3]); |
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//结束后关闭串口 |
||||
private void OnDestroy() |
||||
{ |
||||
if (serialPort.IsOpen) |
||||
serialPort.Close(); |
||||
readPortData.Abort(); |
||||
} |
||||
|
||||
//弧度转角度 |
||||
private float TransRadToAngle(double rad) |
||||
{ |
||||
//return -(float)rad * 180 / Mathf.PI; |
||||
return (float)rad * 90; |
||||
} |
||||
//Double转Float |
||||
private float TransDoubleToFloat(double angle) |
||||
{ |
||||
//return -(float)rad * 180 / Mathf.PI; |
||||
return (float)angle; |
||||
} |
||||
/// <summary> |
||||
/// 读取数据 |
||||
/// </summary> |
||||
private void readData() |
||||
{ |
||||
try |
||||
{ |
||||
while (serialPort != null && serialPort.IsOpen) |
||||
{ |
||||
byte addr = Convert.ToByte(serialPort.ReadByte()); |
||||
serialPort.DiscardInBuffer(); |
||||
//listReceive.Add(addr); |
||||
//print("{"+serialPort.ReadLine()); |
||||
jsonData = "{" + serialPort.ReadLine(); |
||||
} |
||||
} |
||||
catch (Exception) |
||||
{ |
||||
throw; |
||||
} |
||||
} |
||||
|
||||
//将四元数转换为欧拉角(pitch,yaw取负数的情况) |
||||
public Vector3 TransQuaternionToEularAngles(float q0, float q1, float q2, float q3) |
||||
{ |
||||
float pitch = -Mathf.Asin(-2 * q1 * q3 + 2 * q0 * q2) * 57.3f; |
||||
float roll = Mathf.Atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2 * q2 + 1) * 57.3f; |
||||
float yaw = -Mathf.Atan2(2 * (q1 * q2 + q0 * q3), q0 * q0 + q1 * q1 - q2 * q2 - q3 * q3) * 57.3f; |
||||
Vector3 eularAngles = new Vector3(pitch, yaw, roll); |
||||
return eularAngles; |
||||
} |
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2 |
||||
guid: ab7d50adce3c662469fbc3ea36ba0b1a |
||||
MonoImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
defaultReferences: [] |
||||
executionOrder: 0 |
||||
icon: {instanceID: 0} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,100 @@
@@ -0,0 +1,100 @@
|
||||
using System; |
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using System.IO.Ports; |
||||
using System.Threading; |
||||
using UnityEngine; |
||||
using LitJson; |
||||
|
||||
public class MyAccelSerialPort : MonoBehaviour |
||||
{ |
||||
private SerialPort serialPort; |
||||
private Thread readPortData; |
||||
//public List<byte> listReceive = new List<byte>(); |
||||
public string jsonData = ""; |
||||
//根据受力情况设置小球的位置 |
||||
public Transform AccelBall; |
||||
|
||||
|
||||
// Use this for initialization |
||||
void Start() |
||||
{ |
||||
//Application.targetFrameRate = 120; |
||||
try |
||||
{ |
||||
serialPort = new SerialPort("COM4", 115200); |
||||
serialPort.ReadTimeout = 500; |
||||
if (!serialPort.IsOpen) |
||||
{ |
||||
serialPort.Open(); |
||||
} |
||||
readPortData = new Thread(new ThreadStart(readData)); |
||||
readPortData.IsBackground = true; |
||||
readPortData.Start(); |
||||
} |
||||
catch (Exception) |
||||
{ |
||||
throw; |
||||
} |
||||
} |
||||
|
||||
// Update is called once per frame |
||||
void Update() |
||||
{ |
||||
if (jsonData != "") |
||||
{ |
||||
MPUAccelData mpudata_ = JsonMapper.ToObject<MPUAccelData>(jsonData); |
||||
AccelBall.localPosition = new Vector3((float)mpudata_.AccelX/2, (float)mpudata_.AccelY/2 - 2.3f, (float)mpudata_.AccelZ/2 + 1.2f); |
||||
//Debug.LogWarning("Temperature = " + mpudata_.Temperature); |
||||
//print("x=" + mpudata_.GyroX + "||y=" + mpudata_.GyroY + "||z=" + mpudata_.GyroZ + "____Ax=" + mpudata_.AccelX + "||Ay=" + mpudata_.AccelY + "||Az=" + mpudata_.AccelZ + "-----" + Time.deltaTime); |
||||
//MpuBoardTrans.transform.localPosition += new Vector3(speedX/1000, 0, 0); |
||||
//print("speed="+speedY); |
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//结束后关闭串口 |
||||
private void OnDestroy() |
||||
{ |
||||
if (serialPort.IsOpen) |
||||
serialPort.Close(); |
||||
readPortData.Abort(); |
||||
} |
||||
|
||||
//弧度转角度 |
||||
private float TransRadToAngle(double rad) |
||||
{ |
||||
//return -(float)rad * 180 / Mathf.PI; |
||||
return (float)rad * 90; |
||||
} |
||||
/// <summary> |
||||
/// 读取数据 |
||||
/// </summary> |
||||
private void readData() |
||||
{ |
||||
try |
||||
{ |
||||
while (serialPort != null && serialPort.IsOpen) |
||||
{ |
||||
byte addr = Convert.ToByte(serialPort.ReadByte()); |
||||
serialPort.DiscardInBuffer(); |
||||
//listReceive.Add(addr); |
||||
//print("{"+serialPort.ReadLine()); |
||||
jsonData = "{" + serialPort.ReadLine(); |
||||
} |
||||
} |
||||
catch (Exception) |
||||
{ |
||||
throw; |
||||
} |
||||
} |
||||
|
||||
|
||||
private void caculateSpeed(float accelSpeed) |
||||
{ |
||||
|
||||
} |
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2 |
||||
guid: a0061e86cc4079144b3748956df78ad9 |
||||
MonoImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
defaultReferences: [] |
||||
executionOrder: 0 |
||||
icon: {instanceID: 0} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,16 @@
@@ -0,0 +1,16 @@
|
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using UnityEngine; |
||||
|
||||
public class MyAngleSerialPort : MonoBehaviour { |
||||
|
||||
// Use this for initialization |
||||
void Start () { |
||||
|
||||
} |
||||
|
||||
// Update is called once per frame |
||||
void Update () { |
||||
|
||||
} |
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 4a0ac8ac7b846b04c820bc886a63fe18 |
||||
MonoImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
defaultReferences: [] |
||||
executionOrder: 0 |
||||
icon: {instanceID: 0} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,101 @@
@@ -0,0 +1,101 @@
|
||||
using System; |
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using System.IO.Ports; |
||||
using System.Threading; |
||||
using UnityEngine; |
||||
using LitJson; |
||||
|
||||
public class MyMagneticSerialPort : MonoBehaviour |
||||
{ |
||||
private SerialPort serialPort; |
||||
private Thread readPortData; |
||||
//public List<byte> listReceive = new List<byte>(); |
||||
public string jsonData = ""; |
||||
//根据磁场数据反射磁场针转向 |
||||
public Transform MagneticNeedle; |
||||
|
||||
|
||||
// Use this for initialization |
||||
void Start() |
||||
{ |
||||
//Application.targetFrameRate = 120; |
||||
try |
||||
{ |
||||
serialPort = new SerialPort("COM4", 115200); |
||||
serialPort.ReadTimeout = 500; |
||||
if (!serialPort.IsOpen) |
||||
{ |
||||
serialPort.Open(); |
||||
} |
||||
readPortData = new Thread(new ThreadStart(readData)); |
||||
readPortData.IsBackground = true; |
||||
readPortData.Start(); |
||||
} |
||||
catch (Exception) |
||||
{ |
||||
throw; |
||||
} |
||||
} |
||||
|
||||
// Update is called once per frame |
||||
void Update() |
||||
{ |
||||
if (jsonData != "") |
||||
{ |
||||
MPUMagneticData mpudata_ = JsonMapper.ToObject<MPUMagneticData>(jsonData); |
||||
MagneticNeedle.localEulerAngles = new Vector3(((float)mpudata_.MagneticX-5)*4, ((float)mpudata_.MagneticY-67)*4, ((float)mpudata_.MagneticZ - 5) * 4); |
||||
//Debug.LogWarning("Temperature = " + mpudata_.Temperature); |
||||
//print("x=" + mpudata_.GyroX + "||y=" + mpudata_.GyroY + "||z=" + mpudata_.GyroZ + "____Ax=" + mpudata_.AccelX + "||Ay=" + mpudata_.AccelY + "||Az=" + mpudata_.AccelZ + "-----" + Time.deltaTime); |
||||
//MpuBoardTrans.transform.localPosition += new Vector3(speedX/1000, 0, 0); |
||||
//print("speed="+speedY); |
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//结束后关闭串口 |
||||
private void OnDestroy() |
||||
{ |
||||
if (serialPort.IsOpen) |
||||
serialPort.Close(); |
||||
readPortData.Abort(); |
||||
} |
||||
|
||||
//弧度转角度 |
||||
private float TransRadToAngle(double rad) |
||||
{ |
||||
//return -(float)rad * 180 / Mathf.PI; |
||||
return (float)rad * 90; |
||||
} |
||||
/// <summary> |
||||
/// 读取数据 |
||||
/// </summary> |
||||
private void readData() |
||||
{ |
||||
try |
||||
{ |
||||
while (serialPort != null && serialPort.IsOpen) |
||||
{ |
||||
byte addr = Convert.ToByte(serialPort.ReadByte()); |
||||
serialPort.DiscardInBuffer(); |
||||
//listReceive.Add(addr); |
||||
//print("{"+serialPort.ReadLine()); |
||||
jsonData = "{" + serialPort.ReadLine(); |
||||
} |
||||
} |
||||
catch (Exception) |
||||
{ |
||||
throw; |
||||
} |
||||
} |
||||
|
||||
|
||||
private void caculateSpeed(float accelSpeed) |
||||
{ |
||||
|
||||
} |
||||
} |
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue