forked from cgvr/DeltaVR
Compare commits
130 Commits
34a23ab94d
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| 48b9f12802 | |||
| ad6954884b | |||
| 4292750b65 | |||
| b3073e66df | |||
| afb8af4ee2 | |||
| 16a621c2b9 | |||
| 40cd5060df | |||
| cb4d4036e7 | |||
| 96839e0e82 | |||
| 33a40c987a | |||
| 1cd97e4d0a | |||
| 3097c404ba | |||
| d2ac917db3 | |||
| 23c89e97ce | |||
| 991f7d73b9 | |||
| a23f40787e | |||
| 997bb457ba | |||
| ce75a1f343 | |||
| 46b1c7e1de | |||
| e4d61a6648 | |||
| 79dcf3bc9b | |||
| 5074d688f7 | |||
| bd913ae549 | |||
| 42e7d8c004 | |||
| 4fa73e5035 | |||
| fe2f08f7a3 | |||
| 0c8c55f293 | |||
|
|
50b043bad5 | ||
|
|
a65562e701 | ||
| 1a9746bb3c | |||
|
|
23e453de77 | ||
|
|
6a90182014 | ||
|
|
34d102bcf4 | ||
| 7bc58a48d0 | |||
| 1b3b3db1bf | |||
| 236f0758df | |||
| 2262609cdd | |||
| 174582e56e | |||
|
|
50dba2cd81 | ||
| 8b037369b7 | |||
| 39b4a24ef3 | |||
| f184151fdb | |||
|
|
27d5fdd68c | ||
|
|
c5c8fe1259 | ||
| b424c6467b | |||
| 409b9fbb51 | |||
| 2c19602e9b | |||
| 24543cce38 | |||
| c999bafa22 | |||
| 9af96fed99 | |||
| 90781191b7 | |||
| 5796887f79 | |||
| 0cb92b2442 | |||
| 32a5e4f332 | |||
| 98526fd582 | |||
| 5956b9508d | |||
| 7be20d249e | |||
| 9c7536d1d4 | |||
| 0c026078d0 | |||
|
|
252e7a2fa6 | ||
| 4bf99dd820 | |||
|
|
03cd7bcdda | ||
|
|
df775a7a36 | ||
|
|
1f500f31d4 | ||
| ac87f2f8ef | |||
|
|
647d247c81 | ||
| 856ff3ca40 | |||
| 843bd141eb | |||
|
|
f414e10d94 | ||
| 0b4854373b | |||
| 693b3a572e | |||
| 8977957054 | |||
| 408949e5c2 | |||
| 40e273f51e | |||
| dab5bfc677 | |||
|
|
bcf7e3121d | ||
| 1727379952 | |||
| 187c700f9c | |||
| a66cb8f62c | |||
| cc3c481295 | |||
|
|
60b9f21a61 | ||
|
|
b25bde77fc | ||
| 2980631414 | |||
| c15ae24c7a | |||
| 7f02dccc6b | |||
| 34a6c50598 | |||
| 191c9e66fe | |||
|
|
ab737e016c | ||
| b563be1158 | |||
| 616532e69c | |||
| 450efe675a | |||
| 47d37f2b7f | |||
| cce7492556 | |||
| e197206d0a | |||
| dc7aa3b9b9 | |||
|
|
ef3b4c363e | ||
| d7fec73c77 | |||
| 590c62eadd | |||
|
|
e12c5f2f98 | ||
| fdd4ff827e | |||
|
|
02f640218c | ||
|
|
9f2cbe5a1e | ||
| 50f758cc28 | |||
| d2e1c7b56f | |||
| 09f764c0df | |||
| 447449e1b3 | |||
|
|
dddb082288 | ||
| ee6e8d21ac | |||
| d43408cf01 | |||
|
|
9bfc55f2d6 | ||
| 54d44afcec | |||
| 15c2e62e92 | |||
| c4fafd1dd3 | |||
| 1c03f1773b | |||
|
|
1b0d9fd0b0 | ||
|
|
f8ca8570af | ||
| a3975d85f7 | |||
|
|
84a925b68f | ||
| e25f1c75b5 | |||
| c5c40f58ab | |||
|
|
2971027af2 | ||
|
|
f2475e6b06 | ||
| ef3bc5da39 | |||
| ed66253b06 | |||
| 5623167eb9 | |||
|
|
48860cf906 | ||
| 2e61259ebe | |||
|
|
013ed4944c | ||
|
|
16c4680d6c | ||
|
|
f542c4c57e |
26
.gitignore
vendored
26
.gitignore
vendored
@@ -77,3 +77,29 @@ Recordings/
|
|||||||
# Paid assets
|
# Paid assets
|
||||||
/[Aa]ssets/Magic Light Probes/*
|
/[Aa]ssets/Magic Light Probes/*
|
||||||
/[Aa]ssets/[Bb]akery/*
|
/[Aa]ssets/[Bb]akery/*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#FMOD
|
||||||
|
|
||||||
|
# Never ignore DLLs in the FMOD subfolder.
|
||||||
|
!/[Aa]ssets/Plugins/FMOD/**/lib/*
|
||||||
|
|
||||||
|
# Don't ignore images and gizmos used by FMOD in the Unity Editor.
|
||||||
|
!/[Aa]ssets/Gizmos/FMOD/*
|
||||||
|
!/[Aa]ssets/Editor Default Resources/FMOD/*
|
||||||
|
|
||||||
|
# Ignore the Cache folder since it is updated locally.
|
||||||
|
/[Aa]ssets/Plugins/FMOD/Cache/*
|
||||||
|
|
||||||
|
# Ignore bank files in the StreamingAssets folder.
|
||||||
|
/[Aa]ssets/StreamingAssets/**/*.bank
|
||||||
|
/[Aa]ssets/StreamingAssets/**/*.bank.meta
|
||||||
|
|
||||||
|
# If the source bank files are kept outside of the StreamingAssets folder then these can be ignored.
|
||||||
|
# Log files can be ignored.
|
||||||
|
fmod_editor.log
|
||||||
|
NetrworkManagerUI.prefab
|
||||||
|
NetrworkManagerUI.prefab.meta
|
||||||
|
CustomNetworkManager.prefab
|
||||||
|
CustomNetworkManager.prefab.meta
|
||||||
@@ -1,3 +1,6 @@
|
|||||||
|
INVOKEAI_URL=
|
||||||
|
INVOKEAI_MODEL_KEY=
|
||||||
|
TRELLIS_URL=
|
||||||
|
|
||||||
CLOUDFLARE_ACCOUNT_ID=
|
CLOUDFLARE_ACCOUNT_ID=
|
||||||
CLOUDFLARE_API_TOKEN=
|
CLOUDFLARE_API_TOKEN=
|
||||||
MODEL_FOLDER=
|
|
||||||
3
3d-generation-pipeline/.gitignore
vendored
3
3d-generation-pipeline/.gitignore
vendored
@@ -1,4 +1,7 @@
|
|||||||
.venv
|
.venv
|
||||||
.env
|
.env
|
||||||
|
__pycache__
|
||||||
images/
|
images/
|
||||||
models/
|
models/
|
||||||
|
logs/
|
||||||
|
notebooks/test_resources/
|
||||||
@@ -1,2 +1,28 @@
|
|||||||
### TODO
|
### TODO
|
||||||
* Azure OpenAI API: https://wiki.ut.ee/spaces/AA/pages/218073589/Azure+OpenAI+API+teenus
|
* glTF loading: vahetada ära shader Universal render pipelin Lit, mitte panna buildi kaasa glTf oma
|
||||||
|
* shape scanner initialisation correct number of confs
|
||||||
|
* user flow: grab item? mida krabada
|
||||||
|
* user prefs: settinguid meelde jätta
|
||||||
|
* võtta spawnitud mudeli mõõtmed: mehscollideri max x, max y, etc? bounding box?
|
||||||
|
* mängija collide'ib spawnitud mudeliga - ei tohiks
|
||||||
|
* shape scanner:
|
||||||
|
* mitte-liigutatavaks, aga samal ajal kõrgus dünaamiliselt õige. või lihtsalt piisavalt madalale asetada või väljaulatuv kang millest krabada
|
||||||
|
* peenikesemad kiired
|
||||||
|
* mitte lihtsalt ontriggerenter ja -exit, sest kui mitu objekti lähevad samal ajal sisse
|
||||||
|
* mustad kiired on halvasti nähtavad pruuni materjali taustal
|
||||||
|
* kui üks config completed, siis mängijale aru saada: sound effect, "loading"
|
||||||
|
* mikri vana tekst ei kao ära
|
||||||
|
* archery range:
|
||||||
|
* kui midagi laeb (wire aktiivne), siis particle'id voolavad mööda toru
|
||||||
|
* highscore json tühjaks
|
||||||
|
* quest marker järjest järgmise tegevuse kohal: mikrofon, siis nupud
|
||||||
|
* character billboard:
|
||||||
|
* peaks vaatama pea poole, mitte xr origin
|
||||||
|
* klaas on näha temast eespool
|
||||||
|
* pööramine kaamera poole - sujuvalt (slerp)
|
||||||
|
* küsida Danielilt asukoha kohta
|
||||||
|
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
* TRELLIS: added functionality to specify texture baking optimisation total steps as an argument (`texture_opt_total_steps`), to replace the hardcoded 2500. But this is not tracked in Git (because modified this https://github.com/IgorAherne/trellis-stable-projectorz/releases/tag/latest)
|
||||||
|
* Custom Shader Variant Collection to include glTF-pbrMetallicRoughness shader in build
|
||||||
|
|||||||
61
3d-generation-pipeline/cloudflare_api.py
Normal file
61
3d-generation-pipeline/cloudflare_api.py
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
import base64
|
||||||
|
import requests
|
||||||
|
import os
|
||||||
|
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
ACCOUNT_ID = os.environ["CLOUDFLARE_ACCOUNT_ID"]
|
||||||
|
API_TOKEN = os.environ["CLOUDFLARE_API_TOKEN"]
|
||||||
|
|
||||||
|
def text_to_image_cloudflare(prompt, output_path):
|
||||||
|
MODEL = "@cf/black-forest-labs/flux-1-schnell"
|
||||||
|
URL = f"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/{MODEL}"
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
"prompt": prompt,
|
||||||
|
}
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"Authorization": f"Bearer {API_TOKEN}",
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
}
|
||||||
|
|
||||||
|
resp = requests.post(URL, json=payload, headers=headers, timeout=60)
|
||||||
|
resp.raise_for_status()
|
||||||
|
|
||||||
|
data = resp.json()
|
||||||
|
b64 = data["result"]["image"]
|
||||||
|
if not b64:
|
||||||
|
raise RuntimeError(f"Unexpected response structure: {data}")
|
||||||
|
|
||||||
|
img_bytes = base64.b64decode(b64)
|
||||||
|
|
||||||
|
with open(output_path, "wb") as f:
|
||||||
|
f.write(img_bytes)
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def refine_text_prompt(prompt):
|
||||||
|
MODEL = "@cf/meta/llama-3.2-3b-instruct"
|
||||||
|
URL = f"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/{MODEL}"
|
||||||
|
|
||||||
|
instructions = """
|
||||||
|
User is talking about some object. Your task is to generate a short and concise description of it. Use only user's own words, keep it as short as possible.
|
||||||
|
Example:
|
||||||
|
User: 'Umm, okay, I would like a really cool sword, with for example a bright orange crossguard. And also it should be slightly curved.'
|
||||||
|
You: 'a slightly curved sword with bright orange crossguard'
|
||||||
|
"""
|
||||||
|
|
||||||
|
response = requests.post(URL,
|
||||||
|
headers={"Authorization": f"Bearer {API_TOKEN}"},
|
||||||
|
json={
|
||||||
|
"messages": [
|
||||||
|
{"role": "system", "content": instructions},
|
||||||
|
{"role": "user", "content": prompt}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
)
|
||||||
|
data = response.json()
|
||||||
|
return data["result"]["response"]
|
||||||
@@ -1,28 +1,501 @@
|
|||||||
import torch
|
# Based on: https://github.com/coinstax/invokeai-mcp-server
|
||||||
from diffusers import StableDiffusionPipeline, StableDiffusion3Pipeline
|
|
||||||
|
import requests
|
||||||
|
import asyncio
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
import httpx
|
||||||
|
import os
|
||||||
import time
|
import time
|
||||||
|
|
||||||
start_timestamp = time.time()
|
from typing import Optional
|
||||||
#model = "stabilityai/stable-diffusion-3.5-medium" # generation time: 13 min
|
from urllib.parse import urljoin
|
||||||
model = "stabilityai/stable-diffusion-3-medium-diffusers" # generation time: 10 min
|
from dotenv import load_dotenv
|
||||||
#model = "stabilityai/stable-diffusion-2" # generation time: 4 sec
|
|
||||||
|
|
||||||
pipe = StableDiffusion3Pipeline.from_pretrained(model, torch_dtype=torch.float16)
|
# Configure logging
|
||||||
#pipe = StableDiffusionPipeline.from_pretrained(model, torch_dtype=torch.float16)
|
logging.basicConfig(level=logging.INFO)
|
||||||
pipe = pipe.to("cuda")
|
logger = logging.getLogger("invokeai-mcp")
|
||||||
|
|
||||||
model_loaded_timestamp = time.time()
|
load_dotenv()
|
||||||
model_load_time = model_loaded_timestamp - start_timestamp
|
|
||||||
print(f"model load time: {round(model_load_time)} seconds")
|
|
||||||
|
|
||||||
prompt = "A majestic broadsword with a golden pommel, no background"
|
INVOKEAI_BASE_URL = os.environ["INVOKEAI_URL"]
|
||||||
image = pipe(
|
INVOKEAI_MODEL_KEY = os.environ["INVOKEAI_MODEL_KEY"]
|
||||||
prompt,
|
DEFAULT_QUEUE_ID = "default"
|
||||||
guidance_scale=3.0,
|
|
||||||
).images[0]
|
|
||||||
|
|
||||||
image_name = "image7.png"
|
# HTTP client
|
||||||
image.save(f"images/{image_name}")
|
http_client: Optional[httpx.AsyncClient] = None
|
||||||
|
|
||||||
generation_time = time.time() - model_loaded_timestamp
|
|
||||||
print(f"image generation time: {round(generation_time)} seconds")
|
|
||||||
|
def get_client() -> httpx.AsyncClient:
|
||||||
|
"""Get or create HTTP client."""
|
||||||
|
global http_client
|
||||||
|
if http_client is None:
|
||||||
|
http_client = httpx.AsyncClient(base_url=INVOKEAI_BASE_URL, timeout=120.0)
|
||||||
|
return http_client
|
||||||
|
|
||||||
|
|
||||||
|
async def list_models(model_type: str = "main") -> list:
|
||||||
|
"""List available models."""
|
||||||
|
client = get_client()
|
||||||
|
response = await client.get("/api/v2/models/", params={"model_type": model_type})
|
||||||
|
response.raise_for_status()
|
||||||
|
data = response.json()
|
||||||
|
return data.get("models", [])
|
||||||
|
|
||||||
|
|
||||||
|
async def get_model_info(model_key: str) -> Optional[dict]:
|
||||||
|
"""Get information about a specific model."""
|
||||||
|
client = get_client()
|
||||||
|
try:
|
||||||
|
response = await client.get(f"/api/v2/models/i/{model_key}")
|
||||||
|
response.raise_for_status()
|
||||||
|
model_data = response.json()
|
||||||
|
|
||||||
|
# Ensure we have a valid dictionary
|
||||||
|
if not isinstance(model_data, dict):
|
||||||
|
logger.error(f"Model info for {model_key} is not a dictionary: {type(model_data)}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
return model_data
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Error fetching model info for {model_key}: {e}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def download_file(url, filepath):
|
||||||
|
response = requests.get(url)
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
with open(filepath, "wb") as file:
|
||||||
|
file.write(response.content)
|
||||||
|
else:
|
||||||
|
raise RuntimeError(f"Failed to download image. Status code: {response.status_code}")
|
||||||
|
|
||||||
|
|
||||||
|
async def get_image_url(image_name: str) -> str:
|
||||||
|
"""Get the URL for an image."""
|
||||||
|
client = get_client()
|
||||||
|
response = await client.get(f"/api/v1/images/i/{image_name}/urls")
|
||||||
|
response.raise_for_status()
|
||||||
|
data = response.json()
|
||||||
|
return data.get("image_url", "")
|
||||||
|
|
||||||
|
|
||||||
|
async def wait_for_completion(batch_id: str, queue_id: str = DEFAULT_QUEUE_ID, timeout: int = 300) -> dict:
|
||||||
|
"""Wait for a batch to complete and return the most recent image."""
|
||||||
|
client = get_client()
|
||||||
|
start_time = asyncio.get_event_loop().time()
|
||||||
|
|
||||||
|
while True:
|
||||||
|
# Check if we've exceeded timeout
|
||||||
|
if asyncio.get_event_loop().time() - start_time > timeout:
|
||||||
|
raise TimeoutError(f"Image generation timed out after {timeout} seconds")
|
||||||
|
|
||||||
|
# Get batch status
|
||||||
|
response = await client.get(f"/api/v1/queue/{queue_id}/b/{batch_id}/status")
|
||||||
|
response.raise_for_status()
|
||||||
|
status_data = response.json()
|
||||||
|
|
||||||
|
# Check for failures
|
||||||
|
failed_count = status_data.get("failed", 0)
|
||||||
|
if failed_count > 0:
|
||||||
|
# Try to get error details from the queue
|
||||||
|
queue_status_response = await client.get(f"/api/v1/queue/{queue_id}/status")
|
||||||
|
queue_status_response.raise_for_status()
|
||||||
|
queue_data = queue_status_response.json()
|
||||||
|
|
||||||
|
raise RuntimeError(
|
||||||
|
f"Image generation failed. Batch {batch_id} has {failed_count} failed item(s). "
|
||||||
|
f"Queue status: {json.dumps(queue_data, indent=2)}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Check completion
|
||||||
|
completed = status_data.get("completed", 0)
|
||||||
|
total = status_data.get("total", 0)
|
||||||
|
|
||||||
|
if completed == total and total > 0:
|
||||||
|
# Get most recent non-intermediate image
|
||||||
|
images_response = await client.get("/api/v1/images/?is_intermediate=false&limit=10")
|
||||||
|
images_response.raise_for_status()
|
||||||
|
images_data = images_response.json()
|
||||||
|
|
||||||
|
# Return the most recent image (first in the list)
|
||||||
|
if images_data.get("items"):
|
||||||
|
return {
|
||||||
|
"batch_id": batch_id,
|
||||||
|
"status": "completed",
|
||||||
|
"result": {
|
||||||
|
"outputs": {
|
||||||
|
"save_image": {
|
||||||
|
"type": "image_output",
|
||||||
|
"image": {
|
||||||
|
"image_name": images_data["items"][0]["image_name"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# If no images found, return status
|
||||||
|
return status_data
|
||||||
|
|
||||||
|
# Wait before checking again
|
||||||
|
await asyncio.sleep(1)
|
||||||
|
|
||||||
|
|
||||||
|
async def enqueue_graph(graph: dict, queue_id: str = DEFAULT_QUEUE_ID) -> dict:
|
||||||
|
"""Enqueue a graph for processing."""
|
||||||
|
client = get_client()
|
||||||
|
|
||||||
|
batch = {
|
||||||
|
"batch": {
|
||||||
|
"graph": graph,
|
||||||
|
"runs": 1,
|
||||||
|
"data": None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
response = await client.post(
|
||||||
|
f"/api/v1/queue/{queue_id}/enqueue_batch",
|
||||||
|
json=batch
|
||||||
|
)
|
||||||
|
response.raise_for_status()
|
||||||
|
return response.json()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
async def create_text2img_graph(
|
||||||
|
prompt: str,
|
||||||
|
negative_prompt: str = "",
|
||||||
|
model_key: Optional[str] = None,
|
||||||
|
lora_key: Optional[str] = None,
|
||||||
|
lora_weight: float = 1.0,
|
||||||
|
vae_key: Optional[str] = None,
|
||||||
|
width: int = 512,
|
||||||
|
height: int = 512,
|
||||||
|
steps: int = 30,
|
||||||
|
cfg_scale: float = 7.5,
|
||||||
|
scheduler: str = "euler",
|
||||||
|
seed: Optional[int] = None
|
||||||
|
) -> dict:
|
||||||
|
"""Create a text-to-image generation graph with optional LoRA and VAE support."""
|
||||||
|
|
||||||
|
# Use default model if not specified
|
||||||
|
if model_key is None:
|
||||||
|
# Try to find an sd-1 model
|
||||||
|
models = await list_models("main")
|
||||||
|
for model in models:
|
||||||
|
if model.get("base") == "sd-1":
|
||||||
|
model_key = model["key"]
|
||||||
|
break
|
||||||
|
if model_key is None:
|
||||||
|
raise ValueError("No suitable model found")
|
||||||
|
|
||||||
|
# Get model information
|
||||||
|
model_info = await get_model_info(model_key)
|
||||||
|
if not model_info:
|
||||||
|
raise ValueError(f"Model {model_key} not found")
|
||||||
|
|
||||||
|
# Validate model info has required fields
|
||||||
|
if not isinstance(model_info, dict):
|
||||||
|
raise ValueError(f"Model {model_key} returned invalid data type: {type(model_info)}")
|
||||||
|
|
||||||
|
required_fields = ["key", "hash", "name", "base", "type"]
|
||||||
|
for field in required_fields:
|
||||||
|
if field not in model_info or model_info[field] is None:
|
||||||
|
raise ValueError(f"Model {model_key} is missing required field: {field}")
|
||||||
|
|
||||||
|
# Generate random seed if not provided
|
||||||
|
if seed is None:
|
||||||
|
import random
|
||||||
|
seed = random.randint(0, 2**32 - 1)
|
||||||
|
|
||||||
|
# Detect if this is an SDXL model
|
||||||
|
is_sdxl = model_info["base"] == "sdxl"
|
||||||
|
|
||||||
|
# Build nodes dictionary
|
||||||
|
nodes = {
|
||||||
|
# Main model loader - use sdxl_model_loader for SDXL models
|
||||||
|
"model_loader": {
|
||||||
|
"type": "sdxl_model_loader" if is_sdxl else "main_model_loader",
|
||||||
|
"id": "model_loader",
|
||||||
|
"model": {
|
||||||
|
"key": model_info["key"],
|
||||||
|
"hash": model_info["hash"],
|
||||||
|
"name": model_info["name"],
|
||||||
|
"base": model_info["base"],
|
||||||
|
"type": model_info["type"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
# Positive prompt encoding - use sdxl_compel_prompt for SDXL
|
||||||
|
"positive_prompt": {
|
||||||
|
"type": "sdxl_compel_prompt" if is_sdxl else "compel",
|
||||||
|
"id": "positive_prompt",
|
||||||
|
"prompt": prompt,
|
||||||
|
**({"style": prompt} if is_sdxl else {})
|
||||||
|
},
|
||||||
|
|
||||||
|
# Negative prompt encoding - use sdxl_compel_prompt for SDXL
|
||||||
|
"negative_prompt": {
|
||||||
|
"type": "sdxl_compel_prompt" if is_sdxl else "compel",
|
||||||
|
"id": "negative_prompt",
|
||||||
|
"prompt": negative_prompt,
|
||||||
|
**({"style": ""} if is_sdxl else {})
|
||||||
|
},
|
||||||
|
|
||||||
|
# Noise generation
|
||||||
|
"noise": {
|
||||||
|
"type": "noise",
|
||||||
|
"id": "noise",
|
||||||
|
"seed": seed,
|
||||||
|
"width": width,
|
||||||
|
"height": height,
|
||||||
|
"use_cpu": False
|
||||||
|
},
|
||||||
|
|
||||||
|
# Denoise latents (main generation step)
|
||||||
|
"denoise": {
|
||||||
|
"type": "denoise_latents",
|
||||||
|
"id": "denoise",
|
||||||
|
"steps": steps,
|
||||||
|
"cfg_scale": cfg_scale,
|
||||||
|
"scheduler": scheduler,
|
||||||
|
"denoising_start": 0,
|
||||||
|
"denoising_end": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
# Convert latents to image
|
||||||
|
"latents_to_image": {
|
||||||
|
"type": "l2i",
|
||||||
|
"id": "latents_to_image"
|
||||||
|
},
|
||||||
|
|
||||||
|
# Save image
|
||||||
|
"save_image": {
|
||||||
|
"type": "save_image",
|
||||||
|
"id": "save_image",
|
||||||
|
"is_intermediate": False
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add LoRA loader if requested
|
||||||
|
if lora_key is not None:
|
||||||
|
lora_info = await get_model_info(lora_key)
|
||||||
|
if not lora_info:
|
||||||
|
raise ValueError(f"LoRA model {lora_key} not found")
|
||||||
|
|
||||||
|
# Validate LoRA info has required fields
|
||||||
|
required_fields = ["key", "hash", "name", "base", "type"]
|
||||||
|
for field in required_fields:
|
||||||
|
if field not in lora_info or lora_info[field] is None:
|
||||||
|
raise ValueError(f"LoRA model {lora_key} is missing required field: {field}")
|
||||||
|
|
||||||
|
nodes["lora_loader"] = {
|
||||||
|
"type": "lora_loader",
|
||||||
|
"id": "lora_loader",
|
||||||
|
"lora": {
|
||||||
|
"key": lora_info["key"],
|
||||||
|
"hash": lora_info["hash"],
|
||||||
|
"name": lora_info["name"],
|
||||||
|
"base": lora_info["base"],
|
||||||
|
"type": lora_info["type"]
|
||||||
|
},
|
||||||
|
"weight": lora_weight
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add VAE loader if requested (to override model's built-in VAE)
|
||||||
|
if vae_key is not None:
|
||||||
|
vae_info = await get_model_info(vae_key)
|
||||||
|
if not vae_info:
|
||||||
|
raise ValueError(f"VAE model {vae_key} not found")
|
||||||
|
|
||||||
|
# Validate VAE info has required fields
|
||||||
|
required_fields = ["key", "hash", "name", "base", "type"]
|
||||||
|
for field in required_fields:
|
||||||
|
if field not in vae_info or vae_info[field] is None:
|
||||||
|
raise ValueError(f"VAE model {vae_key} is missing required field: {field}")
|
||||||
|
|
||||||
|
nodes["vae_loader"] = {
|
||||||
|
"type": "vae_loader",
|
||||||
|
"id": "vae_loader",
|
||||||
|
"vae_model": {
|
||||||
|
"key": vae_info["key"],
|
||||||
|
"hash": vae_info["hash"],
|
||||||
|
"name": vae_info["name"],
|
||||||
|
"base": vae_info["base"],
|
||||||
|
"type": vae_info["type"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Build edges
|
||||||
|
edges = []
|
||||||
|
|
||||||
|
# Determine source for UNet and CLIP (model_loader or lora_loader)
|
||||||
|
unet_source = "lora_loader" if lora_key is not None else "model_loader"
|
||||||
|
clip_source = "lora_loader" if lora_key is not None else "model_loader"
|
||||||
|
# Determine source for VAE (vae_loader if specified, otherwise model_loader)
|
||||||
|
vae_source = "vae_loader" if vae_key is not None else "model_loader"
|
||||||
|
|
||||||
|
# If using LoRA, connect model_loader to lora_loader first
|
||||||
|
if lora_key is not None:
|
||||||
|
edges.extend([
|
||||||
|
{
|
||||||
|
"source": {"node_id": "model_loader", "field": "unet"},
|
||||||
|
"destination": {"node_id": "lora_loader", "field": "unet"}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": {"node_id": "model_loader", "field": "clip"},
|
||||||
|
"destination": {"node_id": "lora_loader", "field": "clip"}
|
||||||
|
}
|
||||||
|
])
|
||||||
|
# Note: lora_loader doesn't have a clip2 field, so for SDXL we route clip2 directly from model_loader
|
||||||
|
|
||||||
|
# Connect UNet and CLIP to downstream nodes
|
||||||
|
edges.extend([
|
||||||
|
# Connect UNet to denoise
|
||||||
|
{
|
||||||
|
"source": {"node_id": unet_source, "field": "unet"},
|
||||||
|
"destination": {"node_id": "denoise", "field": "unet"}
|
||||||
|
},
|
||||||
|
# Connect CLIP to prompts
|
||||||
|
{
|
||||||
|
"source": {"node_id": clip_source, "field": "clip"},
|
||||||
|
"destination": {"node_id": "positive_prompt", "field": "clip"}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": {"node_id": clip_source, "field": "clip"},
|
||||||
|
"destination": {"node_id": "negative_prompt", "field": "clip"}
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
# For SDXL models, also connect clip2
|
||||||
|
# Note: clip2 always comes from model_loader, even when using LoRA (lora_loader doesn't support clip2)
|
||||||
|
if is_sdxl:
|
||||||
|
edges.extend([
|
||||||
|
{
|
||||||
|
"source": {"node_id": "model_loader", "field": "clip2"},
|
||||||
|
"destination": {"node_id": "positive_prompt", "field": "clip2"}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": {"node_id": "model_loader", "field": "clip2"},
|
||||||
|
"destination": {"node_id": "negative_prompt", "field": "clip2"}
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
edges.extend([
|
||||||
|
|
||||||
|
# Connect prompts to denoise
|
||||||
|
{
|
||||||
|
"source": {"node_id": "positive_prompt", "field": "conditioning"},
|
||||||
|
"destination": {"node_id": "denoise", "field": "positive_conditioning"}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": {"node_id": "negative_prompt", "field": "conditioning"},
|
||||||
|
"destination": {"node_id": "denoise", "field": "negative_conditioning"}
|
||||||
|
},
|
||||||
|
|
||||||
|
# Connect noise to denoise
|
||||||
|
{
|
||||||
|
"source": {"node_id": "noise", "field": "noise"},
|
||||||
|
"destination": {"node_id": "denoise", "field": "noise"}
|
||||||
|
},
|
||||||
|
|
||||||
|
# Connect denoise to latents_to_image
|
||||||
|
{
|
||||||
|
"source": {"node_id": "denoise", "field": "latents"},
|
||||||
|
"destination": {"node_id": "latents_to_image", "field": "latents"}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": {"node_id": vae_source, "field": "vae"},
|
||||||
|
"destination": {"node_id": "latents_to_image", "field": "vae"}
|
||||||
|
},
|
||||||
|
|
||||||
|
# Connect latents_to_image to save_image
|
||||||
|
{
|
||||||
|
"source": {"node_id": "latents_to_image", "field": "image"},
|
||||||
|
"destination": {"node_id": "save_image", "field": "image"}
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
|
graph = {
|
||||||
|
"id": "text2img_graph",
|
||||||
|
"nodes": nodes,
|
||||||
|
"edges": edges
|
||||||
|
}
|
||||||
|
|
||||||
|
return graph
|
||||||
|
|
||||||
|
|
||||||
|
async def generate_image(arguments: dict):
|
||||||
|
|
||||||
|
# Extract parameters
|
||||||
|
prompt = arguments["prompt"]
|
||||||
|
negative_prompt = arguments.get("negative_prompt", "")
|
||||||
|
width = arguments.get("width", 512)
|
||||||
|
height = arguments.get("height", 512)
|
||||||
|
steps = arguments.get("steps", 30)
|
||||||
|
cfg_scale = arguments.get("cfg_scale", 7.5)
|
||||||
|
scheduler = arguments.get("scheduler", "euler")
|
||||||
|
seed = arguments.get("seed")
|
||||||
|
model_key = arguments.get("model_key")
|
||||||
|
lora_key = arguments.get("lora_key")
|
||||||
|
lora_weight = arguments.get("lora_weight", 1.0)
|
||||||
|
vae_key = arguments.get("vae_key")
|
||||||
|
|
||||||
|
print(f"Generating image with prompt: {prompt[:50]}...")
|
||||||
|
|
||||||
|
# Create graph
|
||||||
|
graph = await create_text2img_graph(
|
||||||
|
prompt=prompt,
|
||||||
|
negative_prompt=negative_prompt,
|
||||||
|
model_key=model_key,
|
||||||
|
lora_key=lora_key,
|
||||||
|
lora_weight=lora_weight,
|
||||||
|
vae_key=vae_key,
|
||||||
|
width=width,
|
||||||
|
height=height,
|
||||||
|
steps=steps,
|
||||||
|
cfg_scale=cfg_scale,
|
||||||
|
scheduler=scheduler,
|
||||||
|
seed=seed
|
||||||
|
)
|
||||||
|
|
||||||
|
# Enqueue and wait for completion
|
||||||
|
result = await enqueue_graph(graph)
|
||||||
|
batch_id = result["batch"]["batch_id"]
|
||||||
|
|
||||||
|
print(f"Enqueued batch {batch_id}, waiting for completion...")
|
||||||
|
|
||||||
|
completed = await wait_for_completion(batch_id)
|
||||||
|
|
||||||
|
# Extract image name from result
|
||||||
|
if "result" in completed and "outputs" in completed["result"]:
|
||||||
|
outputs = completed["result"]["outputs"]
|
||||||
|
# Find the image output
|
||||||
|
for node_id, output in outputs.items():
|
||||||
|
if output.get("type") == "image_output":
|
||||||
|
image_name = output["image"]["image_name"]
|
||||||
|
image_url = await get_image_url(image_name)
|
||||||
|
|
||||||
|
return urljoin(INVOKEAI_BASE_URL, image_url)
|
||||||
|
|
||||||
|
raise RuntimeError("Failed to generate image!")
|
||||||
|
|
||||||
|
|
||||||
|
async def text_to_image_invoke_ai(prompt, output_path):
|
||||||
|
# see available model keys via GET http://INVOKEAI_BASE_URL:9090/api/v2/models/?model_type=main
|
||||||
|
args = {
|
||||||
|
"prompt": prompt,
|
||||||
|
"width": 512,
|
||||||
|
"height": 512,
|
||||||
|
"model_key": INVOKEAI_MODEL_KEY
|
||||||
|
}
|
||||||
|
image_url = await generate_image(args)
|
||||||
|
print("Downloading image from", image_url)
|
||||||
|
time_start = time.time()
|
||||||
|
download_file(image_url, output_path)
|
||||||
|
download_time = time.time() - time_start
|
||||||
|
print(f"Image downloaded in {round(download_time, 1)} seconds")
|
||||||
|
|||||||
77
3d-generation-pipeline/generate_model_local.py
Normal file
77
3d-generation-pipeline/generate_model_local.py
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
import os
|
||||||
|
import time
|
||||||
|
import requests
|
||||||
|
import base64
|
||||||
|
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
API_URL = os.environ["TRELLIS_URL"]
|
||||||
|
|
||||||
|
|
||||||
|
def generate_no_preview(image_base64: str):
|
||||||
|
"""Generate 3D model from a single base64-encoded image without previews.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
image_base64: Base64 string of the image (without 'data:image/...' prefix)
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
# Set generation parameters
|
||||||
|
params = {
|
||||||
|
'image_base64': image_base64,
|
||||||
|
'seed': 42,
|
||||||
|
'ss_guidance_strength': 7.5,
|
||||||
|
'ss_sampling_steps': 10,
|
||||||
|
'slat_guidance_strength': 7.5,
|
||||||
|
'slat_sampling_steps': 10,
|
||||||
|
'mesh_simplify_ratio': 0.99,
|
||||||
|
'texture_size': 1024,
|
||||||
|
#'texture_baking_mode': 'opt',
|
||||||
|
'texture_opt_total_steps': 1000,
|
||||||
|
'output_format': 'glb'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Start generation
|
||||||
|
print("Generating model...")
|
||||||
|
response = requests.post(f"{API_URL}/generate_no_preview", data=params)
|
||||||
|
response.raise_for_status()
|
||||||
|
|
||||||
|
# Poll status until complete
|
||||||
|
while True:
|
||||||
|
status = requests.get(f"{API_URL}/status").json()
|
||||||
|
print(f"Progress: {status['progress']}%")
|
||||||
|
|
||||||
|
if status['status'] == 'COMPLETE':
|
||||||
|
break
|
||||||
|
elif status['status'] == 'FAILED':
|
||||||
|
raise Exception(f"Generation failed: {status['message']}")
|
||||||
|
|
||||||
|
time.sleep(1)
|
||||||
|
|
||||||
|
# Download the model
|
||||||
|
print("Downloading model...")
|
||||||
|
time_start = time.time()
|
||||||
|
response = requests.get(f"{API_URL}/download/model")
|
||||||
|
response.raise_for_status()
|
||||||
|
time_download = time.time() - time_start
|
||||||
|
print(f"Model downloaded in {round(time_download, 1)} seconds")
|
||||||
|
return response.content
|
||||||
|
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error: {str(e)}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
def image_to_3d_trellis(image_path, output_path):
|
||||||
|
with open(image_path, 'rb') as image_file:
|
||||||
|
image_data = image_file.read()
|
||||||
|
|
||||||
|
base64_encoded = base64.b64encode(image_data).decode('utf-8')
|
||||||
|
model_binary = generate_no_preview(base64_encoded)
|
||||||
|
|
||||||
|
output_file = f"{output_path}.glb"
|
||||||
|
with open(output_file, 'wb') as f:
|
||||||
|
f.write(model_binary)
|
||||||
|
|
||||||
|
return output_file
|
||||||
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
"cells": [
|
"cells": [
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 1,
|
||||||
"id": "1dc6faae",
|
"id": "1dc6faae",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 2,
|
||||||
"id": "b3107275",
|
"id": "b3107275",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@@ -44,17 +44,18 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Saved: output.jpg (263282 bytes)\n",
|
"Saved: test_resources/resolution_test_1.jpg (315728 bytes)\n"
|
||||||
"Saved: image9.jpg (263282 bytes)\n"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
|
"# https://developers.cloudflare.com/workers-ai/models/flux-1-schnell/\n",
|
||||||
|
"\n",
|
||||||
"MODEL = \"@cf/black-forest-labs/flux-1-schnell\"\n",
|
"MODEL = \"@cf/black-forest-labs/flux-1-schnell\"\n",
|
||||||
"URL = f\"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/{MODEL}\"\n",
|
"URL = f\"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/{MODEL}\"\n",
|
||||||
"\n",
|
"\n",
|
||||||
"payload = {\n",
|
"payload = {\n",
|
||||||
" \"prompt\": \"a slightly curved broadsword with a fancy golden crossguard\",\n",
|
" \"prompt\": \"cyborg crocodile, realistic style, single object, front and side fully visible, plain neutral background, clear details, soft studio lighting, true-to-scale\",\n",
|
||||||
"}\n",
|
"}\n",
|
||||||
"\n",
|
"\n",
|
||||||
"headers = {\n",
|
"headers = {\n",
|
||||||
@@ -72,7 +73,7 @@
|
|||||||
"\n",
|
"\n",
|
||||||
"img_bytes = base64.b64decode(b64)\n",
|
"img_bytes = base64.b64decode(b64)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"out_path = \"output.jpg\"\n",
|
"out_path = \"test_resources/resolution_test_1.jpg\"\n",
|
||||||
"with open(out_path, \"wb\") as f:\n",
|
"with open(out_path, \"wb\") as f:\n",
|
||||||
" f.write(img_bytes)\n",
|
" f.write(img_bytes)\n",
|
||||||
"\n",
|
"\n",
|
||||||
@@ -144,7 +145,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.10.0"
|
"version": "3.10.11"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
|
|||||||
122
3d-generation-pipeline/notebooks/local_image_generation.ipynb
Normal file
122
3d-generation-pipeline/notebooks/local_image_generation.ipynb
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "50e24baa",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"from invokeai_mcp_server import create_text2img_graph, enqueue_graph, wait_for_completion, get_image_url\n",
|
||||||
|
"from urllib.parse import urljoin\n",
|
||||||
|
"\n",
|
||||||
|
"import asyncio"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "0407cd9a",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"INVOKEAI_BASE_URL = \"http://127.0.0.1:9090\"\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"async def generate_image(arguments: dict):\n",
|
||||||
|
"\n",
|
||||||
|
" # Extract parameters\n",
|
||||||
|
" prompt = arguments[\"prompt\"]\n",
|
||||||
|
" negative_prompt = arguments.get(\"negative_prompt\", \"\")\n",
|
||||||
|
" width = arguments.get(\"width\", 512)\n",
|
||||||
|
" height = arguments.get(\"height\", 512)\n",
|
||||||
|
" steps = arguments.get(\"steps\", 30)\n",
|
||||||
|
" cfg_scale = arguments.get(\"cfg_scale\", 7.5)\n",
|
||||||
|
" scheduler = arguments.get(\"scheduler\", \"euler\")\n",
|
||||||
|
" seed = arguments.get(\"seed\")\n",
|
||||||
|
" model_key = arguments.get(\"model_key\")\n",
|
||||||
|
" lora_key = arguments.get(\"lora_key\")\n",
|
||||||
|
" lora_weight = arguments.get(\"lora_weight\", 1.0)\n",
|
||||||
|
" vae_key = arguments.get(\"vae_key\")\n",
|
||||||
|
"\n",
|
||||||
|
" #logger.info(f\"Generating image with prompt: {prompt[:50]}...\")\n",
|
||||||
|
"\n",
|
||||||
|
" # Create graph\n",
|
||||||
|
" graph = await create_text2img_graph(\n",
|
||||||
|
" prompt=prompt,\n",
|
||||||
|
" negative_prompt=negative_prompt,\n",
|
||||||
|
" model_key=model_key,\n",
|
||||||
|
" lora_key=lora_key,\n",
|
||||||
|
" lora_weight=lora_weight,\n",
|
||||||
|
" vae_key=vae_key,\n",
|
||||||
|
" width=width,\n",
|
||||||
|
" height=height,\n",
|
||||||
|
" steps=steps,\n",
|
||||||
|
" cfg_scale=cfg_scale,\n",
|
||||||
|
" scheduler=scheduler,\n",
|
||||||
|
" seed=seed\n",
|
||||||
|
" )\n",
|
||||||
|
"\n",
|
||||||
|
" # Enqueue and wait for completion\n",
|
||||||
|
" result = await enqueue_graph(graph)\n",
|
||||||
|
" batch_id = result[\"batch\"][\"batch_id\"]\n",
|
||||||
|
"\n",
|
||||||
|
" #logger.info(f\"Enqueued batch {batch_id}, waiting for completion...\")\n",
|
||||||
|
"\n",
|
||||||
|
" completed = await wait_for_completion(batch_id)\n",
|
||||||
|
"\n",
|
||||||
|
" # Extract image name from result\n",
|
||||||
|
" if \"result\" in completed and \"outputs\" in completed[\"result\"]:\n",
|
||||||
|
" outputs = completed[\"result\"][\"outputs\"]\n",
|
||||||
|
" # Find the image output\n",
|
||||||
|
" for node_id, output in outputs.items():\n",
|
||||||
|
" if output.get(\"type\") == \"image_output\":\n",
|
||||||
|
" image_name = output[\"image\"][\"image_name\"]\n",
|
||||||
|
" image_url = await get_image_url(image_name)\n",
|
||||||
|
"\n",
|
||||||
|
" text=f\"Image generated successfully!\\n\\nImage Name: {image_name}\\nImage URL: {image_url}\\n\\nYou can view the image at: {urljoin(INVOKEAI_BASE_URL, f'/api/v1/images/i/{image_name}/full')}\"\n",
|
||||||
|
" print(text)\n",
|
||||||
|
"\n",
|
||||||
|
" # Fallback if we couldn't find image output\n",
|
||||||
|
" #text=f\"Image generation completed but output format was unexpected. Batch ID: {batch_id}\\n\\nResult: {json.dumps(completed, indent=2)}\""
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "6cf9d879",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"async def main():\n",
|
||||||
|
" args = {\n",
|
||||||
|
" \"prompt\": \"a golden katana with a fancy pommel\"\n",
|
||||||
|
" }\n",
|
||||||
|
" await generate_image(args)\n",
|
||||||
|
"\n",
|
||||||
|
"asyncio.run(main())"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": ".venv",
|
||||||
|
"language": "python",
|
||||||
|
"name": "python3"
|
||||||
|
},
|
||||||
|
"language_info": {
|
||||||
|
"codemirror_mode": {
|
||||||
|
"name": "ipython",
|
||||||
|
"version": 3
|
||||||
|
},
|
||||||
|
"file_extension": ".py",
|
||||||
|
"mimetype": "text/x-python",
|
||||||
|
"name": "python",
|
||||||
|
"nbconvert_exporter": "python",
|
||||||
|
"pygments_lexer": "ipython3",
|
||||||
|
"version": "3.10.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5
|
||||||
|
}
|
||||||
@@ -0,0 +1,152 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 1,
|
||||||
|
"id": "d55eb3ce",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import requests\n",
|
||||||
|
"import base64\n",
|
||||||
|
"import time"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 5,
|
||||||
|
"id": "77b23cd8",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"# API endpoint\n",
|
||||||
|
"BASE_URL = \"http://127.0.0.1:7960\"\n",
|
||||||
|
"\n",
|
||||||
|
"def generate_no_preview(image_base64: str):\n",
|
||||||
|
" \"\"\"Generate 3D model from a single base64-encoded image without previews.\n",
|
||||||
|
" \n",
|
||||||
|
" Args:\n",
|
||||||
|
" image_base64: Base64 string of the image (without 'data:image/...' prefix)\n",
|
||||||
|
" \"\"\"\n",
|
||||||
|
" try:\n",
|
||||||
|
" # Set generation parameters\n",
|
||||||
|
" params = {\n",
|
||||||
|
" 'image_base64': image_base64,\n",
|
||||||
|
" 'seed': 42,\n",
|
||||||
|
" 'ss_guidance_strength': 7.5,\n",
|
||||||
|
" 'ss_sampling_steps': 30,\n",
|
||||||
|
" 'slat_guidance_strength': 7.5,\n",
|
||||||
|
" 'slat_sampling_steps': 30,\n",
|
||||||
|
" 'mesh_simplify_ratio': 0.95,\n",
|
||||||
|
" 'texture_size': 1024,\n",
|
||||||
|
" 'output_format': 'glb'\n",
|
||||||
|
" }\n",
|
||||||
|
" \n",
|
||||||
|
" # Start generation\n",
|
||||||
|
" print(\"Starting generation...\")\n",
|
||||||
|
" response = requests.post(f\"{BASE_URL}/generate_no_preview\", data=params)\n",
|
||||||
|
" print(\"Response status:\", response.status_code)\n",
|
||||||
|
" response.raise_for_status()\n",
|
||||||
|
" \n",
|
||||||
|
" # Poll status until complete\n",
|
||||||
|
" while True:\n",
|
||||||
|
" status = requests.get(f\"{BASE_URL}/status\").json()\n",
|
||||||
|
" print(f\"Progress: {status['progress']}%\")\n",
|
||||||
|
" \n",
|
||||||
|
" if status['status'] == 'COMPLETE':\n",
|
||||||
|
" break\n",
|
||||||
|
" elif status['status'] == 'FAILED':\n",
|
||||||
|
" raise Exception(f\"Generation failed: {status['message']}\")\n",
|
||||||
|
" \n",
|
||||||
|
" time.sleep(1)\n",
|
||||||
|
" \n",
|
||||||
|
" # Download the model\n",
|
||||||
|
" print(\"Downloading model...\")\n",
|
||||||
|
" response = requests.get(f\"{BASE_URL}/download/model\")\n",
|
||||||
|
" response.raise_for_status()\n",
|
||||||
|
" print(\"Model downloaded.\")\n",
|
||||||
|
" \n",
|
||||||
|
" return response.content\n",
|
||||||
|
" \n",
|
||||||
|
" except Exception as e:\n",
|
||||||
|
" print(f\"Error: {str(e)}\")\n",
|
||||||
|
" return None"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 6,
|
||||||
|
"id": "eb122295",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"def generate_model(image_path, output_path):\n",
|
||||||
|
" with open(image_path, 'rb') as image_file:\n",
|
||||||
|
" image_data = image_file.read()\n",
|
||||||
|
"\n",
|
||||||
|
" base64_encoded = base64.b64encode(image_data).decode('utf-8')\n",
|
||||||
|
" model = generate_no_preview(base64_encoded)\n",
|
||||||
|
" \n",
|
||||||
|
" with open(output_path, 'wb') as f:\n",
|
||||||
|
" f.write(model)\n",
|
||||||
|
" print(f\"Model saved to {output_path}\")\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 9,
|
||||||
|
"id": "2ce7dfdf",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"Starting generation...\n",
|
||||||
|
"Response status: 200\n",
|
||||||
|
"Progress: 100%\n",
|
||||||
|
"Downloading model...\n",
|
||||||
|
"Model downloaded.\n",
|
||||||
|
"Model saved to test_resources/style_test_3_model.glb\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"\n",
|
||||||
|
"image_path = 'test_resources/style_test_3.jpg'\n",
|
||||||
|
"output_path = \"test_resources/style_test_3_model.glb\"\n",
|
||||||
|
"\n",
|
||||||
|
"generate_model(image_path, output_path)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "a1224d13",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": ".venv",
|
||||||
|
"language": "python",
|
||||||
|
"name": "python3"
|
||||||
|
},
|
||||||
|
"language_info": {
|
||||||
|
"codemirror_mode": {
|
||||||
|
"name": "ipython",
|
||||||
|
"version": 3
|
||||||
|
},
|
||||||
|
"file_extension": ".py",
|
||||||
|
"mimetype": "text/x-python",
|
||||||
|
"name": "python",
|
||||||
|
"nbconvert_exporter": "python",
|
||||||
|
"pygments_lexer": "ipython3",
|
||||||
|
"version": "3.10.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5
|
||||||
|
}
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
{
|
|
||||||
"cells": [
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 1,
|
|
||||||
"id": "2c0da293",
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"name": "stderr",
|
|
||||||
"output_type": "stream",
|
|
||||||
"text": [
|
|
||||||
"c:\\Users\\henrisel.DOMENIS\\DeltaVR3DModelGeneration\\3d-generation-pipeline\\.venv\\lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
|
|
||||||
" from .autonotebook import tqdm as notebook_tqdm\n"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
|
||||||
"import torch\n",
|
|
||||||
"from diffusers import FluxPipeline"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"id": "51879ff1",
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"name": "stderr",
|
|
||||||
"output_type": "stream",
|
|
||||||
"text": [
|
|
||||||
"Fetching 23 files: 0%| | 0/23 [00:00<?, ?it/s]"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
|
||||||
"model_name = \"black-forest-labs/FLUX.1-schnell\"\n",
|
|
||||||
"\n",
|
|
||||||
"pipe = FluxPipeline.from_pretrained(model_name, torch_dtype=torch.bfloat16)\n",
|
|
||||||
"#pipe.enable_model_cpu_offload() #save some VRAM by offloading the model to CPU. Remove this if you have enough GPU power"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"id": "50a38bf4",
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"prompt = \"slightly curved sword, one side blue and other side green\"\n",
|
|
||||||
"pipe_result = pipe(\n",
|
|
||||||
" prompt,\n",
|
|
||||||
" guidance_scale=0.0,\n",
|
|
||||||
" num_inference_steps=4,\n",
|
|
||||||
" max_sequence_length=256,\n",
|
|
||||||
" generator=torch.Generator(\"gpu\")\n",
|
|
||||||
")\n",
|
|
||||||
"\n"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"id": "b692177a",
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"pipe_result"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"id": "d55eb3ce",
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"image = pipe_result[\"images\"][0]\n",
|
|
||||||
"image.save(\"flux-schnell.png\")"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"metadata": {
|
|
||||||
"kernelspec": {
|
|
||||||
"display_name": ".venv",
|
|
||||||
"language": "python",
|
|
||||||
"name": "python3"
|
|
||||||
},
|
|
||||||
"language_info": {
|
|
||||||
"codemirror_mode": {
|
|
||||||
"name": "ipython",
|
|
||||||
"version": 3
|
|
||||||
},
|
|
||||||
"file_extension": ".py",
|
|
||||||
"mimetype": "text/x-python",
|
|
||||||
"name": "python",
|
|
||||||
"nbconvert_exporter": "python",
|
|
||||||
"pygments_lexer": "ipython3",
|
|
||||||
"version": "3.10.11"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nbformat": 4,
|
|
||||||
"nbformat_minor": 5
|
|
||||||
}
|
|
||||||
@@ -1,109 +1,60 @@
|
|||||||
import os
|
|
||||||
import base64
|
|
||||||
import requests
|
|
||||||
import argparse
|
import argparse
|
||||||
import subprocess
|
import asyncio
|
||||||
|
import logging
|
||||||
|
import time
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
load_dotenv()
|
from generate_image_local import text_to_image_invoke_ai
|
||||||
|
from generate_model_local import image_to_3d_trellis
|
||||||
|
|
||||||
ACCOUNT_ID = os.environ["CLOUDFLARE_ACCOUNT_ID"]
|
load_dotenv()
|
||||||
API_TOKEN = os.environ["CLOUDFLARE_API_TOKEN"]
|
|
||||||
MODEL_FOLDER = os.environ["MODEL_FOLDER"]
|
|
||||||
|
|
||||||
|
|
||||||
def get_timestamp():
|
def get_timestamp():
|
||||||
return datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
|
return datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
|
||||||
|
|
||||||
|
def setup_logger(base_folder, timestamp):
|
||||||
def text_to_image(prompt, output_path):
|
log_dir = base_folder / Path("logs")
|
||||||
MODEL = "@cf/black-forest-labs/flux-1-schnell"
|
log_dir.mkdir(parents=True, exist_ok=True)
|
||||||
URL = f"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/{MODEL}"
|
logging.basicConfig(
|
||||||
|
filename=log_dir / f"{timestamp}.log",
|
||||||
payload = {
|
level=logging.INFO,
|
||||||
"prompt": prompt,
|
force=True
|
||||||
}
|
|
||||||
|
|
||||||
headers = {
|
|
||||||
"Authorization": f"Bearer {API_TOKEN}",
|
|
||||||
"Content-Type": "application/json",
|
|
||||||
}
|
|
||||||
|
|
||||||
resp = requests.post(URL, json=payload, headers=headers, timeout=60)
|
|
||||||
resp.raise_for_status()
|
|
||||||
|
|
||||||
data = resp.json()
|
|
||||||
b64 = data["result"]["image"]
|
|
||||||
if not b64:
|
|
||||||
raise RuntimeError(f"Unexpected response structure: {data}")
|
|
||||||
|
|
||||||
img_bytes = base64.b64decode(b64)
|
|
||||||
|
|
||||||
with open(output_path, "wb") as f:
|
|
||||||
f.write(img_bytes)
|
|
||||||
|
|
||||||
|
|
||||||
def refine_text_prompt(prompt):
|
|
||||||
MODEL = "@cf/meta/llama-3.2-3b-instruct"
|
|
||||||
URL = f"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/{MODEL}"
|
|
||||||
|
|
||||||
instructions = """
|
|
||||||
User is talking about some object. Your task is to generate a short and concise description of it. Use only user's own words, keep it as short as possible.
|
|
||||||
Example:
|
|
||||||
User: 'Umm, okay, I would like a really cool sword, with for example a bright orange crossguard. And also it should be slightly curved.'
|
|
||||||
You: 'a slightly curved sword with bright orange crossguard'
|
|
||||||
"""
|
|
||||||
|
|
||||||
response = requests.post(URL,
|
|
||||||
headers={"Authorization": f"Bearer {API_TOKEN}"},
|
|
||||||
json={
|
|
||||||
"messages": [
|
|
||||||
{"role": "system", "content": instructions},
|
|
||||||
{"role": "user", "content": prompt}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
data = response.json()
|
|
||||||
return data["result"]["response"]
|
|
||||||
|
|
||||||
def image_to_3d(image_path, output_path):
|
|
||||||
venv_python = MODEL_FOLDER + r"\.venv\Scripts\python.exe"
|
|
||||||
script_path = MODEL_FOLDER + r"\run.py"
|
|
||||||
|
|
||||||
args = [image_path, "--output-dir", output_path]
|
async def main():
|
||||||
command = [venv_python, script_path] + args
|
|
||||||
|
|
||||||
try:
|
|
||||||
# Run the subprocess
|
|
||||||
result = subprocess.run(command, capture_output=True, text=True)
|
|
||||||
|
|
||||||
# Print output and errors
|
|
||||||
print("STDOUT:\n", result.stdout)
|
|
||||||
print("STDERR:\n", result.stderr)
|
|
||||||
print("Return Code:", result.returncode)
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
print(f"Error occurred: {e}")
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser(description="Text to 3D model pipeline")
|
parser = argparse.ArgumentParser(description="Text to 3D model pipeline")
|
||||||
parser.add_argument("--prompt", type=str, required=True, help="User text prompt")
|
parser.add_argument("--prompt", type=str, required=True, help="User text prompt")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
user_prompt = args.prompt
|
input_prompt = args.prompt
|
||||||
print(f"User prompt: {user_prompt}")
|
print(f"Input prompt: {input_prompt}")
|
||||||
refined_prompt = refine_text_prompt(user_prompt)
|
image_generation_prompt = input_prompt + ", single object, front and side fully visible, realistic style, plain neutral background, clear details, soft studio lighting, true-to-scale"
|
||||||
print(f"Refined prompt: {refined_prompt}")
|
|
||||||
|
pipeline_folder = Path(__file__).resolve().parent
|
||||||
timestamp = get_timestamp()
|
timestamp = get_timestamp()
|
||||||
image_path = Path.cwd() / "images" / f"{timestamp}.jpg"
|
setup_logger(pipeline_folder, timestamp)
|
||||||
text_to_image(refined_prompt, image_path)
|
time_checkpoint = time.time()
|
||||||
|
|
||||||
|
image_path = pipeline_folder / "images" / f"{timestamp}.jpg"
|
||||||
|
await text_to_image_invoke_ai(image_generation_prompt, image_path)
|
||||||
|
|
||||||
|
image_generation_time = time.time() - time_checkpoint
|
||||||
|
time_checkpoint = time.time()
|
||||||
|
logging.info(f"Image generation time: {round(image_generation_time, 1)} s")
|
||||||
print(f"Generated image file: {image_path}")
|
print(f"Generated image file: {image_path}")
|
||||||
model_path = Path.cwd() / "models" / timestamp
|
|
||||||
image_to_3d(image_path, model_path)
|
model_path = pipeline_folder / "models" / timestamp
|
||||||
print(f"Generated 3D model file: {model_path}")
|
model_file = image_to_3d_trellis(image_path, model_path)
|
||||||
|
|
||||||
|
model_generation_time = time.time() - time_checkpoint
|
||||||
|
logging.info(f"Model generation time: {round(model_generation_time, 1)} s")
|
||||||
|
print(f"Generated 3D model file: {model_file}")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
asyncio.run(main())
|
||||||
|
|||||||
8
Assets/DOTween.meta
Normal file
8
Assets/DOTween.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 66ebf073af91d5d499f9caa84e8d2b26
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
3107
Assets/DOTween/DOTween.XML
Normal file
3107
Assets/DOTween/DOTween.XML
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/DOTween/DOTween.XML.meta
Normal file
7
Assets/DOTween/DOTween.XML.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8c2b80b45dcee1949bdce20ee5996721
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/DOTween/DOTween.dll
LFS
Normal file
BIN
Assets/DOTween/DOTween.dll
LFS
Normal file
Binary file not shown.
33
Assets/DOTween/DOTween.dll.meta
Normal file
33
Assets/DOTween/DOTween.dll.meta
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b15602494c0418a40bd3c1bcc37276af
|
||||||
|
PluginImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
defineConstraints: []
|
||||||
|
isPreloaded: 0
|
||||||
|
isOverridable: 0
|
||||||
|
isExplicitlyReferenced: 0
|
||||||
|
validateReferences: 1
|
||||||
|
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:
|
||||||
8
Assets/DOTween/Editor.meta
Normal file
8
Assets/DOTween/Editor.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5582eb58dc5efba4bb7d5c01e7e4fa61
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
144
Assets/DOTween/Editor/DOTweenEditor.XML
Normal file
144
Assets/DOTween/Editor/DOTweenEditor.XML
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>DOTweenEditor</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:DG.DOTweenEditor.EditorCompatibilityUtils">
|
||||||
|
<summary>
|
||||||
|
Contains compatibility methods taken from DemiEditor (for when DOTween is without it)
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorCompatibilityUtils.FindObjectOfType``1(System.Boolean)">
|
||||||
|
<summary>
|
||||||
|
Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorCompatibilityUtils.FindObjectOfType(System.Type,System.Boolean)">
|
||||||
|
<summary>
|
||||||
|
Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorCompatibilityUtils.FindObjectsOfType``1(System.Boolean)">
|
||||||
|
<summary>
|
||||||
|
Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorCompatibilityUtils.FindObjectsOfType(System.Type,System.Boolean)">
|
||||||
|
<summary>
|
||||||
|
Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.DOTweenEditorPreview.Start(System.Action)">
|
||||||
|
<summary>
|
||||||
|
Starts the update loop of tween in the editor. Has no effect during playMode.
|
||||||
|
</summary>
|
||||||
|
<param name="onPreviewUpdated">Eventual callback to call after every update</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.DOTweenEditorPreview.Stop(System.Boolean,System.Boolean)">
|
||||||
|
<summary>
|
||||||
|
Stops the update loop and clears the onPreviewUpdated callback.
|
||||||
|
</summary>
|
||||||
|
<param name="resetTweenTargets">If TRUE also resets the tweened objects to their original state.
|
||||||
|
Note that this works by calling Rewind on all tweens, so it will work correctly
|
||||||
|
only if you have a single tween type per object and it wasn't killed</param>
|
||||||
|
<param name="clearTweens">If TRUE also kills any cached tween</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.DOTweenEditorPreview.PrepareTweenForPreview(DG.Tweening.Tween,System.Boolean,System.Boolean,System.Boolean)">
|
||||||
|
<summary>
|
||||||
|
Readies the tween for editor preview by setting its UpdateType to Manual plus eventual extra settings.
|
||||||
|
</summary>
|
||||||
|
<param name="t">The tween to ready</param>
|
||||||
|
<param name="clearCallbacks">If TRUE (recommended) removes all callbacks (OnComplete/Rewind/etc)</param>
|
||||||
|
<param name="preventAutoKill">If TRUE prevents the tween from being auto-killed at completion</param>
|
||||||
|
<param name="andPlay">If TRUE starts playing the tween immediately</param>
|
||||||
|
</member>
|
||||||
|
<member name="F:DG.DOTweenEditor.EditorVersion.Version">
|
||||||
|
<summary>Full major version + first minor version (ex: 2018.1f)</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:DG.DOTweenEditor.EditorVersion.MajorVersion">
|
||||||
|
<summary>Major version</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:DG.DOTweenEditor.EditorVersion.MinorVersion">
|
||||||
|
<summary>First minor version (ex: in 2018.1 it would be 1)</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorUtils.SetEditorTexture(UnityEngine.Texture2D,UnityEngine.FilterMode,System.Int32)">
|
||||||
|
<summary>
|
||||||
|
Checks that the given editor texture use the correct import settings,
|
||||||
|
and applies them if they're incorrect.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorUtils.DOTweenSetupRequired">
|
||||||
|
<summary>
|
||||||
|
Returns TRUE if setup is required
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorUtils.AssetExists(System.String)">
|
||||||
|
<summary>
|
||||||
|
Returns TRUE if the file/directory at the given path exists.
|
||||||
|
</summary>
|
||||||
|
<param name="adbPath">Path, relative to Unity's project folder</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorUtils.ADBPathToFullPath(System.String)">
|
||||||
|
<summary>
|
||||||
|
Converts the given project-relative path to a full path,
|
||||||
|
with backward (\) slashes).
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorUtils.FullPathToADBPath(System.String)">
|
||||||
|
<summary>
|
||||||
|
Converts the given full path to a path usable with AssetDatabase methods
|
||||||
|
(relative to Unity's project folder, and with the correct Unity forward (/) slashes).
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorUtils.ConnectToSourceAsset``1(System.String,System.Boolean)">
|
||||||
|
<summary>
|
||||||
|
Connects to a <see cref="T:UnityEngine.ScriptableObject"/> asset.
|
||||||
|
If the asset already exists at the given path, loads it and returns it.
|
||||||
|
Otherwise, either returns NULL or automatically creates it before loading and returning it
|
||||||
|
(depending on the given parameters).
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T">Asset type</typeparam>
|
||||||
|
<param name="adbFilePath">File path (relative to Unity's project folder)</param>
|
||||||
|
<param name="createIfMissing">If TRUE and the requested asset doesn't exist, forces its creation</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorUtils.GetAssemblyFilePath(System.Reflection.Assembly)">
|
||||||
|
<summary>
|
||||||
|
Full path for the given loaded assembly, assembly file included
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorUtils.AddGlobalDefine(System.String)">
|
||||||
|
<summary>
|
||||||
|
Adds the given global define if it's not already present
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorUtils.RemoveGlobalDefine(System.String)">
|
||||||
|
<summary>
|
||||||
|
Removes the given global define if it's present
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DG.DOTweenEditor.EditorUtils.HasGlobalDefine(System.String,System.Nullable{UnityEditor.BuildTargetGroup})">
|
||||||
|
<summary>
|
||||||
|
Returns TRUE if the given global define is present in all the <see cref="T:UnityEditor.BuildTargetGroup"/>
|
||||||
|
or only in the given <see cref="T:UnityEditor.BuildTargetGroup"/>, depending on passed parameters.<para/>
|
||||||
|
</summary>
|
||||||
|
<param name="id"></param>
|
||||||
|
<param name="buildTargetGroup"><see cref="T:UnityEditor.BuildTargetGroup"/>to use. Leave NULL to check in all of them.</param>
|
||||||
|
</member>
|
||||||
|
<member name="T:DG.DOTweenEditor.DOTweenDefines">
|
||||||
|
<summary>
|
||||||
|
Not used as menu item anymore, but as a utility function
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:DG.DOTweenEditor.UnityEditorVersion.Version">
|
||||||
|
<summary>Full major version + first minor version (ex: 2018.1f)</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:DG.DOTweenEditor.UnityEditorVersion.MajorVersion">
|
||||||
|
<summary>Major version</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:DG.DOTweenEditor.UnityEditorVersion.MinorVersion">
|
||||||
|
<summary>First minor version (ex: in 2018.1 it would be 1)</summary>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
||||||
7
Assets/DOTween/Editor/DOTweenEditor.XML.meta
Normal file
7
Assets/DOTween/Editor/DOTweenEditor.XML.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 31782b3953dc990468d4e8b6c1017400
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/DOTween/Editor/DOTweenEditor.dll
LFS
Normal file
BIN
Assets/DOTween/Editor/DOTweenEditor.dll
LFS
Normal file
Binary file not shown.
33
Assets/DOTween/Editor/DOTweenEditor.dll.meta
Normal file
33
Assets/DOTween/Editor/DOTweenEditor.dll.meta
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: beebd8d31e343b9448dd7b28b4aeb523
|
||||||
|
PluginImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
defineConstraints: []
|
||||||
|
isPreloaded: 0
|
||||||
|
isOverridable: 0
|
||||||
|
isExplicitlyReferenced: 0
|
||||||
|
validateReferences: 1
|
||||||
|
platformData:
|
||||||
|
- first:
|
||||||
|
Any:
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
- first:
|
||||||
|
Editor: Editor
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
- first:
|
||||||
|
Windows Store Apps: WindowsStoreApps
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/DOTween/Editor/Imgs.meta
Normal file
8
Assets/DOTween/Editor/Imgs.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 71c839e23e9ed784c8cede7c3b86a315
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/DOTween/Editor/Imgs/DOTweenIcon.png
LFS
Normal file
BIN
Assets/DOTween/Editor/Imgs/DOTweenIcon.png
LFS
Normal file
Binary file not shown.
148
Assets/DOTween/Editor/Imgs/DOTweenIcon.png.meta
Normal file
148
Assets/DOTween/Editor/Imgs/DOTweenIcon.png.meta
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 390e1c3ea4bc5a44f8627597321e5431
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
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
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
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: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Server
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Windows Store Apps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/DOTween/Editor/Imgs/DOTweenMiniIcon.png
LFS
Normal file
BIN
Assets/DOTween/Editor/Imgs/DOTweenMiniIcon.png
LFS
Normal file
Binary file not shown.
148
Assets/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta
Normal file
148
Assets/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e2137267062d94a449f62c97fcfcd110
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
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
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
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: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Server
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Windows Store Apps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/DOTween/Editor/Imgs/Footer.png
LFS
Normal file
BIN
Assets/DOTween/Editor/Imgs/Footer.png
LFS
Normal file
Binary file not shown.
148
Assets/DOTween/Editor/Imgs/Footer.png.meta
Normal file
148
Assets/DOTween/Editor/Imgs/Footer.png.meta
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9c1b97cb1d363e848abf408bc0df12e7
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
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
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
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: 2
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 256
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Server
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Windows Store Apps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/DOTween/Editor/Imgs/Footer_dark.png
LFS
Normal file
BIN
Assets/DOTween/Editor/Imgs/Footer_dark.png
LFS
Normal file
Binary file not shown.
148
Assets/DOTween/Editor/Imgs/Footer_dark.png.meta
Normal file
148
Assets/DOTween/Editor/Imgs/Footer_dark.png.meta
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5ffd4a4cfbad93d479b2d6cbe55d354b
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
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
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
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: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Server
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Windows Store Apps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/DOTween/Editor/Imgs/Header.jpg
LFS
Normal file
BIN
Assets/DOTween/Editor/Imgs/Header.jpg
LFS
Normal file
Binary file not shown.
148
Assets/DOTween/Editor/Imgs/Header.jpg.meta
Normal file
148
Assets/DOTween/Editor/Imgs/Header.jpg.meta
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f65a320597fa974419397f6cc500a188
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
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
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
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: 2
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 512
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Server
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Windows Store Apps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/DOTween/Modules.meta
Normal file
8
Assets/DOTween/Modules.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0a781078dc1ef2e4c82d5a005b52df6f
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
198
Assets/DOTween/Modules/DOTweenModuleAudio.cs
Normal file
198
Assets/DOTween/Modules/DOTweenModuleAudio.cs
Normal file
@@ -0,0 +1,198 @@
|
|||||||
|
// Author: Daniele Giardini - http://www.demigiant.com
|
||||||
|
// Created: 2018/07/13
|
||||||
|
|
||||||
|
#if true // MODULE_MARKER
|
||||||
|
using System;
|
||||||
|
using DG.Tweening.Core;
|
||||||
|
using DG.Tweening.Plugins.Options;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Audio; // Required for AudioMixer
|
||||||
|
|
||||||
|
#pragma warning disable 1591
|
||||||
|
namespace DG.Tweening
|
||||||
|
{
|
||||||
|
public static class DOTweenModuleAudio
|
||||||
|
{
|
||||||
|
#region Shortcuts
|
||||||
|
|
||||||
|
#region Audio
|
||||||
|
|
||||||
|
/// <summary>Tweens an AudioSource's volume to the given value.
|
||||||
|
/// Also stores the AudioSource as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach (0 to 1)</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<float, float, FloatOptions> DOFade(this AudioSource target, float endValue, float duration)
|
||||||
|
{
|
||||||
|
if (endValue < 0) endValue = 0;
|
||||||
|
else if (endValue > 1) endValue = 1;
|
||||||
|
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.volume, x => target.volume = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens an AudioSource's pitch to the given value.
|
||||||
|
/// Also stores the AudioSource as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<float, float, FloatOptions> DOPitch(this AudioSource target, float endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region AudioMixer
|
||||||
|
|
||||||
|
/// <summary>Tweens an AudioMixer's exposed float to the given value.
|
||||||
|
/// Also stores the AudioMixer as the tween's target so it can be used for filtered operations.
|
||||||
|
/// Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer.</summary>
|
||||||
|
/// <param name="floatName">Name given to the exposed float to set</param>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<float, float, FloatOptions> DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<float, float, FloatOptions> t = DOTween.To(()=> {
|
||||||
|
float currVal;
|
||||||
|
target.GetFloat(floatName, out currVal);
|
||||||
|
return currVal;
|
||||||
|
}, x=> target.SetFloat(floatName, x), endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Operation Shortcuts
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Completes all tweens that have this target as a reference
|
||||||
|
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
||||||
|
/// and returns the total number of tweens completed
|
||||||
|
/// (meaning the tweens that don't have infinite loops and were not already complete)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="withCallbacks">For Sequences only: if TRUE also internal Sequence callbacks will be fired,
|
||||||
|
/// otherwise they will be ignored</param>
|
||||||
|
public static int DOComplete(this AudioMixer target, bool withCallbacks = false)
|
||||||
|
{
|
||||||
|
return DOTween.Complete(target, withCallbacks);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Kills all tweens that have this target as a reference
|
||||||
|
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
||||||
|
/// and returns the total number of tweens killed.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="complete">If TRUE completes the tween before killing it</param>
|
||||||
|
public static int DOKill(this AudioMixer target, bool complete = false)
|
||||||
|
{
|
||||||
|
return DOTween.Kill(target, complete);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference
|
||||||
|
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
||||||
|
/// and returns the total number of tweens flipped.
|
||||||
|
/// </summary>
|
||||||
|
public static int DOFlip(this AudioMixer target)
|
||||||
|
{
|
||||||
|
return DOTween.Flip(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sends to the given position all tweens that have this target as a reference
|
||||||
|
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
||||||
|
/// and returns the total number of tweens involved.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="to">Time position to reach
|
||||||
|
/// (if higher than the whole tween duration the tween will simply reach its end)</param>
|
||||||
|
/// <param name="andPlay">If TRUE will play the tween after reaching the given position, otherwise it will pause it</param>
|
||||||
|
public static int DOGoto(this AudioMixer target, float to, bool andPlay = false)
|
||||||
|
{
|
||||||
|
return DOTween.Goto(target, to, andPlay);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Pauses all tweens that have this target as a reference
|
||||||
|
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
||||||
|
/// and returns the total number of tweens paused.
|
||||||
|
/// </summary>
|
||||||
|
public static int DOPause(this AudioMixer target)
|
||||||
|
{
|
||||||
|
return DOTween.Pause(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Plays all tweens that have this target as a reference
|
||||||
|
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
||||||
|
/// and returns the total number of tweens played.
|
||||||
|
/// </summary>
|
||||||
|
public static int DOPlay(this AudioMixer target)
|
||||||
|
{
|
||||||
|
return DOTween.Play(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Plays backwards all tweens that have this target as a reference
|
||||||
|
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
||||||
|
/// and returns the total number of tweens played.
|
||||||
|
/// </summary>
|
||||||
|
public static int DOPlayBackwards(this AudioMixer target)
|
||||||
|
{
|
||||||
|
return DOTween.PlayBackwards(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Plays forward all tweens that have this target as a reference
|
||||||
|
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
||||||
|
/// and returns the total number of tweens played.
|
||||||
|
/// </summary>
|
||||||
|
public static int DOPlayForward(this AudioMixer target)
|
||||||
|
{
|
||||||
|
return DOTween.PlayForward(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Restarts all tweens that have this target as a reference
|
||||||
|
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
||||||
|
/// and returns the total number of tweens restarted.
|
||||||
|
/// </summary>
|
||||||
|
public static int DORestart(this AudioMixer target)
|
||||||
|
{
|
||||||
|
return DOTween.Restart(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Rewinds all tweens that have this target as a reference
|
||||||
|
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
||||||
|
/// and returns the total number of tweens rewinded.
|
||||||
|
/// </summary>
|
||||||
|
public static int DORewind(this AudioMixer target)
|
||||||
|
{
|
||||||
|
return DOTween.Rewind(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Smoothly rewinds all tweens that have this target as a reference
|
||||||
|
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
||||||
|
/// and returns the total number of tweens rewinded.
|
||||||
|
/// </summary>
|
||||||
|
public static int DOSmoothRewind(this AudioMixer target)
|
||||||
|
{
|
||||||
|
return DOTween.SmoothRewind(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference
|
||||||
|
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
||||||
|
/// and returns the total number of tweens involved.
|
||||||
|
/// </summary>
|
||||||
|
public static int DOTogglePause(this AudioMixer target)
|
||||||
|
{
|
||||||
|
return DOTween.TogglePause(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
11
Assets/DOTween/Modules/DOTweenModuleAudio.cs.meta
Normal file
11
Assets/DOTween/Modules/DOTweenModuleAudio.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 79f8954f1d80fd54db33351ed2152039
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
146
Assets/DOTween/Modules/DOTweenModuleEPOOutline.cs
Normal file
146
Assets/DOTween/Modules/DOTweenModuleEPOOutline.cs
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
#if false || EPO_DOTWEEN // MODULE_MARKER
|
||||||
|
|
||||||
|
using EPOOutline;
|
||||||
|
using DG.Tweening.Plugins.Options;
|
||||||
|
using DG.Tweening;
|
||||||
|
using DG.Tweening.Core;
|
||||||
|
|
||||||
|
namespace DG.Tweening
|
||||||
|
{
|
||||||
|
public static class DOTweenModuleEPOOutline
|
||||||
|
{
|
||||||
|
public static int DOKill(this SerializedPass target, bool complete)
|
||||||
|
{
|
||||||
|
return DOTween.Kill(target, complete);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TweenerCore<float, float, FloatOptions> DOFloat(this SerializedPass target, string propertyName, float endValue, float duration)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.To(() => target.GetFloat(propertyName), x => target.SetFloat(propertyName, x), endValue, duration);
|
||||||
|
tweener.SetOptions(true).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOFade(this SerializedPass target, string propertyName, float endValue, float duration)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.ToAlpha(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration);
|
||||||
|
tweener.SetOptions(true).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOColor(this SerializedPass target, string propertyName, Color endValue, float duration)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.To(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration);
|
||||||
|
tweener.SetOptions(false).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TweenerCore<Vector4, Vector4, VectorOptions> DOVector(this SerializedPass target, string propertyName, Vector4 endValue, float duration)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.To(() => target.GetVector(propertyName), x => target.SetVector(propertyName, x), endValue, duration);
|
||||||
|
tweener.SetOptions(false).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TweenerCore<float, float, FloatOptions> DOFloat(this SerializedPass target, int propertyId, float endValue, float duration)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.To(() => target.GetFloat(propertyId), x => target.SetFloat(propertyId, x), endValue, duration);
|
||||||
|
tweener.SetOptions(true).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOFade(this SerializedPass target, int propertyId, float endValue, float duration)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.ToAlpha(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration);
|
||||||
|
tweener.SetOptions(true).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOColor(this SerializedPass target, int propertyId, Color endValue, float duration)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.To(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration);
|
||||||
|
tweener.SetOptions(false).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TweenerCore<Vector4, Vector4, VectorOptions> DOVector(this SerializedPass target, int propertyId, Vector4 endValue, float duration)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.To(() => target.GetVector(propertyId), x => target.SetVector(propertyId, x), endValue, duration);
|
||||||
|
tweener.SetOptions(false).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int DOKill(this Outlinable.OutlineProperties target, bool complete = false)
|
||||||
|
{
|
||||||
|
return DOTween.Kill(target, complete);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int DOKill(this Outliner target, bool complete = false)
|
||||||
|
{
|
||||||
|
return DOTween.Kill(target, complete);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Controls the alpha (transparency) of the outline
|
||||||
|
/// </summary>
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Outlinable.OutlineProperties target, float endValue, float duration)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.ToAlpha(() => target.Color, x => target.Color = x, endValue, duration);
|
||||||
|
tweener.SetOptions(true).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Controls the color of the outline
|
||||||
|
/// </summary>
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Outlinable.OutlineProperties target, Color endValue, float duration)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.To(() => target.Color, x => target.Color = x, endValue, duration);
|
||||||
|
tweener.SetOptions(false).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Controls the amount of blur applied to the outline
|
||||||
|
/// </summary>
|
||||||
|
public static TweenerCore<float, float, FloatOptions> DOBlurShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration);
|
||||||
|
tweener.SetOptions(snapping).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Controls the amount of blur applied to the outline
|
||||||
|
/// </summary>
|
||||||
|
public static TweenerCore<float, float, FloatOptions> DOBlurShift(this Outliner target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration);
|
||||||
|
tweener.SetOptions(snapping).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Controls the amount of dilation applied to the outline
|
||||||
|
/// </summary>
|
||||||
|
public static TweenerCore<float, float, FloatOptions> DODilateShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration);
|
||||||
|
tweener.SetOptions(snapping).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Controls the amount of dilation applied to the outline
|
||||||
|
/// </summary>
|
||||||
|
public static TweenerCore<float, float, FloatOptions> DODilateShift(this Outliner target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration);
|
||||||
|
tweener.SetOptions(snapping).SetTarget(target);
|
||||||
|
return tweener;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
11
Assets/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta
Normal file
11
Assets/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e3611d721df002f45933ceed8a9ae1ee
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
216
Assets/DOTween/Modules/DOTweenModulePhysics.cs
Normal file
216
Assets/DOTween/Modules/DOTweenModulePhysics.cs
Normal file
@@ -0,0 +1,216 @@
|
|||||||
|
// Author: Daniele Giardini - http://www.demigiant.com
|
||||||
|
// Created: 2018/07/13
|
||||||
|
|
||||||
|
#if true // MODULE_MARKER
|
||||||
|
using System;
|
||||||
|
using DG.Tweening.Core;
|
||||||
|
using DG.Tweening.Core.Enums;
|
||||||
|
using DG.Tweening.Plugins;
|
||||||
|
using DG.Tweening.Plugins.Core.PathCore;
|
||||||
|
using DG.Tweening.Plugins.Options;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
#pragma warning disable 1591
|
||||||
|
namespace DG.Tweening
|
||||||
|
{
|
||||||
|
public static class DOTweenModulePhysics
|
||||||
|
{
|
||||||
|
#region Shortcuts
|
||||||
|
|
||||||
|
#region Rigidbody
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody's position to the given value.
|
||||||
|
/// Also stores the rigidbody as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector3, Vector3, VectorOptions> DOMove(this Rigidbody target, Vector3 endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, endValue, duration);
|
||||||
|
t.SetOptions(snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody's X position to the given value.
|
||||||
|
/// Also stores the rigidbody as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector3, Vector3, VectorOptions> DOMoveX(this Rigidbody target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue, 0, 0), duration);
|
||||||
|
t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody's Y position to the given value.
|
||||||
|
/// Also stores the rigidbody as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector3, Vector3, VectorOptions> DOMoveY(this Rigidbody target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, endValue, 0), duration);
|
||||||
|
t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody's Z position to the given value.
|
||||||
|
/// Also stores the rigidbody as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector3, Vector3, VectorOptions> DOMoveZ(this Rigidbody target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue), duration);
|
||||||
|
t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody's rotation to the given value.
|
||||||
|
/// Also stores the rigidbody as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="mode">Rotation mode</param>
|
||||||
|
public static TweenerCore<Quaternion, Vector3, QuaternionOptions> DORotate(this Rigidbody target, Vector3 endValue, float duration, RotateMode mode = RotateMode.Fast)
|
||||||
|
{
|
||||||
|
TweenerCore<Quaternion, Vector3, QuaternionOptions> t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
t.plugOptions.rotateMode = mode;
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody's rotation so that it will look towards the given position.
|
||||||
|
/// Also stores the rigidbody as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="towards">The position to look at</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="axisConstraint">Eventual axis constraint for the rotation</param>
|
||||||
|
/// <param name="up">The vector that defines in which direction up is (default: Vector3.up)</param>
|
||||||
|
public static TweenerCore<Quaternion, Vector3, QuaternionOptions> DOLookAt(this Rigidbody target, Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3? up = null)
|
||||||
|
{
|
||||||
|
TweenerCore<Quaternion, Vector3, QuaternionOptions> t = DOTween.To(() => target.rotation, target.MoveRotation, towards, duration)
|
||||||
|
.SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetLookAt);
|
||||||
|
t.plugOptions.axisConstraint = axisConstraint;
|
||||||
|
t.plugOptions.up = (up == null) ? Vector3.up : (Vector3)up;
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Special
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody's position to the given value, while also applying a jump effect along the Y axis.
|
||||||
|
/// Returns a Sequence instead of a Tweener.
|
||||||
|
/// Also stores the Rigidbody as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param>
|
||||||
|
/// <param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
|
||||||
|
/// <param name="numJumps">Total number of jumps</param>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static Sequence DOJump(this Rigidbody target, Vector3 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
if (numJumps < 1) numJumps = 1;
|
||||||
|
float startPosY = 0;
|
||||||
|
float offsetY = -1;
|
||||||
|
bool offsetYSet = false;
|
||||||
|
Sequence s = DOTween.Sequence();
|
||||||
|
Tween yTween = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, jumpPower, 0), duration / (numJumps * 2))
|
||||||
|
.SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
|
||||||
|
.SetLoops(numJumps * 2, LoopType.Yoyo)
|
||||||
|
.OnStart(() => startPosY = target.position.y);
|
||||||
|
s.Append(DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue.x, 0, 0), duration)
|
||||||
|
.SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
|
||||||
|
).Join(DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue.z), duration)
|
||||||
|
.SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear)
|
||||||
|
).Join(yTween)
|
||||||
|
.SetTarget(target).SetEase(DOTween.defaultEaseType);
|
||||||
|
yTween.OnUpdate(() => {
|
||||||
|
if (!offsetYSet) {
|
||||||
|
offsetYSet = true;
|
||||||
|
offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
|
||||||
|
}
|
||||||
|
Vector3 pos = target.position;
|
||||||
|
pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad);
|
||||||
|
target.MovePosition(pos);
|
||||||
|
});
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody's position through the given path waypoints, using the chosen path algorithm.
|
||||||
|
/// Also stores the Rigidbody as the tween's target so it can be used for filtered operations.
|
||||||
|
/// <para>NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened.</para>
|
||||||
|
/// <para>BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
|
||||||
|
/// If you plan to publish there you should use a regular transform.DOPath.</para></summary>
|
||||||
|
/// <param name="path">The waypoints to go through</param>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="pathType">The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)</param>
|
||||||
|
/// <param name="pathMode">The path mode: 3D, side-scroller 2D, top-down 2D</param>
|
||||||
|
/// <param name="resolution">The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive.
|
||||||
|
/// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints</param>
|
||||||
|
/// <param name="gizmoColor">The color of the path (shown when gizmos are active in the Play panel and the tween is running)</param>
|
||||||
|
public static TweenerCore<Vector3, Path, PathOptions> DOPath(
|
||||||
|
this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear,
|
||||||
|
PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (resolution < 1) resolution = 1;
|
||||||
|
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, new Path(pathType, path, resolution, gizmoColor), duration)
|
||||||
|
.SetTarget(target).SetUpdate(UpdateType.Fixed);
|
||||||
|
|
||||||
|
t.plugOptions.isRigidbody = true;
|
||||||
|
t.plugOptions.mode = pathMode;
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
/// <summary>Tweens a Rigidbody's localPosition through the given path waypoints, using the chosen path algorithm.
|
||||||
|
/// Also stores the Rigidbody as the tween's target so it can be used for filtered operations
|
||||||
|
/// <para>NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened.</para>
|
||||||
|
/// <para>BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
|
||||||
|
/// If you plan to publish there you should use a regular transform.DOLocalPath.</para></summary>
|
||||||
|
/// <param name="path">The waypoint to go through</param>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="pathType">The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)</param>
|
||||||
|
/// <param name="pathMode">The path mode: 3D, side-scroller 2D, top-down 2D</param>
|
||||||
|
/// <param name="resolution">The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive.
|
||||||
|
/// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints</param>
|
||||||
|
/// <param name="gizmoColor">The color of the path (shown when gizmos are active in the Play panel and the tween is running)</param>
|
||||||
|
public static TweenerCore<Vector3, Path, PathOptions> DOLocalPath(
|
||||||
|
this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear,
|
||||||
|
PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (resolution < 1) resolution = 1;
|
||||||
|
Transform trans = target.transform;
|
||||||
|
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path, resolution, gizmoColor), duration)
|
||||||
|
.SetTarget(target).SetUpdate(UpdateType.Fixed);
|
||||||
|
|
||||||
|
t.plugOptions.isRigidbody = true;
|
||||||
|
t.plugOptions.mode = pathMode;
|
||||||
|
t.plugOptions.useLocalPosition = true;
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
// Used by path editor when creating the actual tween, so it can pass a pre-compiled path
|
||||||
|
internal static TweenerCore<Vector3, Path, PathOptions> DOPath(
|
||||||
|
this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D
|
||||||
|
)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, path, duration)
|
||||||
|
.SetTarget(target);
|
||||||
|
|
||||||
|
t.plugOptions.isRigidbody = true;
|
||||||
|
t.plugOptions.mode = pathMode;
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
internal static TweenerCore<Vector3, Path, PathOptions> DOLocalPath(
|
||||||
|
this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D
|
||||||
|
)
|
||||||
|
{
|
||||||
|
Transform trans = target.transform;
|
||||||
|
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration)
|
||||||
|
.SetTarget(target);
|
||||||
|
|
||||||
|
t.plugOptions.isRigidbody = true;
|
||||||
|
t.plugOptions.mode = pathMode;
|
||||||
|
t.plugOptions.useLocalPosition = true;
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
11
Assets/DOTween/Modules/DOTweenModulePhysics.cs.meta
Normal file
11
Assets/DOTween/Modules/DOTweenModulePhysics.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5bc7756ef72354148a2e7f8a92d26937
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
193
Assets/DOTween/Modules/DOTweenModulePhysics2D.cs
Normal file
193
Assets/DOTween/Modules/DOTweenModulePhysics2D.cs
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
// Author: Daniele Giardini - http://www.demigiant.com
|
||||||
|
// Created: 2018/07/13
|
||||||
|
|
||||||
|
#if true // MODULE_MARKER
|
||||||
|
using System;
|
||||||
|
using DG.Tweening.Core;
|
||||||
|
using DG.Tweening.Plugins;
|
||||||
|
using DG.Tweening.Plugins.Core.PathCore;
|
||||||
|
using DG.Tweening.Plugins.Options;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
#pragma warning disable 1591
|
||||||
|
namespace DG.Tweening
|
||||||
|
{
|
||||||
|
public static class DOTweenModulePhysics2D
|
||||||
|
{
|
||||||
|
#region Shortcuts
|
||||||
|
|
||||||
|
#region Rigidbody2D Shortcuts
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody2D's position to the given value.
|
||||||
|
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOMove(this Rigidbody2D target, Vector2 endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, endValue, duration);
|
||||||
|
t.SetOptions(snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody2D's X position to the given value.
|
||||||
|
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOMoveX(this Rigidbody2D target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector2(endValue, 0), duration);
|
||||||
|
t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody2D's Y position to the given value.
|
||||||
|
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOMoveY(this Rigidbody2D target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector2(0, endValue), duration);
|
||||||
|
t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody2D's rotation to the given value.
|
||||||
|
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<float, float, FloatOptions> DORotate(this Rigidbody2D target, float endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Special
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis.
|
||||||
|
/// Returns a Sequence instead of a Tweener.
|
||||||
|
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations.
|
||||||
|
/// <para>IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position</para></summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param>
|
||||||
|
/// <param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
|
||||||
|
/// <param name="numJumps">Total number of jumps</param>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static Sequence DOJump(this Rigidbody2D target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
if (numJumps < 1) numJumps = 1;
|
||||||
|
float startPosY = 0;
|
||||||
|
float offsetY = -1;
|
||||||
|
bool offsetYSet = false;
|
||||||
|
Sequence s = DOTween.Sequence();
|
||||||
|
Tween yTween = DOTween.To(() => target.position, x => target.position = x, new Vector2(0, jumpPower), duration / (numJumps * 2))
|
||||||
|
.SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
|
||||||
|
.SetLoops(numJumps * 2, LoopType.Yoyo)
|
||||||
|
.OnStart(() => startPosY = target.position.y);
|
||||||
|
s.Append(DOTween.To(() => target.position, x => target.position = x, new Vector2(endValue.x, 0), duration)
|
||||||
|
.SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
|
||||||
|
).Join(yTween)
|
||||||
|
.SetTarget(target).SetEase(DOTween.defaultEaseType);
|
||||||
|
yTween.OnUpdate(() => {
|
||||||
|
if (!offsetYSet) {
|
||||||
|
offsetYSet = true;
|
||||||
|
offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
|
||||||
|
}
|
||||||
|
Vector3 pos = target.position;
|
||||||
|
pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad);
|
||||||
|
target.MovePosition(pos);
|
||||||
|
});
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Rigidbody2D's position through the given path waypoints, using the chosen path algorithm.
|
||||||
|
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations.
|
||||||
|
/// <para>NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened.</para>
|
||||||
|
/// <para>BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
|
||||||
|
/// If you plan to publish there you should use a regular transform.DOPath.</para></summary>
|
||||||
|
/// <param name="path">The waypoints to go through</param>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="pathType">The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)</param>
|
||||||
|
/// <param name="pathMode">The path mode: 3D, side-scroller 2D, top-down 2D</param>
|
||||||
|
/// <param name="resolution">The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive.
|
||||||
|
/// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints</param>
|
||||||
|
/// <param name="gizmoColor">The color of the path (shown when gizmos are active in the Play panel and the tween is running)</param>
|
||||||
|
public static TweenerCore<Vector3, Path, PathOptions> DOPath(
|
||||||
|
this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear,
|
||||||
|
PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (resolution < 1) resolution = 1;
|
||||||
|
int len = path.Length;
|
||||||
|
Vector3[] path3D = new Vector3[len];
|
||||||
|
for (int i = 0; i < len; ++i) path3D[i] = path[i];
|
||||||
|
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), new Path(pathType, path3D, resolution, gizmoColor), duration)
|
||||||
|
.SetTarget(target).SetUpdate(UpdateType.Fixed);
|
||||||
|
|
||||||
|
t.plugOptions.isRigidbody2D = true;
|
||||||
|
t.plugOptions.mode = pathMode;
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
/// <summary>Tweens a Rigidbody2D's localPosition through the given path waypoints, using the chosen path algorithm.
|
||||||
|
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
|
||||||
|
/// <para>NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened.</para>
|
||||||
|
/// <para>BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
|
||||||
|
/// If you plan to publish there you should use a regular transform.DOLocalPath.</para></summary>
|
||||||
|
/// <param name="path">The waypoint to go through</param>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="pathType">The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)</param>
|
||||||
|
/// <param name="pathMode">The path mode: 3D, side-scroller 2D, top-down 2D</param>
|
||||||
|
/// <param name="resolution">The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive.
|
||||||
|
/// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints</param>
|
||||||
|
/// <param name="gizmoColor">The color of the path (shown when gizmos are active in the Play panel and the tween is running)</param>
|
||||||
|
public static TweenerCore<Vector3, Path, PathOptions> DOLocalPath(
|
||||||
|
this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear,
|
||||||
|
PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (resolution < 1) resolution = 1;
|
||||||
|
int len = path.Length;
|
||||||
|
Vector3[] path3D = new Vector3[len];
|
||||||
|
for (int i = 0; i < len; ++i) path3D[i] = path[i];
|
||||||
|
Transform trans = target.transform;
|
||||||
|
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path3D, resolution, gizmoColor), duration)
|
||||||
|
.SetTarget(target).SetUpdate(UpdateType.Fixed);
|
||||||
|
|
||||||
|
t.plugOptions.isRigidbody2D = true;
|
||||||
|
t.plugOptions.mode = pathMode;
|
||||||
|
t.plugOptions.useLocalPosition = true;
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
// Used by path editor when creating the actual tween, so it can pass a pre-compiled path
|
||||||
|
internal static TweenerCore<Vector3, Path, PathOptions> DOPath(
|
||||||
|
this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D
|
||||||
|
)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), path, duration)
|
||||||
|
.SetTarget(target);
|
||||||
|
|
||||||
|
t.plugOptions.isRigidbody2D = true;
|
||||||
|
t.plugOptions.mode = pathMode;
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
internal static TweenerCore<Vector3, Path, PathOptions> DOLocalPath(
|
||||||
|
this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D
|
||||||
|
)
|
||||||
|
{
|
||||||
|
Transform trans = target.transform;
|
||||||
|
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration)
|
||||||
|
.SetTarget(target);
|
||||||
|
|
||||||
|
t.plugOptions.isRigidbody2D = true;
|
||||||
|
t.plugOptions.mode = pathMode;
|
||||||
|
t.plugOptions.useLocalPosition = true;
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
11
Assets/DOTween/Modules/DOTweenModulePhysics2D.cs.meta
Normal file
11
Assets/DOTween/Modules/DOTweenModulePhysics2D.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8b9c98f0231c596479d7c201d1a23ebe
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
93
Assets/DOTween/Modules/DOTweenModuleSprite.cs
Normal file
93
Assets/DOTween/Modules/DOTweenModuleSprite.cs
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
// Author: Daniele Giardini - http://www.demigiant.com
|
||||||
|
// Created: 2018/07/13
|
||||||
|
|
||||||
|
#if true // MODULE_MARKER
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
using DG.Tweening.Core;
|
||||||
|
using DG.Tweening.Plugins.Options;
|
||||||
|
|
||||||
|
#pragma warning disable 1591
|
||||||
|
namespace DG.Tweening
|
||||||
|
{
|
||||||
|
public static class DOTweenModuleSprite
|
||||||
|
{
|
||||||
|
#region Shortcuts
|
||||||
|
|
||||||
|
#region SpriteRenderer
|
||||||
|
|
||||||
|
/// <summary>Tweens a SpriteRenderer's color to the given value.
|
||||||
|
/// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOColor(this SpriteRenderer target, Color endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Material's alpha color to the given value.
|
||||||
|
/// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOFade(this SpriteRenderer target, float endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a SpriteRenderer's color using the given gradient
|
||||||
|
/// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
|
||||||
|
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="gradient">The gradient to use</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration)
|
||||||
|
{
|
||||||
|
Sequence s = DOTween.Sequence();
|
||||||
|
GradientColorKey[] colors = gradient.colorKeys;
|
||||||
|
int len = colors.Length;
|
||||||
|
for (int i = 0; i < len; ++i) {
|
||||||
|
GradientColorKey c = colors[i];
|
||||||
|
if (i == 0 && c.time <= 0) {
|
||||||
|
target.color = c.color;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
float colorDuration = i == len - 1
|
||||||
|
? duration - s.Duration(false) // Verifies that total duration is correct
|
||||||
|
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
|
||||||
|
s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
|
||||||
|
}
|
||||||
|
s.SetTarget(target);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Blendables
|
||||||
|
|
||||||
|
#region SpriteRenderer
|
||||||
|
|
||||||
|
/// <summary>Tweens a SpriteRenderer's color to the given value,
|
||||||
|
/// in a way that allows other DOBlendableColor tweens to work together on the same target,
|
||||||
|
/// instead than fight each other as multiple DOColor would do.
|
||||||
|
/// Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration)
|
||||||
|
{
|
||||||
|
endValue = endValue - target.color;
|
||||||
|
Color to = new Color(0, 0, 0, 0);
|
||||||
|
return DOTween.To(() => to, x => {
|
||||||
|
Color diff = x - to;
|
||||||
|
to = x;
|
||||||
|
target.color += diff;
|
||||||
|
}, endValue, duration)
|
||||||
|
.Blendable().SetTarget(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
11
Assets/DOTween/Modules/DOTweenModuleSprite.cs.meta
Normal file
11
Assets/DOTween/Modules/DOTweenModuleSprite.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ed0c803071031de43a04893cf85633a4
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
662
Assets/DOTween/Modules/DOTweenModuleUI.cs
Normal file
662
Assets/DOTween/Modules/DOTweenModuleUI.cs
Normal file
@@ -0,0 +1,662 @@
|
|||||||
|
// Author: Daniele Giardini - http://www.demigiant.com
|
||||||
|
// Created: 2018/07/13
|
||||||
|
|
||||||
|
#if true // MODULE_MARKER
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using DG.Tweening.Core;
|
||||||
|
using DG.Tweening.Core.Enums;
|
||||||
|
using DG.Tweening.Plugins;
|
||||||
|
using DG.Tweening.Plugins.Options;
|
||||||
|
using Outline = UnityEngine.UI.Outline;
|
||||||
|
using Text = UnityEngine.UI.Text;
|
||||||
|
|
||||||
|
#pragma warning disable 1591
|
||||||
|
namespace DG.Tweening
|
||||||
|
{
|
||||||
|
public static class DOTweenModuleUI
|
||||||
|
{
|
||||||
|
#region Shortcuts
|
||||||
|
|
||||||
|
#region CanvasGroup
|
||||||
|
|
||||||
|
/// <summary>Tweens a CanvasGroup's alpha color to the given value.
|
||||||
|
/// Also stores the canvasGroup as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<float, float, FloatOptions> DOFade(this CanvasGroup target, float endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.alpha, x => target.alpha = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Graphic
|
||||||
|
|
||||||
|
/// <summary>Tweens an Graphic's color to the given value.
|
||||||
|
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Graphic target, Color endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens an Graphic's alpha color to the given value.
|
||||||
|
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Graphic target, float endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Image
|
||||||
|
|
||||||
|
/// <summary>Tweens an Image's color to the given value.
|
||||||
|
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Image target, Color endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens an Image's alpha color to the given value.
|
||||||
|
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Image target, float endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens an Image's fillAmount to the given value.
|
||||||
|
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach (0 to 1)</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<float, float, FloatOptions> DOFillAmount(this Image target, float endValue, float duration)
|
||||||
|
{
|
||||||
|
if (endValue > 1) endValue = 1;
|
||||||
|
else if (endValue < 0) endValue = 0;
|
||||||
|
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.fillAmount, x => target.fillAmount = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens an Image's colors using the given gradient
|
||||||
|
/// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
|
||||||
|
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="gradient">The gradient to use</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static Sequence DOGradientColor(this Image target, Gradient gradient, float duration)
|
||||||
|
{
|
||||||
|
Sequence s = DOTween.Sequence();
|
||||||
|
GradientColorKey[] colors = gradient.colorKeys;
|
||||||
|
int len = colors.Length;
|
||||||
|
for (int i = 0; i < len; ++i) {
|
||||||
|
GradientColorKey c = colors[i];
|
||||||
|
if (i == 0 && c.time <= 0) {
|
||||||
|
target.color = c.color;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
float colorDuration = i == len - 1
|
||||||
|
? duration - s.Duration(false) // Verifies that total duration is correct
|
||||||
|
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
|
||||||
|
s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
|
||||||
|
}
|
||||||
|
s.SetTarget(target);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region LayoutElement
|
||||||
|
|
||||||
|
/// <summary>Tweens an LayoutElement's flexibleWidth/Height to the given value.
|
||||||
|
/// Also stores the LayoutElement as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOFlexibleSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => new Vector2(target.flexibleWidth, target.flexibleHeight), x => {
|
||||||
|
target.flexibleWidth = x.x;
|
||||||
|
target.flexibleHeight = x.y;
|
||||||
|
}, endValue, duration);
|
||||||
|
t.SetOptions(snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens an LayoutElement's minWidth/Height to the given value.
|
||||||
|
/// Also stores the LayoutElement as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOMinSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => new Vector2(target.minWidth, target.minHeight), x => {
|
||||||
|
target.minWidth = x.x;
|
||||||
|
target.minHeight = x.y;
|
||||||
|
}, endValue, duration);
|
||||||
|
t.SetOptions(snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens an LayoutElement's preferredWidth/Height to the given value.
|
||||||
|
/// Also stores the LayoutElement as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOPreferredSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => new Vector2(target.preferredWidth, target.preferredHeight), x => {
|
||||||
|
target.preferredWidth = x.x;
|
||||||
|
target.preferredHeight = x.y;
|
||||||
|
}, endValue, duration);
|
||||||
|
t.SetOptions(snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Outline
|
||||||
|
|
||||||
|
/// <summary>Tweens a Outline's effectColor to the given value.
|
||||||
|
/// Also stores the Outline as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Outline target, Color endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.effectColor, x => target.effectColor = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Outline's effectColor alpha to the given value.
|
||||||
|
/// Also stores the Outline as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Outline target, float endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.effectColor, x => target.effectColor = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Outline's effectDistance to the given value.
|
||||||
|
/// Also stores the Outline as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOScale(this Outline target, Vector2 endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.effectDistance, x => target.effectDistance = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region RectTransform
|
||||||
|
|
||||||
|
/// <summary>Tweens a RectTransform's anchoredPosition to the given value.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorPos(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, endValue, duration);
|
||||||
|
t.SetOptions(snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
/// <summary>Tweens a RectTransform's anchoredPosition X to the given value.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorPosX(this RectTransform target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue, 0), duration);
|
||||||
|
t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
/// <summary>Tweens a RectTransform's anchoredPosition Y to the given value.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorPosY(this RectTransform target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, endValue), duration);
|
||||||
|
t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a RectTransform's anchoredPosition3D to the given value.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector3, Vector3, VectorOptions> DOAnchorPos3D(this RectTransform target, Vector3 endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, endValue, duration);
|
||||||
|
t.SetOptions(snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
/// <summary>Tweens a RectTransform's anchoredPosition3D X to the given value.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector3, Vector3, VectorOptions> DOAnchorPos3DX(this RectTransform target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(endValue, 0, 0), duration);
|
||||||
|
t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
/// <summary>Tweens a RectTransform's anchoredPosition3D Y to the given value.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector3, Vector3, VectorOptions> DOAnchorPos3DY(this RectTransform target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, endValue, 0), duration);
|
||||||
|
t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
/// <summary>Tweens a RectTransform's anchoredPosition3D Z to the given value.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector3, Vector3, VectorOptions> DOAnchorPos3DZ(this RectTransform target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, 0, endValue), duration);
|
||||||
|
t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a RectTransform's anchorMax to the given value.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorMax(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchorMax, x => target.anchorMax = x, endValue, duration);
|
||||||
|
t.SetOptions(snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a RectTransform's anchorMin to the given value.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorMin(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchorMin, x => target.anchorMin = x, endValue, duration);
|
||||||
|
t.SetOptions(snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a RectTransform's pivot to the given value.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOPivot(this RectTransform target, Vector2 endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.pivot, x => target.pivot = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
/// <summary>Tweens a RectTransform's pivot X to the given value.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOPivotX(this RectTransform target, float endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(endValue, 0), duration);
|
||||||
|
t.SetOptions(AxisConstraint.X).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
/// <summary>Tweens a RectTransform's pivot Y to the given value.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOPivotY(this RectTransform target, float endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(0, endValue), duration);
|
||||||
|
t.SetOptions(AxisConstraint.Y).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a RectTransform's sizeDelta to the given value.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOSizeDelta(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.sizeDelta, x => target.sizeDelta = x, endValue, duration);
|
||||||
|
t.SetOptions(snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Punches a RectTransform's anchoredPosition towards the given direction and then back to the starting one
|
||||||
|
/// as if it was connected to the starting position via an elastic.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="punch">The direction and strength of the punch (added to the RectTransform's current position)</param>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="vibrato">Indicates how much will the punch vibrate</param>
|
||||||
|
/// <param name="elasticity">Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards.
|
||||||
|
/// 1 creates a full oscillation between the punch direction and the opposite direction,
|
||||||
|
/// while 0 oscillates only between the punch and the start position</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static Tweener DOPunchAnchorPos(this RectTransform target, Vector2 punch, float duration, int vibrato = 10, float elasticity = 1, bool snapping = false)
|
||||||
|
{
|
||||||
|
return DOTween.Punch(() => target.anchoredPosition, x => target.anchoredPosition = x, punch, duration, vibrato, elasticity)
|
||||||
|
.SetTarget(target).SetOptions(snapping);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Shakes a RectTransform's anchoredPosition with the given values.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="strength">The shake strength</param>
|
||||||
|
/// <param name="vibrato">Indicates how much will the shake vibrate</param>
|
||||||
|
/// <param name="randomness">Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
|
||||||
|
/// Setting it to 0 will shake along a single direction.</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
/// <param name="fadeOut">If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not</param>
|
||||||
|
/// <param name="randomnessMode">Randomness mode</param>
|
||||||
|
public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, float strength = 100, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full)
|
||||||
|
{
|
||||||
|
return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, true, fadeOut, randomnessMode)
|
||||||
|
.SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping);
|
||||||
|
}
|
||||||
|
/// <summary>Shakes a RectTransform's anchoredPosition with the given values.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="strength">The shake strength on each axis</param>
|
||||||
|
/// <param name="vibrato">Indicates how much will the shake vibrate</param>
|
||||||
|
/// <param name="randomness">Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
|
||||||
|
/// Setting it to 0 will shake along a single direction.</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
/// <param name="fadeOut">If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not</param>
|
||||||
|
/// <param name="randomnessMode">Randomness mode</param>
|
||||||
|
public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, Vector2 strength, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full)
|
||||||
|
{
|
||||||
|
return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, fadeOut, randomnessMode)
|
||||||
|
.SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Special
|
||||||
|
|
||||||
|
/// <summary>Tweens a RectTransform's anchoredPosition to the given value, while also applying a jump effect along the Y axis.
|
||||||
|
/// Returns a Sequence instead of a Tweener.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param>
|
||||||
|
/// <param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
|
||||||
|
/// <param name="numJumps">Total number of jumps</param>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static Sequence DOJumpAnchorPos(this RectTransform target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
if (numJumps < 1) numJumps = 1;
|
||||||
|
float startPosY = 0;
|
||||||
|
float offsetY = -1;
|
||||||
|
bool offsetYSet = false;
|
||||||
|
|
||||||
|
// Separate Y Tween so we can elaborate elapsedPercentage on that insted of on the Sequence
|
||||||
|
// (in case users add a delay or other elements to the Sequence)
|
||||||
|
Sequence s = DOTween.Sequence();
|
||||||
|
Tween yTween = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, jumpPower), duration / (numJumps * 2))
|
||||||
|
.SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
|
||||||
|
.SetLoops(numJumps * 2, LoopType.Yoyo)
|
||||||
|
.OnStart(()=> startPosY = target.anchoredPosition.y);
|
||||||
|
s.Append(DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue.x, 0), duration)
|
||||||
|
.SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
|
||||||
|
).Join(yTween)
|
||||||
|
.SetTarget(target).SetEase(DOTween.defaultEaseType);
|
||||||
|
s.OnUpdate(() => {
|
||||||
|
if (!offsetYSet) {
|
||||||
|
offsetYSet = true;
|
||||||
|
offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
|
||||||
|
}
|
||||||
|
Vector2 pos = target.anchoredPosition;
|
||||||
|
pos.y += DOVirtual.EasedValue(0, offsetY, s.ElapsedDirectionalPercentage(), Ease.OutQuad);
|
||||||
|
target.anchoredPosition = pos;
|
||||||
|
});
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ScrollRect
|
||||||
|
|
||||||
|
/// <summary>Tweens a ScrollRect's horizontal/verticalNormalizedPosition to the given value.
|
||||||
|
/// Also stores the ScrollRect as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static Tweener DONormalizedPos(this ScrollRect target, Vector2 endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
return DOTween.To(() => new Vector2(target.horizontalNormalizedPosition, target.verticalNormalizedPosition),
|
||||||
|
x => {
|
||||||
|
target.horizontalNormalizedPosition = x.x;
|
||||||
|
target.verticalNormalizedPosition = x.y;
|
||||||
|
}, endValue, duration)
|
||||||
|
.SetOptions(snapping).SetTarget(target);
|
||||||
|
}
|
||||||
|
/// <summary>Tweens a ScrollRect's horizontalNormalizedPosition to the given value.
|
||||||
|
/// Also stores the ScrollRect as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static Tweener DOHorizontalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
return DOTween.To(() => target.horizontalNormalizedPosition, x => target.horizontalNormalizedPosition = x, endValue, duration)
|
||||||
|
.SetOptions(snapping).SetTarget(target);
|
||||||
|
}
|
||||||
|
/// <summary>Tweens a ScrollRect's verticalNormalizedPosition to the given value.
|
||||||
|
/// Also stores the ScrollRect as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static Tweener DOVerticalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
return DOTween.To(() => target.verticalNormalizedPosition, x => target.verticalNormalizedPosition = x, endValue, duration)
|
||||||
|
.SetOptions(snapping).SetTarget(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Slider
|
||||||
|
|
||||||
|
/// <summary>Tweens a Slider's value to the given value.
|
||||||
|
/// Also stores the Slider as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<float, float, FloatOptions> DOValue(this Slider target, float endValue, float duration, bool snapping = false)
|
||||||
|
{
|
||||||
|
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.value, x => target.value = x, endValue, duration);
|
||||||
|
t.SetOptions(snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Text
|
||||||
|
|
||||||
|
/// <summary>Tweens a Text's color to the given value.
|
||||||
|
/// Also stores the Text as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Text target, Color endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tweens a Text's text from one integer to another, with options for thousands separators
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fromValue">The value to start from</param>
|
||||||
|
/// <param name="endValue">The end value to reach</param>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="addThousandsSeparator">If TRUE (default) also adds thousands separators</param>
|
||||||
|
/// <param name="culture">The <see cref="CultureInfo"/> to use (InvariantCulture if NULL)</param>
|
||||||
|
public static TweenerCore<int, int, NoOptions> DOCounter(
|
||||||
|
this Text target, int fromValue, int endValue, float duration, bool addThousandsSeparator = true, CultureInfo culture = null
|
||||||
|
){
|
||||||
|
int v = fromValue;
|
||||||
|
CultureInfo cInfo = !addThousandsSeparator ? null : culture ?? CultureInfo.InvariantCulture;
|
||||||
|
TweenerCore<int, int, NoOptions> t = DOTween.To(() => v, x => {
|
||||||
|
v = x;
|
||||||
|
target.text = addThousandsSeparator
|
||||||
|
? v.ToString("N0", cInfo)
|
||||||
|
: v.ToString();
|
||||||
|
}, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Text's alpha color to the given value.
|
||||||
|
/// Also stores the Text as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Text target, float endValue, float duration)
|
||||||
|
{
|
||||||
|
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Text's text to the given value.
|
||||||
|
/// Also stores the Text as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end string to tween to</param><param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="richTextEnabled">If TRUE (default), rich text will be interpreted correctly while animated,
|
||||||
|
/// otherwise all tags will be considered as normal text</param>
|
||||||
|
/// <param name="scrambleMode">The type of scramble mode to use, if any</param>
|
||||||
|
/// <param name="scrambleChars">A string containing the characters to use for scrambling.
|
||||||
|
/// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters.
|
||||||
|
/// Leave it to NULL (default) to use default ones</param>
|
||||||
|
public static TweenerCore<string, string, StringOptions> DOText(this Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null)
|
||||||
|
{
|
||||||
|
if (endValue == null) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogWarning("You can't pass a NULL string to DOText: an empty string will be used instead to avoid errors");
|
||||||
|
endValue = "";
|
||||||
|
}
|
||||||
|
TweenerCore<string, string, StringOptions> t = DOTween.To(() => target.text, x => target.text = x, endValue, duration);
|
||||||
|
t.SetOptions(richTextEnabled, scrambleMode, scrambleChars)
|
||||||
|
.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Blendables
|
||||||
|
|
||||||
|
#region Graphic
|
||||||
|
|
||||||
|
/// <summary>Tweens a Graphic's color to the given value,
|
||||||
|
/// in a way that allows other DOBlendableColor tweens to work together on the same target,
|
||||||
|
/// instead than fight each other as multiple DOColor would do.
|
||||||
|
/// Also stores the Graphic as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static Tweener DOBlendableColor(this Graphic target, Color endValue, float duration)
|
||||||
|
{
|
||||||
|
endValue = endValue - target.color;
|
||||||
|
Color to = new Color(0, 0, 0, 0);
|
||||||
|
return DOTween.To(() => to, x => {
|
||||||
|
Color diff = x - to;
|
||||||
|
to = x;
|
||||||
|
target.color += diff;
|
||||||
|
}, endValue, duration)
|
||||||
|
.Blendable().SetTarget(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Image
|
||||||
|
|
||||||
|
/// <summary>Tweens a Image's color to the given value,
|
||||||
|
/// in a way that allows other DOBlendableColor tweens to work together on the same target,
|
||||||
|
/// instead than fight each other as multiple DOColor would do.
|
||||||
|
/// Also stores the Image as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static Tweener DOBlendableColor(this Image target, Color endValue, float duration)
|
||||||
|
{
|
||||||
|
endValue = endValue - target.color;
|
||||||
|
Color to = new Color(0, 0, 0, 0);
|
||||||
|
return DOTween.To(() => to, x => {
|
||||||
|
Color diff = x - to;
|
||||||
|
to = x;
|
||||||
|
target.color += diff;
|
||||||
|
}, endValue, duration)
|
||||||
|
.Blendable().SetTarget(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Text
|
||||||
|
|
||||||
|
/// <summary>Tweens a Text's color BY the given value,
|
||||||
|
/// in a way that allows other DOBlendableColor tweens to work together on the same target,
|
||||||
|
/// instead than fight each other as multiple DOColor would do.
|
||||||
|
/// Also stores the Text as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static Tweener DOBlendableColor(this Text target, Color endValue, float duration)
|
||||||
|
{
|
||||||
|
endValue = endValue - target.color;
|
||||||
|
Color to = new Color(0, 0, 0, 0);
|
||||||
|
return DOTween.To(() => to, x => {
|
||||||
|
Color diff = x - to;
|
||||||
|
to = x;
|
||||||
|
target.color += diff;
|
||||||
|
}, endValue, duration)
|
||||||
|
.Blendable().SetTarget(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Shapes
|
||||||
|
|
||||||
|
/// <summary>Tweens a RectTransform's anchoredPosition so that it draws a circle around the given center.
|
||||||
|
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations.<para/>
|
||||||
|
/// IMPORTANT: SetFrom(value) requires a <see cref="Vector2"/> instead of a float, where the X property represents the "from degrees value"</summary>
|
||||||
|
/// <param name="center">Circle-center/pivot around which to rotate (in UI anchoredPosition coordinates)</param>
|
||||||
|
/// <param name="endValueDegrees">The end value degrees to reach (to rotate counter-clockwise pass a negative value)</param>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
/// <param name="relativeCenter">If TRUE the <see cref="center"/> coordinates will be considered as relative to the target's current anchoredPosition</param>
|
||||||
|
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, CircleOptions> DOShapeCircle(
|
||||||
|
this RectTransform target, Vector2 center, float endValueDegrees, float duration, bool relativeCenter = false, bool snapping = false
|
||||||
|
)
|
||||||
|
{
|
||||||
|
TweenerCore<Vector2, Vector2, CircleOptions> t = DOTween.To(
|
||||||
|
CirclePlugin.Get(), () => target.anchoredPosition, x => target.anchoredPosition = x, center, duration
|
||||||
|
);
|
||||||
|
t.SetOptions(endValueDegrees, relativeCenter, snapping).SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
||||||
|
// ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████
|
||||||
|
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
||||||
|
|
||||||
|
public static class Utils
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Converts the anchoredPosition of the first RectTransform to the second RectTransform,
|
||||||
|
/// taking into consideration offset, anchors and pivot, and returns the new anchoredPosition
|
||||||
|
/// </summary>
|
||||||
|
public static Vector2 SwitchToRectTransform(RectTransform from, RectTransform to)
|
||||||
|
{
|
||||||
|
Vector2 localPoint;
|
||||||
|
Vector2 fromPivotDerivedOffset = new Vector2(from.rect.width * 0.5f + from.rect.xMin, from.rect.height * 0.5f + from.rect.yMin);
|
||||||
|
Vector2 screenP = RectTransformUtility.WorldToScreenPoint(null, from.position);
|
||||||
|
screenP += fromPivotDerivedOffset;
|
||||||
|
RectTransformUtility.ScreenPointToLocalPointInRectangle(to, screenP, null, out localPoint);
|
||||||
|
Vector2 pivotDerivedOffset = new Vector2(to.rect.width * 0.5f + to.rect.xMin, to.rect.height * 0.5f + to.rect.yMin);
|
||||||
|
return to.anchoredPosition + localPoint - pivotDerivedOffset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
11
Assets/DOTween/Modules/DOTweenModuleUI.cs.meta
Normal file
11
Assets/DOTween/Modules/DOTweenModuleUI.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0939b1841b95a9b4582da04055191349
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
389
Assets/DOTween/Modules/DOTweenModuleUnityVersion.cs
Normal file
389
Assets/DOTween/Modules/DOTweenModuleUnityVersion.cs
Normal file
@@ -0,0 +1,389 @@
|
|||||||
|
// Author: Daniele Giardini - http://www.demigiant.com
|
||||||
|
// Created: 2018/07/13
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
using DG.Tweening.Core;
|
||||||
|
using DG.Tweening.Plugins.Options;
|
||||||
|
//#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0)
|
||||||
|
//using Task = System.Threading.Tasks.Task;
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
#pragma warning disable 1591
|
||||||
|
namespace DG.Tweening
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Shortcuts/functions that are not strictly related to specific Modules
|
||||||
|
/// but are available only on some Unity versions
|
||||||
|
/// </summary>
|
||||||
|
public static class DOTweenModuleUnityVersion
|
||||||
|
{
|
||||||
|
#region Material
|
||||||
|
|
||||||
|
/// <summary>Tweens a Material's color using the given gradient
|
||||||
|
/// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
|
||||||
|
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="gradient">The gradient to use</param><param name="duration">The duration of the tween</param>
|
||||||
|
public static Sequence DOGradientColor(this Material target, Gradient gradient, float duration)
|
||||||
|
{
|
||||||
|
Sequence s = DOTween.Sequence();
|
||||||
|
GradientColorKey[] colors = gradient.colorKeys;
|
||||||
|
int len = colors.Length;
|
||||||
|
for (int i = 0; i < len; ++i) {
|
||||||
|
GradientColorKey c = colors[i];
|
||||||
|
if (i == 0 && c.time <= 0) {
|
||||||
|
target.color = c.color;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
float colorDuration = i == len - 1
|
||||||
|
? duration - s.Duration(false) // Verifies that total duration is correct
|
||||||
|
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
|
||||||
|
s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
|
||||||
|
}
|
||||||
|
s.SetTarget(target);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
/// <summary>Tweens a Material's named color property using the given gradient
|
||||||
|
/// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
|
||||||
|
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="gradient">The gradient to use</param>
|
||||||
|
/// <param name="property">The name of the material property to tween (like _Tint or _SpecColor)</param>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
public static Sequence DOGradientColor(this Material target, Gradient gradient, string property, float duration)
|
||||||
|
{
|
||||||
|
Sequence s = DOTween.Sequence();
|
||||||
|
GradientColorKey[] colors = gradient.colorKeys;
|
||||||
|
int len = colors.Length;
|
||||||
|
for (int i = 0; i < len; ++i) {
|
||||||
|
GradientColorKey c = colors[i];
|
||||||
|
if (i == 0 && c.time <= 0) {
|
||||||
|
target.SetColor(property, c.color);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
float colorDuration = i == len - 1
|
||||||
|
? duration - s.Duration(false) // Verifies that total duration is correct
|
||||||
|
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
|
||||||
|
s.Append(target.DOColor(c.color, property, colorDuration).SetEase(Ease.Linear));
|
||||||
|
}
|
||||||
|
s.SetTarget(target);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region CustomYieldInstructions
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed or complete.
|
||||||
|
/// It can be used inside a coroutine as a yield.
|
||||||
|
/// <para>Example usage:</para><code>yield return myTween.WaitForCompletion(true);</code>
|
||||||
|
/// </summary>
|
||||||
|
public static CustomYieldInstruction WaitForCompletion(this Tween t, bool returnCustomYieldInstruction)
|
||||||
|
{
|
||||||
|
if (!t.active) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return new DOTweenCYInstruction.WaitForCompletion(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed or rewinded.
|
||||||
|
/// It can be used inside a coroutine as a yield.
|
||||||
|
/// <para>Example usage:</para><code>yield return myTween.WaitForRewind();</code>
|
||||||
|
/// </summary>
|
||||||
|
public static CustomYieldInstruction WaitForRewind(this Tween t, bool returnCustomYieldInstruction)
|
||||||
|
{
|
||||||
|
if (!t.active) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return new DOTweenCYInstruction.WaitForRewind(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed.
|
||||||
|
/// It can be used inside a coroutine as a yield.
|
||||||
|
/// <para>Example usage:</para><code>yield return myTween.WaitForKill();</code>
|
||||||
|
/// </summary>
|
||||||
|
public static CustomYieldInstruction WaitForKill(this Tween t, bool returnCustomYieldInstruction)
|
||||||
|
{
|
||||||
|
if (!t.active) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return new DOTweenCYInstruction.WaitForKill(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed or has gone through the given amount of loops.
|
||||||
|
/// It can be used inside a coroutine as a yield.
|
||||||
|
/// <para>Example usage:</para><code>yield return myTween.WaitForElapsedLoops(2);</code>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="elapsedLoops">Elapsed loops to wait for</param>
|
||||||
|
public static CustomYieldInstruction WaitForElapsedLoops(this Tween t, int elapsedLoops, bool returnCustomYieldInstruction)
|
||||||
|
{
|
||||||
|
if (!t.active) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return new DOTweenCYInstruction.WaitForElapsedLoops(t, elapsedLoops);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed
|
||||||
|
/// or has reached the given time position (loops included, delays excluded).
|
||||||
|
/// It can be used inside a coroutine as a yield.
|
||||||
|
/// <para>Example usage:</para><code>yield return myTween.WaitForPosition(2.5f);</code>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="position">Position (loops included, delays excluded) to wait for</param>
|
||||||
|
public static CustomYieldInstruction WaitForPosition(this Tween t, float position, bool returnCustomYieldInstruction)
|
||||||
|
{
|
||||||
|
if (!t.active) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return new DOTweenCYInstruction.WaitForPosition(t, position);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed or started
|
||||||
|
/// (meaning when the tween is set in a playing state the first time, after any eventual delay).
|
||||||
|
/// It can be used inside a coroutine as a yield.
|
||||||
|
/// <para>Example usage:</para><code>yield return myTween.WaitForStart();</code>
|
||||||
|
/// </summary>
|
||||||
|
public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction)
|
||||||
|
{
|
||||||
|
if (!t.active) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return new DOTweenCYInstruction.WaitForStart(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#if UNITY_2018_1_OR_NEWER
|
||||||
|
#region Unity 2018.1 or Newer
|
||||||
|
|
||||||
|
#region Material
|
||||||
|
|
||||||
|
/// <summary>Tweens a Material's named texture offset property with the given ID to the given value.
|
||||||
|
/// Also stores the material as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param>
|
||||||
|
/// <param name="propertyID">The ID of the material property to tween (also called nameID in Unity's manual)</param>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOOffset(this Material target, Vector2 endValue, int propertyID, float duration)
|
||||||
|
{
|
||||||
|
if (!target.HasProperty(propertyID)) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.GetTextureOffset(propertyID), x => target.SetTextureOffset(propertyID, x), endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Tweens a Material's named texture scale property with the given ID to the given value.
|
||||||
|
/// Also stores the material as the tween's target so it can be used for filtered operations</summary>
|
||||||
|
/// <param name="endValue">The end value to reach</param>
|
||||||
|
/// <param name="propertyID">The ID of the material property to tween (also called nameID in Unity's manual)</param>
|
||||||
|
/// <param name="duration">The duration of the tween</param>
|
||||||
|
public static TweenerCore<Vector2, Vector2, VectorOptions> DOTiling(this Material target, Vector2 endValue, int propertyID, float duration)
|
||||||
|
{
|
||||||
|
if (!target.HasProperty(propertyID)) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.GetTextureScale(propertyID), x => target.SetTextureScale(propertyID, x), endValue, duration);
|
||||||
|
t.SetTarget(target);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region .NET 4.6 or Newer
|
||||||
|
|
||||||
|
#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0)
|
||||||
|
|
||||||
|
#region Async Instructions
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns an async <see cref="System.Threading.Tasks.Task"/> that waits until the tween is killed or complete.
|
||||||
|
/// It can be used inside an async operation.
|
||||||
|
/// <para>Example usage:</para><code>await myTween.WaitForCompletion();</code>
|
||||||
|
/// </summary>
|
||||||
|
public static async System.Threading.Tasks.Task AsyncWaitForCompletion(this Tween t)
|
||||||
|
{
|
||||||
|
if (!t.active) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
while (t.active && !t.IsComplete()) await System.Threading.Tasks.Task.Yield();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns an async <see cref="System.Threading.Tasks.Task"/> that waits until the tween is killed or rewinded.
|
||||||
|
/// It can be used inside an async operation.
|
||||||
|
/// <para>Example usage:</para><code>await myTween.AsyncWaitForRewind();</code>
|
||||||
|
/// </summary>
|
||||||
|
public static async System.Threading.Tasks.Task AsyncWaitForRewind(this Tween t)
|
||||||
|
{
|
||||||
|
if (!t.active) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
while (t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0)) await System.Threading.Tasks.Task.Yield();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns an async <see cref="System.Threading.Tasks.Task"/> that waits until the tween is killed.
|
||||||
|
/// It can be used inside an async operation.
|
||||||
|
/// <para>Example usage:</para><code>await myTween.AsyncWaitForKill();</code>
|
||||||
|
/// </summary>
|
||||||
|
public static async System.Threading.Tasks.Task AsyncWaitForKill(this Tween t)
|
||||||
|
{
|
||||||
|
if (!t.active) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
while (t.active) await System.Threading.Tasks.Task.Yield();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns an async <see cref="System.Threading.Tasks.Task"/> that waits until the tween is killed or has gone through the given amount of loops.
|
||||||
|
/// It can be used inside an async operation.
|
||||||
|
/// <para>Example usage:</para><code>await myTween.AsyncWaitForElapsedLoops();</code>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="elapsedLoops">Elapsed loops to wait for</param>
|
||||||
|
public static async System.Threading.Tasks.Task AsyncWaitForElapsedLoops(this Tween t, int elapsedLoops)
|
||||||
|
{
|
||||||
|
if (!t.active) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
while (t.active && t.CompletedLoops() < elapsedLoops) await System.Threading.Tasks.Task.Yield();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns an async <see cref="System.Threading.Tasks.Task"/> that waits until the tween is killed or started
|
||||||
|
/// (meaning when the tween is set in a playing state the first time, after any eventual delay).
|
||||||
|
/// It can be used inside an async operation.
|
||||||
|
/// <para>Example usage:</para><code>await myTween.AsyncWaitForPosition();</code>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="position">Position (loops included, delays excluded) to wait for</param>
|
||||||
|
public static async System.Threading.Tasks.Task AsyncWaitForPosition(this Tween t, float position)
|
||||||
|
{
|
||||||
|
if (!t.active) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
while (t.active && t.position * (t.CompletedLoops() + 1) < position) await System.Threading.Tasks.Task.Yield();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns an async <see cref="System.Threading.Tasks.Task"/> that waits until the tween is killed.
|
||||||
|
/// It can be used inside an async operation.
|
||||||
|
/// <para>Example usage:</para><code>await myTween.AsyncWaitForKill();</code>
|
||||||
|
/// </summary>
|
||||||
|
public static async System.Threading.Tasks.Task AsyncWaitForStart(this Tween t)
|
||||||
|
{
|
||||||
|
if (!t.active) {
|
||||||
|
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
while (t.active && !t.playedOnce) await System.Threading.Tasks.Task.Yield();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
||||||
|
// ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████
|
||||||
|
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
||||||
|
|
||||||
|
public static class DOTweenCYInstruction
|
||||||
|
{
|
||||||
|
public class WaitForCompletion : CustomYieldInstruction
|
||||||
|
{
|
||||||
|
public override bool keepWaiting { get {
|
||||||
|
return t.active && !t.IsComplete();
|
||||||
|
}}
|
||||||
|
readonly Tween t;
|
||||||
|
public WaitForCompletion(Tween tween)
|
||||||
|
{
|
||||||
|
t = tween;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WaitForRewind : CustomYieldInstruction
|
||||||
|
{
|
||||||
|
public override bool keepWaiting { get {
|
||||||
|
return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0);
|
||||||
|
}}
|
||||||
|
readonly Tween t;
|
||||||
|
public WaitForRewind(Tween tween)
|
||||||
|
{
|
||||||
|
t = tween;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WaitForKill : CustomYieldInstruction
|
||||||
|
{
|
||||||
|
public override bool keepWaiting { get {
|
||||||
|
return t.active;
|
||||||
|
}}
|
||||||
|
readonly Tween t;
|
||||||
|
public WaitForKill(Tween tween)
|
||||||
|
{
|
||||||
|
t = tween;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WaitForElapsedLoops : CustomYieldInstruction
|
||||||
|
{
|
||||||
|
public override bool keepWaiting { get {
|
||||||
|
return t.active && t.CompletedLoops() < elapsedLoops;
|
||||||
|
}}
|
||||||
|
readonly Tween t;
|
||||||
|
readonly int elapsedLoops;
|
||||||
|
public WaitForElapsedLoops(Tween tween, int elapsedLoops)
|
||||||
|
{
|
||||||
|
t = tween;
|
||||||
|
this.elapsedLoops = elapsedLoops;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WaitForPosition : CustomYieldInstruction
|
||||||
|
{
|
||||||
|
public override bool keepWaiting { get {
|
||||||
|
return t.active && t.position * (t.CompletedLoops() + 1) < position;
|
||||||
|
}}
|
||||||
|
readonly Tween t;
|
||||||
|
readonly float position;
|
||||||
|
public WaitForPosition(Tween tween, float position)
|
||||||
|
{
|
||||||
|
t = tween;
|
||||||
|
this.position = position;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WaitForStart : CustomYieldInstruction
|
||||||
|
{
|
||||||
|
public override bool keepWaiting { get {
|
||||||
|
return t.active && !t.playedOnce;
|
||||||
|
}}
|
||||||
|
readonly Tween t;
|
||||||
|
public WaitForStart(Tween tween)
|
||||||
|
{
|
||||||
|
t = tween;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta
Normal file
11
Assets/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2323c1e96e57fd14ca6aa6b9d3403f10
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
167
Assets/DOTween/Modules/DOTweenModuleUtils.cs
Normal file
167
Assets/DOTween/Modules/DOTweenModuleUtils.cs
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
// Author: Daniele Giardini - http://www.demigiant.com
|
||||||
|
// Created: 2018/07/13
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
using UnityEngine;
|
||||||
|
using DG.Tweening.Core;
|
||||||
|
using DG.Tweening.Plugins.Core.PathCore;
|
||||||
|
using DG.Tweening.Plugins.Options;
|
||||||
|
|
||||||
|
#pragma warning disable 1591
|
||||||
|
namespace DG.Tweening
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Utility functions that deal with available Modules.
|
||||||
|
/// Modules defines:
|
||||||
|
/// - DOTAUDIO
|
||||||
|
/// - DOTPHYSICS
|
||||||
|
/// - DOTPHYSICS2D
|
||||||
|
/// - DOTSPRITE
|
||||||
|
/// - DOTUI
|
||||||
|
/// Extra defines set and used for implementation of external assets:
|
||||||
|
/// - DOTWEEN_TMP ► TextMesh Pro
|
||||||
|
/// - DOTWEEN_TK2D ► 2D Toolkit
|
||||||
|
/// </summary>
|
||||||
|
public static class DOTweenModuleUtils
|
||||||
|
{
|
||||||
|
static bool _initialized;
|
||||||
|
|
||||||
|
#region Reflection
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Called via Reflection by DOTweenComponent on Awake
|
||||||
|
/// </summary>
|
||||||
|
#if UNITY_2018_1_OR_NEWER
|
||||||
|
[UnityEngine.Scripting.Preserve]
|
||||||
|
#endif
|
||||||
|
public static void Init()
|
||||||
|
{
|
||||||
|
if (_initialized) return;
|
||||||
|
|
||||||
|
_initialized = true;
|
||||||
|
DOTweenExternalCommand.SetOrientationOnPath += Physics.SetOrientationOnPath;
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1
|
||||||
|
UnityEditor.EditorApplication.playmodeStateChanged += PlaymodeStateChanged;
|
||||||
|
#else
|
||||||
|
UnityEditor.EditorApplication.playModeStateChanged += PlaymodeStateChanged;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#if UNITY_2018_1_OR_NEWER
|
||||||
|
#pragma warning disable
|
||||||
|
[UnityEngine.Scripting.Preserve]
|
||||||
|
// Just used to preserve methods when building, never called
|
||||||
|
static void Preserver()
|
||||||
|
{
|
||||||
|
Assembly[] loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
|
||||||
|
MethodInfo mi = typeof(MonoBehaviour).GetMethod("Stub");
|
||||||
|
}
|
||||||
|
#pragma warning restore
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
// Fires OnApplicationPause in DOTweenComponent even when Editor is paused (otherwise it's only fired at runtime)
|
||||||
|
#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1
|
||||||
|
static void PlaymodeStateChanged()
|
||||||
|
#else
|
||||||
|
static void PlaymodeStateChanged(UnityEditor.PlayModeStateChange state)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
if (DOTween.instance == null) return;
|
||||||
|
DOTween.instance.OnApplicationPause(UnityEditor.EditorApplication.isPaused);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
||||||
|
// ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████
|
||||||
|
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
||||||
|
|
||||||
|
public static class Physics
|
||||||
|
{
|
||||||
|
// Called via DOTweenExternalCommand callback
|
||||||
|
public static void SetOrientationOnPath(PathOptions options, Tween t, Quaternion newRot, Transform trans)
|
||||||
|
{
|
||||||
|
#if true // PHYSICS_MARKER
|
||||||
|
if (options.isRigidbody) ((Rigidbody)t.target).rotation = newRot;
|
||||||
|
else trans.rotation = newRot;
|
||||||
|
#else
|
||||||
|
trans.rotation = newRot;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns FALSE if the DOTween's Physics2D Module is disabled, or if there's no Rigidbody2D attached
|
||||||
|
public static bool HasRigidbody2D(Component target)
|
||||||
|
{
|
||||||
|
#if true // PHYSICS2D_MARKER
|
||||||
|
return target.GetComponent<Rigidbody2D>() != null;
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Called via Reflection
|
||||||
|
|
||||||
|
|
||||||
|
// Called via Reflection by DOTweenPathInspector
|
||||||
|
// Returns FALSE if the DOTween's Physics Module is disabled, or if there's no rigidbody attached
|
||||||
|
#if UNITY_2018_1_OR_NEWER
|
||||||
|
[UnityEngine.Scripting.Preserve]
|
||||||
|
#endif
|
||||||
|
public static bool HasRigidbody(Component target)
|
||||||
|
{
|
||||||
|
#if true // PHYSICS_MARKER
|
||||||
|
return target.GetComponent<Rigidbody>() != null;
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// Called via Reflection by DOTweenPath
|
||||||
|
#if UNITY_2018_1_OR_NEWER
|
||||||
|
[UnityEngine.Scripting.Preserve]
|
||||||
|
#endif
|
||||||
|
public static TweenerCore<Vector3, Path, PathOptions> CreateDOTweenPathTween(
|
||||||
|
MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode
|
||||||
|
){
|
||||||
|
TweenerCore<Vector3, Path, PathOptions> t = null;
|
||||||
|
bool rBodyFoundAndTweened = false;
|
||||||
|
#if true // PHYSICS_MARKER
|
||||||
|
if (tweenRigidbody) {
|
||||||
|
Rigidbody rBody = target.GetComponent<Rigidbody>();
|
||||||
|
if (rBody != null) {
|
||||||
|
rBodyFoundAndTweened = true;
|
||||||
|
t = isLocal
|
||||||
|
? rBody.DOLocalPath(path, duration, pathMode)
|
||||||
|
: rBody.DOPath(path, duration, pathMode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if true // PHYSICS2D_MARKER
|
||||||
|
if (!rBodyFoundAndTweened && tweenRigidbody) {
|
||||||
|
Rigidbody2D rBody2D = target.GetComponent<Rigidbody2D>();
|
||||||
|
if (rBody2D != null) {
|
||||||
|
rBodyFoundAndTweened = true;
|
||||||
|
t = isLocal
|
||||||
|
? rBody2D.DOLocalPath(path, duration, pathMode)
|
||||||
|
: rBody2D.DOPath(path, duration, pathMode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (!rBodyFoundAndTweened) {
|
||||||
|
t = isLocal
|
||||||
|
? target.transform.DOLocalPath(path, duration, pathMode)
|
||||||
|
: target.transform.DOPath(path, duration, pathMode);
|
||||||
|
}
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/DOTween/Modules/DOTweenModuleUtils.cs.meta
Normal file
11
Assets/DOTween/Modules/DOTweenModuleUtils.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 34faaadcd2d3ead45a8edf1ece51a14e
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
29
Assets/DOTween/readme.txt
Normal file
29
Assets/DOTween/readme.txt
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
DOTween and DOTween Pro are copyright (c) 2014-2018 Daniele Giardini - Demigiant
|
||||||
|
|
||||||
|
// IMPORTANT!!! /////////////////////////////////////////////
|
||||||
|
// Upgrading DOTween from versions older than 1.2.000 ///////
|
||||||
|
// (or DOTween Pro older than 1.0.000) //////////////////////
|
||||||
|
-------------------------------------------------------------
|
||||||
|
If you're upgrading your project from a version of DOTween older than 1.2.000 (or DOTween Pro older than 1.0.000) please follow these instructions carefully.
|
||||||
|
1) Import the new version in the same folder as the previous one, overwriting old files. A lot of errors will appear but don't worry
|
||||||
|
2) Close and reopen Unity (and your project). This is fundamental: skipping this step will cause a bloodbath
|
||||||
|
3) Open DOTween's Utility Panel (Tools > Demigiant > DOTween Utility Panel) if it doesn't open automatically, then press "Setup DOTween...": this will run the upgrade setup
|
||||||
|
4) From the Add/Remove Modules panel that opens, activate/deactivate Modules for Unity systems and for external assets (Pro version only)
|
||||||
|
|
||||||
|
// GET STARTED //////////////////////////////////////////////
|
||||||
|
|
||||||
|
- After importing a new DOTween update, select DOTween's Utility Panel from the "Tools/Demigiant" menu (if it doesn't open automatically) and press the "Setup DOTween..." button to activate/deactivate Modules. You can also access a Preferences Tab from there to choose default settings for DOTween.
|
||||||
|
- In your code, add "using DG.Tweening" to each class where you want to use DOTween.
|
||||||
|
- You're ready to tween. Check out the links below for full documentation and license info.
|
||||||
|
|
||||||
|
|
||||||
|
// LINKS ///////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
DOTween website (documentation, examples, etc): http://dotween.demigiant.com
|
||||||
|
DOTween license: http://dotween.demigiant.com/license.php
|
||||||
|
DOTween repository (Google Code): https://code.google.com/p/dotween/
|
||||||
|
Demigiant website (documentation, examples, etc): http://www.demigiant.com
|
||||||
|
|
||||||
|
// NOTES //////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
- DOTween's Utility Panel can be found under "Tools > Demigiant > DOTween Utility Panel" and also contains other useful options, plus a tab to set DOTween's preferences
|
||||||
7
Assets/DOTween/readme.txt.meta
Normal file
7
Assets/DOTween/readme.txt.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 46ecd50ddb7804d488bee4738799bba9
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
144
Assets/Editor/BoolMatrixDrawer.cs
Normal file
144
Assets/Editor/BoolMatrixDrawer.cs
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
|
||||||
|
[CustomPropertyDrawer(typeof(ShapeScannerConfiguration))]
|
||||||
|
public class BoolMatrixDrawer : PropertyDrawer
|
||||||
|
{
|
||||||
|
private const float ToggleSize = 18f;
|
||||||
|
private const float RowLabelWidth = 24f;
|
||||||
|
private const float Padding = 2f;
|
||||||
|
|
||||||
|
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
||||||
|
{
|
||||||
|
var rowsProp = property.FindPropertyRelative("rows");
|
||||||
|
var columnsProp = property.FindPropertyRelative("columns");
|
||||||
|
int rows = rowsProp != null ? rowsProp.arraySize : 0;
|
||||||
|
int cols = Mathf.Max(0, columnsProp != null ? columnsProp.intValue : 0);
|
||||||
|
|
||||||
|
// Header (one line), columns field (one line), buttons (one line), then one line per row
|
||||||
|
int totalLines = 1 + 1 + 1 + Mathf.Max(1, rows);
|
||||||
|
float lineHeight = EditorGUIUtility.singleLineHeight + Padding;
|
||||||
|
return totalLines * lineHeight + Padding;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
||||||
|
{
|
||||||
|
EditorGUI.BeginProperty(position, label, property);
|
||||||
|
|
||||||
|
var rowsProp = property.FindPropertyRelative("rows");
|
||||||
|
var columnsProp = property.FindPropertyRelative("columns");
|
||||||
|
|
||||||
|
if (rowsProp == null || columnsProp == null)
|
||||||
|
{
|
||||||
|
EditorGUI.HelpBox(position, "BoolMatrix is missing 'rows' or 'columns' properties.", MessageType.Error);
|
||||||
|
EditorGUI.EndProperty();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Layout helper
|
||||||
|
float lineHeight = EditorGUIUtility.singleLineHeight;
|
||||||
|
Rect line = new Rect(position.x, position.y, position.width, lineHeight);
|
||||||
|
|
||||||
|
// Header
|
||||||
|
EditorGUI.LabelField(line, label, EditorStyles.boldLabel);
|
||||||
|
line.y += lineHeight + Padding;
|
||||||
|
|
||||||
|
// Draw requiredCorrectPercentage
|
||||||
|
var requiredCorrectProp = property.FindPropertyRelative("requiredCorrectPercentage");
|
||||||
|
EditorGUI.PropertyField(line, requiredCorrectProp, new GUIContent("Required Correct Percentage"));
|
||||||
|
line.y += lineHeight + Padding;
|
||||||
|
|
||||||
|
// Columns field
|
||||||
|
EditorGUI.BeginChangeCheck();
|
||||||
|
int cols = Mathf.Max(0, EditorGUI.IntField(line, "Columns", columnsProp.intValue));
|
||||||
|
if (EditorGUI.EndChangeCheck())
|
||||||
|
{
|
||||||
|
columnsProp.intValue = cols;
|
||||||
|
// Resize each row to match new column count
|
||||||
|
for (int r = 0; r < rowsProp.arraySize; r++)
|
||||||
|
{
|
||||||
|
var rowProp = rowsProp.GetArrayElementAtIndex(r);
|
||||||
|
var cellsProp = rowProp.FindPropertyRelative("cells");
|
||||||
|
ResizeBoolArray(cellsProp, cols);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
line.y += lineHeight + Padding;
|
||||||
|
|
||||||
|
// Row controls (Add/Remove)
|
||||||
|
using (new EditorGUI.IndentLevelScope())
|
||||||
|
{
|
||||||
|
Rect left = new Rect(line.x, line.y, 120, lineHeight);
|
||||||
|
if (GUI.Button(left, "Add Row"))
|
||||||
|
{
|
||||||
|
int newIndex = rowsProp.arraySize;
|
||||||
|
rowsProp.InsertArrayElementAtIndex(newIndex);
|
||||||
|
var rowProp = rowsProp.GetArrayElementAtIndex(newIndex);
|
||||||
|
var cellsProp = rowProp.FindPropertyRelative("cells");
|
||||||
|
ResizeBoolArray(cellsProp, columnsProp.intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
Rect right = new Rect(line.x + 130, line.y, 140, lineHeight);
|
||||||
|
if (GUI.Button(right, "Remove Last Row") && rowsProp.arraySize > 0)
|
||||||
|
{
|
||||||
|
rowsProp.DeleteArrayElementAtIndex(rowsProp.arraySize - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
line.y += lineHeight + Padding;
|
||||||
|
|
||||||
|
// Draw grid
|
||||||
|
int rowCount = rowsProp.arraySize;
|
||||||
|
int colCount = Mathf.Max(0, columnsProp.intValue);
|
||||||
|
|
||||||
|
for (int r = 0; r < rowCount; r++)
|
||||||
|
{
|
||||||
|
var rowProp = rowsProp.GetArrayElementAtIndex(r);
|
||||||
|
var cellsProp = rowProp.FindPropertyRelative("cells");
|
||||||
|
|
||||||
|
// Ensure row width
|
||||||
|
if (cellsProp.arraySize != colCount)
|
||||||
|
ResizeBoolArray(cellsProp, colCount);
|
||||||
|
|
||||||
|
// Row label
|
||||||
|
Rect rowLabel = new Rect(line.x, line.y, RowLabelWidth, lineHeight);
|
||||||
|
EditorGUI.LabelField(rowLabel, $"R{r}");
|
||||||
|
|
||||||
|
// Toggle strip
|
||||||
|
float startX = rowLabel.x + RowLabelWidth + Padding;
|
||||||
|
for (int c = 0; c < colCount; c++)
|
||||||
|
{
|
||||||
|
Rect toggleRect = new Rect(startX + c * (ToggleSize + 2), line.y, ToggleSize, lineHeight);
|
||||||
|
var cellProp = cellsProp.GetArrayElementAtIndex(c);
|
||||||
|
bool newVal = EditorGUI.Toggle(toggleRect, GUIContent.none, cellProp.boolValue);
|
||||||
|
if (newVal != cellProp.boolValue) cellProp.boolValue = newVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
line.y += lineHeight + Padding;
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorGUI.EndProperty();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResizeBoolArray(SerializedProperty listProp, int newSize)
|
||||||
|
{
|
||||||
|
if (listProp == null) return;
|
||||||
|
newSize = Mathf.Max(0, newSize);
|
||||||
|
|
||||||
|
// Grow
|
||||||
|
while (listProp.arraySize < newSize)
|
||||||
|
{
|
||||||
|
int i = listProp.arraySize;
|
||||||
|
listProp.InsertArrayElementAtIndex(i);
|
||||||
|
var elem = listProp.GetArrayElementAtIndex(i);
|
||||||
|
elem.boolValue = false;
|
||||||
|
}
|
||||||
|
// Shrink
|
||||||
|
while (listProp.arraySize > newSize)
|
||||||
|
{
|
||||||
|
listProp.DeleteArrayElementAtIndex(listProp.arraySize - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
11
Assets/Editor/BoolMatrixDrawer.cs.meta
Normal file
11
Assets/Editor/BoolMatrixDrawer.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e3da5d98c11c1b54fb05eda4624de9e3
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -24,7 +24,7 @@ public class NetworkMenuUI : MonoBehaviour
|
|||||||
public Button reloadButton;
|
public Button reloadButton;
|
||||||
public Button joinMultiplayerButton;
|
public Button joinMultiplayerButton;
|
||||||
public Transform serverListContainer;
|
public Transform serverListContainer;
|
||||||
public GameObject serverListItemPrefab;
|
public GameObject IPButton;
|
||||||
public TMP_Text statusText;
|
public TMP_Text statusText;
|
||||||
public Button quitButton;
|
public Button quitButton;
|
||||||
|
|
||||||
@@ -55,6 +55,7 @@ public class NetworkMenuUI : MonoBehaviour
|
|||||||
PlayerPrefs.Save();
|
PlayerPrefs.Save();
|
||||||
Debug.Log($"UseVR set to {_useVR}");
|
Debug.Log($"UseVR set to {_useVR}");
|
||||||
});
|
});
|
||||||
|
//networkDiscovery.StartSearchingForServers();
|
||||||
|
|
||||||
startPlayingButton.onClick.AddListener(OnStartPlaying);
|
startPlayingButton.onClick.AddListener(OnStartPlaying);
|
||||||
reloadButton.onClick.AddListener(OnReload);
|
reloadButton.onClick.AddListener(OnReload);
|
||||||
@@ -152,7 +153,7 @@ public class NetworkMenuUI : MonoBehaviour
|
|||||||
|
|
||||||
uiCamera.enabled = false;
|
uiCamera.enabled = false;
|
||||||
Debug.Log("Disabled placeholder audio source");
|
Debug.Log("Disabled placeholder audio source");
|
||||||
placeholderAudioListener.enabled = false;
|
//placeholderAudioListener.enabled = false;
|
||||||
//coverImage.gameObject.SetActive(false);
|
//coverImage.gameObject.SetActive(false);
|
||||||
|
|
||||||
InstanceFinder.ClientManager.StartConnection(endPoint.Address.ToString());
|
InstanceFinder.ClientManager.StartConnection(endPoint.Address.ToString());
|
||||||
@@ -161,7 +162,7 @@ public class NetworkMenuUI : MonoBehaviour
|
|||||||
}
|
}
|
||||||
|
|
||||||
Debug.Log("Server is foregin");
|
Debug.Log("Server is foregin");
|
||||||
GameObject item = Instantiate(serverListItemPrefab, serverListContainer);
|
GameObject item = Instantiate(IPButton, serverListContainer);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
23
Assets/HandPresencePhysics.cs
Normal file
23
Assets/HandPresencePhysics.cs
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class HandPresencePhysics : MonoBehaviour
|
||||||
|
{
|
||||||
|
public Transform target;
|
||||||
|
private Rigidbody rb;
|
||||||
|
// Start is called before the first frame update
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
rb = GetComponent<Rigidbody>();
|
||||||
|
}
|
||||||
|
// Update is called once per frame
|
||||||
|
//
|
||||||
|
void FixedUpdate()
|
||||||
|
{
|
||||||
|
//position
|
||||||
|
rb.velocity = (target.position - transform.position) / Time.fixedDeltaTime;
|
||||||
|
//rotation
|
||||||
|
Quaternion rotationDifference = target.rotation * Quaternion.Inverse(transform.rotation);
|
||||||
|
rotationDifference.ToAngleAxis(out float angleInDegree, out Vector3 rotationAxis);
|
||||||
|
Vector3 rotationDifferenceInDegree = angleInDegree * rotationAxis; rb.angularVelocity = (rotationDifferenceInDegree * Mathf.Deg2Rad / Time.fixedDeltaTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/HandPresencePhysics.cs.meta
Normal file
11
Assets/HandPresencePhysics.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 116b8a33d83907d4b9dc092e9baa3639
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Oculus Hands Physics.meta
Normal file
8
Assets/Oculus Hands Physics.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 93756a6a02237c0418736f2a31b54230
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Oculus Hands Physics/Animations.meta
Normal file
8
Assets/Oculus Hands Physics/Animations.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5312cf64a580ce242aadae4fa36765df
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!206 &-7877958355586004021
|
||||||
|
BlendTree:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Blend Tree
|
||||||
|
m_Childs:
|
||||||
|
- serializedVersion: 2
|
||||||
|
m_Motion: {fileID: 7400000, guid: 1ae9aefe37a62de429ddc2edd1ca36f3, type: 3}
|
||||||
|
m_Threshold: 0
|
||||||
|
m_Position: {x: 0, y: 0}
|
||||||
|
m_TimeScale: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_DirectBlendParameter: Grip
|
||||||
|
m_Mirror: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
m_Motion: {fileID: 7400000, guid: a91ff20f7450bf446a6bf0bfb5e932ae, type: 3}
|
||||||
|
m_Threshold: 0.33333334
|
||||||
|
m_Position: {x: 0, y: 1}
|
||||||
|
m_TimeScale: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_DirectBlendParameter: Grip
|
||||||
|
m_Mirror: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
m_Motion: {fileID: 7400000, guid: 7cb2e1480bb51ce4282f540ea3f41d4f, type: 3}
|
||||||
|
m_Threshold: 0.6666667
|
||||||
|
m_Position: {x: 1, y: 0}
|
||||||
|
m_TimeScale: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_DirectBlendParameter: Grip
|
||||||
|
m_Mirror: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
m_Motion: {fileID: 7400000, guid: 7cb2e1480bb51ce4282f540ea3f41d4f, type: 3}
|
||||||
|
m_Threshold: 1
|
||||||
|
m_Position: {x: 1, y: 1}
|
||||||
|
m_TimeScale: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_DirectBlendParameter: Grip
|
||||||
|
m_Mirror: 0
|
||||||
|
m_BlendParameter: Grip
|
||||||
|
m_BlendParameterY: Trigger
|
||||||
|
m_MinThreshold: 0
|
||||||
|
m_MaxThreshold: 1
|
||||||
|
m_UseAutomaticThresholds: 1
|
||||||
|
m_NormalizedBlendValues: 0
|
||||||
|
m_BlendType: 3
|
||||||
|
--- !u!1107 &-2276301845227396631
|
||||||
|
AnimatorStateMachine:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_ChildStates:
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 5869694157650388578}
|
||||||
|
m_Position: {x: 330, y: 120, z: 0}
|
||||||
|
m_ChildStateMachines: []
|
||||||
|
m_AnyStateTransitions: []
|
||||||
|
m_EntryTransitions: []
|
||||||
|
m_StateMachineTransitions: {}
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
||||||
|
m_EntryPosition: {x: 50, y: 120, z: 0}
|
||||||
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
|
m_DefaultState: {fileID: 5869694157650388578}
|
||||||
|
--- !u!91 &9100000
|
||||||
|
AnimatorController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Left Hand Animator
|
||||||
|
serializedVersion: 5
|
||||||
|
m_AnimatorParameters:
|
||||||
|
- m_Name: Grip
|
||||||
|
m_Type: 1
|
||||||
|
m_DefaultFloat: 0
|
||||||
|
m_DefaultInt: 0
|
||||||
|
m_DefaultBool: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
|
- m_Name: Trigger
|
||||||
|
m_Type: 1
|
||||||
|
m_DefaultFloat: 0
|
||||||
|
m_DefaultInt: 0
|
||||||
|
m_DefaultBool: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
|
m_AnimatorLayers:
|
||||||
|
- serializedVersion: 5
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_StateMachine: {fileID: -2276301845227396631}
|
||||||
|
m_Mask: {fileID: 0}
|
||||||
|
m_Motions: []
|
||||||
|
m_Behaviours: []
|
||||||
|
m_BlendingMode: 0
|
||||||
|
m_SyncedLayerIndex: -1
|
||||||
|
m_DefaultWeight: 0
|
||||||
|
m_IKPass: 0
|
||||||
|
m_SyncedLayerAffectsTiming: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
|
--- !u!1102 &5869694157650388578
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Blend Tree
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: -7877958355586004021}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0284ecac7be7e2d409126f62358d744b
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!206 &-7877958355586004021
|
||||||
|
BlendTree:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Blend Tree
|
||||||
|
m_Childs:
|
||||||
|
- serializedVersion: 2
|
||||||
|
m_Motion: {fileID: 7400000, guid: b6c38558987444240b3b3950e4450b77, type: 3}
|
||||||
|
m_Threshold: 0
|
||||||
|
m_Position: {x: 0, y: 0}
|
||||||
|
m_TimeScale: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_DirectBlendParameter: Grip
|
||||||
|
m_Mirror: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
m_Motion: {fileID: 7400000, guid: 165871bb4fa915847973b6955c7a670d, type: 3}
|
||||||
|
m_Threshold: 0.33333334
|
||||||
|
m_Position: {x: 0, y: 1}
|
||||||
|
m_TimeScale: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_DirectBlendParameter: Grip
|
||||||
|
m_Mirror: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
m_Motion: {fileID: 7400000, guid: 005ab0ae8aa7f74438a5fa50f7cd50e3, type: 3}
|
||||||
|
m_Threshold: 0.6666667
|
||||||
|
m_Position: {x: 1, y: 0}
|
||||||
|
m_TimeScale: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_DirectBlendParameter: Grip
|
||||||
|
m_Mirror: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
m_Motion: {fileID: 7400000, guid: 005ab0ae8aa7f74438a5fa50f7cd50e3, type: 3}
|
||||||
|
m_Threshold: 1
|
||||||
|
m_Position: {x: 1, y: 1}
|
||||||
|
m_TimeScale: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_DirectBlendParameter: Grip
|
||||||
|
m_Mirror: 0
|
||||||
|
m_BlendParameter: Grip
|
||||||
|
m_BlendParameterY: Trigger
|
||||||
|
m_MinThreshold: 0
|
||||||
|
m_MaxThreshold: 1
|
||||||
|
m_UseAutomaticThresholds: 1
|
||||||
|
m_NormalizedBlendValues: 0
|
||||||
|
m_BlendType: 3
|
||||||
|
--- !u!1107 &-2276301845227396631
|
||||||
|
AnimatorStateMachine:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_ChildStates:
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 5869694157650388578}
|
||||||
|
m_Position: {x: 330, y: 120, z: 0}
|
||||||
|
m_ChildStateMachines: []
|
||||||
|
m_AnyStateTransitions: []
|
||||||
|
m_EntryTransitions: []
|
||||||
|
m_StateMachineTransitions: {}
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
||||||
|
m_EntryPosition: {x: 50, y: 120, z: 0}
|
||||||
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
|
m_DefaultState: {fileID: 5869694157650388578}
|
||||||
|
--- !u!91 &9100000
|
||||||
|
AnimatorController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Right Hand Animator
|
||||||
|
serializedVersion: 5
|
||||||
|
m_AnimatorParameters:
|
||||||
|
- m_Name: Grip
|
||||||
|
m_Type: 1
|
||||||
|
m_DefaultFloat: 0
|
||||||
|
m_DefaultInt: 0
|
||||||
|
m_DefaultBool: 0
|
||||||
|
m_Controller: {fileID: 0}
|
||||||
|
- m_Name: Trigger
|
||||||
|
m_Type: 1
|
||||||
|
m_DefaultFloat: 0
|
||||||
|
m_DefaultInt: 0
|
||||||
|
m_DefaultBool: 0
|
||||||
|
m_Controller: {fileID: 0}
|
||||||
|
m_AnimatorLayers:
|
||||||
|
- serializedVersion: 5
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_StateMachine: {fileID: -2276301845227396631}
|
||||||
|
m_Mask: {fileID: 0}
|
||||||
|
m_Motions: []
|
||||||
|
m_Behaviours: []
|
||||||
|
m_BlendingMode: 0
|
||||||
|
m_SyncedLayerIndex: -1
|
||||||
|
m_DefaultWeight: 0
|
||||||
|
m_IKPass: 0
|
||||||
|
m_SyncedLayerAffectsTiming: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
|
--- !u!1102 &5869694157650388578
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Blend Tree
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: -7877958355586004021}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 011fededf8deb2f479afbcb453d11410
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Oculus Hands Physics/Prefabs.meta
Normal file
8
Assets/Oculus Hands Physics/Prefabs.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5bea1e892b5c61f4e83c76c6ebd566bd
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 77459436eeb3aeb48871d657bcb5fd7f
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,966 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &109434732395284481
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451489}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_thumb2
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451489
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284481}
|
||||||
|
m_LocalRotation: {x: 8.364196e-17, y: -1.5534073e-17, z: -0.14235, w: 0.9898164}
|
||||||
|
m_LocalPosition: {x: -0.03258824, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451495}
|
||||||
|
m_Father: {fileID: 109434732395451491}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284483
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451491}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_thumb1
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451491
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284483}
|
||||||
|
m_LocalRotation: {x: 0.2459623, y: 0.945037, z: -0.031994287, w: 0.21303521}
|
||||||
|
m_LocalPosition: {x: 0.026298406, y: -0.041470297, z: 0.020564148}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451489}
|
||||||
|
m_Father: {fileID: 109434732395451465}
|
||||||
|
m_RootOrder: 6
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284485
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451493}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_thumb_ignore
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451493
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284485}
|
||||||
|
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: -0.034079567, y: -7.105427e-17, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 109434732395451495}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284487
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451495}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_thumb3
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451495
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284487}
|
||||||
|
m_LocalRotation: {x: -3.3019005e-17, y: 6.6511964e-18, z: 0.008720745, w: 0.999962}
|
||||||
|
m_LocalPosition: {x: -0.026371535, y: 1.4210854e-16, z: -1.0658141e-16}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451493}
|
||||||
|
m_Father: {fileID: 109434732395451489}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284489
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451497}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_ring2
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451497
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284489}
|
||||||
|
m_LocalRotation: {x: -2.1295683e-16, y: 1.0081824e-16, z: -0.20290461, w: 0.9791985}
|
||||||
|
m_LocalPosition: {x: -0.038572025, y: 0, z: 7.105427e-17}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451503}
|
||||||
|
m_Father: {fileID: 109434732395451499}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284491
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451499}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_ring1
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451499
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284491}
|
||||||
|
m_LocalRotation: {x: -0.10180098, y: 0.5692992, z: 0.8152097, w: 0.031114789}
|
||||||
|
m_LocalPosition: {x: 0.089531735, y: 0.012713979, z: -0.0018533266}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451497}
|
||||||
|
m_Father: {fileID: 109434732395451465}
|
||||||
|
m_RootOrder: 5
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284493
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451501}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_ring_ignore
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451501
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284493}
|
||||||
|
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: -0.024214907, y: -1.4210854e-16, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 109434732395451503}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284495
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451503}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_ring3
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451503
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284495}
|
||||||
|
m_LocalRotation: {x: 1.4978696e-16, y: -4.047208e-17, z: -0.08394361, w: 0.9964705}
|
||||||
|
m_LocalPosition: {x: -0.025775291, y: -1.7763568e-17, z: -1.4210854e-16}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451501}
|
||||||
|
m_Father: {fileID: 109434732395451497}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284505
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451513}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:l_hand_world
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451513
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284505}
|
||||||
|
m_LocalRotation: {x: 0.76502967, y: -0.5406603, z: 0.16959205, w: -0.30603018}
|
||||||
|
m_LocalPosition: {x: -0.017749771, y: 0.049014878, z: -0.07170377}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451465}
|
||||||
|
m_Father: {fileID: 109434732395451517}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284507
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451515}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:hands_geom
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451515
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284507}
|
||||||
|
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: 109434732395451519}
|
||||||
|
m_Father: {fileID: 109434732395451517}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284509
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451517}
|
||||||
|
- component: {fileID: 109434732388006827}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Custom Left Hand Model
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451517
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284509}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
|
||||||
|
m_LocalPosition: {x: -0.001, y: 0.001, z: -0.035}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451515}
|
||||||
|
- {fileID: 109434732395451513}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
|
||||||
|
--- !u!95 &109434732388006827
|
||||||
|
Animator:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284509}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Avatar: {fileID: 9000000, guid: ca20b3907ff1c794cb89c1ad2cce8282, type: 3}
|
||||||
|
m_Controller: {fileID: 9100000, guid: 0284ecac7be7e2d409126f62358d744b, type: 2}
|
||||||
|
m_CullingMode: 1
|
||||||
|
m_UpdateMode: 0
|
||||||
|
m_ApplyRootMotion: 0
|
||||||
|
m_LinearVelocityBlending: 0
|
||||||
|
m_WarningMessage:
|
||||||
|
m_HasTransformHierarchy: 1
|
||||||
|
m_AllowConstantClipSamplingOptimization: 1
|
||||||
|
m_KeepAnimatorControllerStateOnDisable: 0
|
||||||
|
--- !u!1 &109434732395284511
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451519}
|
||||||
|
- component: {fileID: 109434732392105323}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:Lhand
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451519
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284511}
|
||||||
|
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: 109434732395451515}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!137 &109434732392105323
|
||||||
|
SkinnedMeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284511}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: 3637b758ff163493f8bb8b6d7e96d7ae, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
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
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Quality: 0
|
||||||
|
m_UpdateWhenOffscreen: 0
|
||||||
|
m_SkinnedMotionVectors: 1
|
||||||
|
m_Mesh: {fileID: 4300000, guid: ca20b3907ff1c794cb89c1ad2cce8282, type: 3}
|
||||||
|
m_Bones:
|
||||||
|
- {fileID: 109434732395451513}
|
||||||
|
- {fileID: 109434732395451465}
|
||||||
|
- {fileID: 109434732395451471}
|
||||||
|
- {fileID: 109434732395451491}
|
||||||
|
- {fileID: 109434732395451489}
|
||||||
|
- {fileID: 109434732395451495}
|
||||||
|
- {fileID: 109434732395451493}
|
||||||
|
- {fileID: 109434732395451469}
|
||||||
|
- {fileID: 109434732395451459}
|
||||||
|
- {fileID: 109434732395451457}
|
||||||
|
- {fileID: 109434732395451463}
|
||||||
|
- {fileID: 109434732395451461}
|
||||||
|
- {fileID: 109434732395451483}
|
||||||
|
- {fileID: 109434732395451481}
|
||||||
|
- {fileID: 109434732395451487}
|
||||||
|
- {fileID: 109434732395451499}
|
||||||
|
- {fileID: 109434732395451497}
|
||||||
|
- {fileID: 109434732395451503}
|
||||||
|
- {fileID: 109434732395451501}
|
||||||
|
- {fileID: 109434732395451485}
|
||||||
|
- {fileID: 109434732395451475}
|
||||||
|
- {fileID: 109434732395451473}
|
||||||
|
- {fileID: 109434732395451479}
|
||||||
|
- {fileID: 109434732395451477}
|
||||||
|
- {fileID: 109434732395451467}
|
||||||
|
m_BlendShapeWeights: []
|
||||||
|
m_RootBone: {fileID: 109434732395451513}
|
||||||
|
m_AABB:
|
||||||
|
m_Center: {x: 0.00654291, y: -0.036744133, z: -0.06238377}
|
||||||
|
m_Extent: {x: 0.072534904, y: 0.09257294, z: 0.105605766}
|
||||||
|
m_DirtyAABB: 0
|
||||||
|
--- !u!1 &109434732395284577
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451457}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_index3
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451457
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284577}
|
||||||
|
m_LocalRotation: {x: 2.6848176e-16, y: -4.3833895e-17, z: -0.05959589, w: 0.9982226}
|
||||||
|
m_LocalPosition: {x: -0.022153005, y: 7.105427e-17, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451463}
|
||||||
|
m_Father: {fileID: 109434732395451459}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284579
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451459}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_index2
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451459
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284579}
|
||||||
|
m_LocalRotation: {x: -2.7269937e-16, y: 5.169386e-17, z: -0.18624677, w: 0.982503}
|
||||||
|
m_LocalPosition: {x: -0.04157472, y: 0, z: 7.105427e-17}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451457}
|
||||||
|
m_Father: {fileID: 109434732395451469}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284581
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451461}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_middle1
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451461
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284581}
|
||||||
|
m_LocalRotation: {x: -0.03365181, y: 0.6480088, z: 0.75659454, w: 0.08072687}
|
||||||
|
m_LocalPosition: {x: 0.09142233, y: -0.0095321555, z: -0.010838781}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451483}
|
||||||
|
m_Father: {fileID: 109434732395451465}
|
||||||
|
m_RootOrder: 3
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284583
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451463}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_index_ignore
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451463
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284583}
|
||||||
|
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: -0.029121809, y: -1.7763567e-16, z: -7.105427e-17}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 109434732395451457}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284585
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451465}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_hand
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451465
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284585}
|
||||||
|
m_LocalRotation: {x: -0.3125748, y: 0.76965183, z: 0.018750938, w: 0.5564005}
|
||||||
|
m_LocalPosition: {x: -0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451467}
|
||||||
|
- {fileID: 109434732395451471}
|
||||||
|
- {fileID: 109434732395451469}
|
||||||
|
- {fileID: 109434732395451461}
|
||||||
|
- {fileID: 109434732395451485}
|
||||||
|
- {fileID: 109434732395451499}
|
||||||
|
- {fileID: 109434732395451491}
|
||||||
|
m_Father: {fileID: 109434732395451513}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284587
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451467}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_grip
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451467
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284587}
|
||||||
|
m_LocalRotation: {x: 0.31257483, y: -0.76965183, z: -0.018750904, w: 0.5564005}
|
||||||
|
m_LocalPosition: {x: 0.07215908, y: -0.013962129, z: 0.018992199}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 109434732395451465}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284589
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451469}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_index1
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451469
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284589}
|
||||||
|
m_LocalRotation: {x: 0.010945054, y: 0.7329414, z: 0.66095215, w: 0.16068448}
|
||||||
|
m_LocalPosition: {x: 0.087078705, y: -0.035099912, z: -0.0068139634}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451459}
|
||||||
|
m_Father: {fileID: 109434732395451465}
|
||||||
|
m_RootOrder: 2
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284591
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451471}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_hand_ignore
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451471
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284591}
|
||||||
|
m_LocalRotation: {x: 0.22704248, y: 3.9634124e-17, z: 4.7759774e-17, w: 0.9738849}
|
||||||
|
m_LocalPosition: {x: 0.13611393, y: 0, z: 1.4210854e-16}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 109434732395451465}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284593
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451473}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_pinky2
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451473
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284593}
|
||||||
|
m_LocalRotation: {x: -1.7569053e-16, y: -8.32419e-17, z: -0.16458225, w: 0.98636335}
|
||||||
|
m_LocalPosition: {x: -0.03335595, y: 1.4210854e-16, z: -1.4210854e-16}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451479}
|
||||||
|
m_Father: {fileID: 109434732395451475}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284595
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451475}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_pinky1
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451475
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284595}
|
||||||
|
m_LocalRotation: {x: -0.018903391, y: 0.0067427186, z: 0.9928664, w: 0.117531024}
|
||||||
|
m_LocalPosition: {x: 0.053570647, y: 0.0024384, z: -0.0014630399}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451473}
|
||||||
|
m_Father: {fileID: 109434732395451485}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284597
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451477}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_pinky_ignore
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451477
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284597}
|
||||||
|
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: -0.019441238, y: -6.217249e-17, z: 7.105427e-17}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 109434732395451479}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284599
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451479}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_pinky3
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451479
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284599}
|
||||||
|
m_LocalRotation: {x: -6.36854e-17, y: -2.4790136e-17, z: -0.04699399, w: 0.9988952}
|
||||||
|
m_LocalPosition: {x: -0.017418223, y: 1.3322676e-16, z: 7.105427e-17}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451477}
|
||||||
|
m_Father: {fileID: 109434732395451473}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284601
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451481}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_middle3
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451481
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284601}
|
||||||
|
m_LocalRotation: {x: 1.1443316e-16, y: 4.8088383e-17, z: -0.06577556, w: 0.99783444}
|
||||||
|
m_LocalPosition: {x: -0.029590597, y: 3.5527136e-17, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451487}
|
||||||
|
m_Father: {fileID: 109434732395451483}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284603
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451483}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_middle2
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451483
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284603}
|
||||||
|
m_LocalRotation: {x: -2.6402464e-16, y: 2.0679773e-16, z: -0.23558192, w: 0.9718545}
|
||||||
|
m_LocalPosition: {x: -0.045967426, y: 1.4210854e-16, z: 7.105427e-17}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451481}
|
||||||
|
m_Father: {fileID: 109434732395451461}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284605
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451485}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_pinky0
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451485
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284605}
|
||||||
|
m_LocalRotation: {x: -0.46932158, y: -0.083111495, z: 0.08672836, w: 0.8748188}
|
||||||
|
m_LocalPosition: {x: 0.031271502, y: 0.01906803, z: 0.01150759}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 109434732395451475}
|
||||||
|
m_Father: {fileID: 109434732395451465}
|
||||||
|
m_RootOrder: 4
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &109434732395284607
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 109434732395451487}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_l_middle_ignore
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &109434732395451487
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 109434732395284607}
|
||||||
|
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: -0.02646961, y: -1.7763568e-17, z: -2.1316282e-16}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 109434732395451481}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7811abe38615a86438f679bcf79f5b92
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3c99d0ba506360a43b8cea08ef805d25
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,966 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &5686134208185362816
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136544}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_hand_ignore
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136544
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362816}
|
||||||
|
m_LocalRotation: {x: 0.22704248, y: -0, z: -0, w: 0.9738849}
|
||||||
|
m_LocalPosition: {x: -0.13611329, y: 0.00000039665923, z: 0.0000006813971}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5686134208185136550}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362818
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136546}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_index1
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136546
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362818}
|
||||||
|
m_LocalRotation: {x: 0.010945054, y: 0.7329414, z: 0.66095215, w: 0.16068448}
|
||||||
|
m_LocalPosition: {x: -0.08707797, y: 0.035099972, z: 0.0068147103}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136556}
|
||||||
|
m_Father: {fileID: 5686134208185136550}
|
||||||
|
m_RootOrder: 2
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362820
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136548}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_grip
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136548
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362820}
|
||||||
|
m_LocalRotation: {x: 0.56189185, y: -0.03958033, z: 0.76829755, w: -0.30402282}
|
||||||
|
m_LocalPosition: {x: -0.073359996, y: 0.01578, z: -0.01952}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5686134208185136550}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362822
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136550}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_hand
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136550
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362822}
|
||||||
|
m_LocalRotation: {x: 0.5564005, y: -0.018750938, z: 0.76965183, w: 0.3125748}
|
||||||
|
m_LocalPosition: {x: -0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136548}
|
||||||
|
- {fileID: 5686134208185136544}
|
||||||
|
- {fileID: 5686134208185136546}
|
||||||
|
- {fileID: 5686134208185136554}
|
||||||
|
- {fileID: 5686134208185136562}
|
||||||
|
- {fileID: 5686134208185136516}
|
||||||
|
- {fileID: 5686134208185136524}
|
||||||
|
m_Father: {fileID: 5686134208185136534}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362824
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136552}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_index_ignore
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136552
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362824}
|
||||||
|
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0.029121783, y: 0.0000002658625, z: 0.0000010456445}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5686134208185136558}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362826
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136554}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_middle1
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136554
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362826}
|
||||||
|
m_LocalRotation: {x: -0.03365181, y: 0.6480088, z: 0.75659454, w: 0.08072687}
|
||||||
|
m_LocalPosition: {x: -0.09142202, y: 0.009532635, z: 0.010838787}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136564}
|
||||||
|
m_Father: {fileID: 5686134208185136550}
|
||||||
|
m_RootOrder: 3
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362828
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136556}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_index2
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136556
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362828}
|
||||||
|
m_LocalRotation: {x: -5.1243677e-17, y: -4.6785792e-17, z: -0.18624677, w: 0.982503}
|
||||||
|
m_LocalPosition: {x: 0.04157489, y: -0.0000002622628, z: -0.00000038978715}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136558}
|
||||||
|
m_Father: {fileID: 5686134208185136546}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362830
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136558}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_index3
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136558
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362830}
|
||||||
|
m_LocalRotation: {x: 0, y: -0, z: -0.05959589, w: 0.9982226}
|
||||||
|
m_LocalPosition: {x: 0.022152938, y: -0.00000022278307, z: -0.000000035388048}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136552}
|
||||||
|
m_Father: {fileID: 5686134208185136556}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362832
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136560}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_middle_ignore
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136560
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362832}
|
||||||
|
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0.026469523, y: 0.0000004068423, z: 0.00000019527813}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5686134208185136566}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362834
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136562}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_pinky0
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136562
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362834}
|
||||||
|
m_LocalRotation: {x: -0.46932158, y: -0.083111495, z: 0.08672836, w: 0.8748188}
|
||||||
|
m_LocalPosition: {x: -0.031274725, y: -0.019069267, z: -0.011509167}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136572}
|
||||||
|
m_Father: {fileID: 5686134208185136550}
|
||||||
|
m_RootOrder: 4
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362836
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136564}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_middle2
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136564
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362836}
|
||||||
|
m_LocalRotation: {x: -1.8923043e-16, y: 3.0290486e-16, z: -0.23558192, w: 0.9718545}
|
||||||
|
m_LocalPosition: {x: 0.04596702, y: -6.4383804e-10, z: -0.00000003982895}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136566}
|
||||||
|
m_Father: {fileID: 5686134208185136554}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362838
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136566}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_middle3
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136566
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362838}
|
||||||
|
m_LocalRotation: {x: 0, y: -0, z: -0.06577556, w: 0.99783444}
|
||||||
|
m_LocalPosition: {x: 0.029590234, y: -0.00000017799226, z: -0.000000063619794}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136560}
|
||||||
|
m_Father: {fileID: 5686134208185136564}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362840
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136568}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_pinky3
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136568
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362840}
|
||||||
|
m_LocalRotation: {x: 3.5308314e-17, y: -8.5019946e-17, z: -0.04699399, w: 0.9988952}
|
||||||
|
m_LocalPosition: {x: 0.017418418, y: -0.00000049037294, z: -0.00000080218643}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136570}
|
||||||
|
m_Father: {fileID: 5686134208185136574}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362842
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136570}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_pinky_ignore
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136570
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362842}
|
||||||
|
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0.01944108, y: 0.00000018051705, z: 0.000000684117}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5686134208185136568}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362844
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136572}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_pinky1
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136572
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362844}
|
||||||
|
m_LocalRotation: {x: -0.018903391, y: 0.0067427186, z: 0.9928664, w: 0.117531024}
|
||||||
|
m_LocalPosition: {x: -0.05356621, y: -0.0024395068, z: 0.0014644878}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136574}
|
||||||
|
m_Father: {fileID: 5686134208185136562}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362846
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136574}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_pinky2
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136574
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362846}
|
||||||
|
m_LocalRotation: {x: -3.4229197e-17, y: -1.2091545e-16, z: -0.16458225, w: 0.98636335}
|
||||||
|
m_LocalPosition: {x: 0.033355847, y: 0.0000004193135, z: 0.00000030447453}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136568}
|
||||||
|
m_Father: {fileID: 5686134208185136572}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362912
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136512}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_ring3
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136512
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362912}
|
||||||
|
m_LocalRotation: {x: -2.9506475e-16, y: -2.9973535e-18, z: -0.08394361, w: 0.9964705}
|
||||||
|
m_LocalPosition: {x: 0.025775367, y: 0.00000023005762, z: 0.00000026507695}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136514}
|
||||||
|
m_Father: {fileID: 5686134208185136518}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362914
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136514}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_ring_ignore
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136514
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362914}
|
||||||
|
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0.024214193, y: -0.00000003789957, z: 0.00000001870374}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5686134208185136512}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362916
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136516}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_ring1
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136516
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362916}
|
||||||
|
m_LocalRotation: {x: -0.10180098, y: 0.5692992, z: 0.8152097, w: 0.031114789}
|
||||||
|
m_LocalPosition: {x: -0.089531094, y: -0.012713966, z: 0.0018533061}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136518}
|
||||||
|
m_Father: {fileID: 5686134208185136550}
|
||||||
|
m_RootOrder: 5
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362918
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136518}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_ring2
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136518
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362918}
|
||||||
|
m_LocalRotation: {x: 1.3919719e-16, y: 5.619185e-17, z: -0.20290461, w: 0.9791985}
|
||||||
|
m_LocalPosition: {x: 0.03857198, y: 0.000000019344908, z: -0.00000011757956}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136512}
|
||||||
|
m_Father: {fileID: 5686134208185136516}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362920
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136520}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_thumb3
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136520
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362920}
|
||||||
|
m_LocalRotation: {x: -1.5489887e-16, y: -6.033373e-17, z: 0.008720745, w: 0.999962}
|
||||||
|
m_LocalPosition: {x: 0.026375083, y: -0.00000313834, z: 0.00000024626075}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136522}
|
||||||
|
m_Father: {fileID: 5686134208185136526}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362922
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136522}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_thumb_ignore
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136522
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362922}
|
||||||
|
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0.034079235, y: 0.00000027444756, z: 0.00000012232366}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5686134208185136520}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362924
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136524}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_thumb1
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136524
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362924}
|
||||||
|
m_LocalRotation: {x: 0.2459623, y: 0.945037, z: -0.031994287, w: 0.21303521}
|
||||||
|
m_LocalPosition: {x: -0.026297215, y: 0.041471086, z: -0.020563869}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136526}
|
||||||
|
m_Father: {fileID: 5686134208185136550}
|
||||||
|
m_RootOrder: 6
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362926
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136526}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:b_r_thumb2
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136526
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362926}
|
||||||
|
m_LocalRotation: {x: -2.086314e-17, y: -1.4421555e-16, z: -0.14235, w: 0.9898164}
|
||||||
|
m_LocalPosition: {x: 0.03258561, y: 0.0000027154815, z: -0.00000027681938}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136520}
|
||||||
|
m_Father: {fileID: 5686134208185136524}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362928
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136528}
|
||||||
|
- component: {fileID: 5686134208196863108}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:Rhand
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136528
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362928}
|
||||||
|
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: 5686134208185136532}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!137 &5686134208196863108
|
||||||
|
SkinnedMeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362928}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: 3637b758ff163493f8bb8b6d7e96d7ae, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
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
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Quality: 0
|
||||||
|
m_UpdateWhenOffscreen: 0
|
||||||
|
m_SkinnedMotionVectors: 1
|
||||||
|
m_Mesh: {fileID: 4300000, guid: d0c255d07fd68f14b94e55d388e7e6bb, type: 3}
|
||||||
|
m_Bones:
|
||||||
|
- {fileID: 5686134208185136534}
|
||||||
|
- {fileID: 5686134208185136550}
|
||||||
|
- {fileID: 5686134208185136516}
|
||||||
|
- {fileID: 5686134208185136518}
|
||||||
|
- {fileID: 5686134208185136512}
|
||||||
|
- {fileID: 5686134208185136514}
|
||||||
|
- {fileID: 5686134208185136554}
|
||||||
|
- {fileID: 5686134208185136564}
|
||||||
|
- {fileID: 5686134208185136566}
|
||||||
|
- {fileID: 5686134208185136560}
|
||||||
|
- {fileID: 5686134208185136546}
|
||||||
|
- {fileID: 5686134208185136556}
|
||||||
|
- {fileID: 5686134208185136558}
|
||||||
|
- {fileID: 5686134208185136552}
|
||||||
|
- {fileID: 5686134208185136562}
|
||||||
|
- {fileID: 5686134208185136572}
|
||||||
|
- {fileID: 5686134208185136574}
|
||||||
|
- {fileID: 5686134208185136568}
|
||||||
|
- {fileID: 5686134208185136570}
|
||||||
|
- {fileID: 5686134208185136524}
|
||||||
|
- {fileID: 5686134208185136526}
|
||||||
|
- {fileID: 5686134208185136520}
|
||||||
|
- {fileID: 5686134208185136522}
|
||||||
|
- {fileID: 5686134208185136544}
|
||||||
|
- {fileID: 5686134208185136548}
|
||||||
|
m_BlendShapeWeights: []
|
||||||
|
m_RootBone: {fileID: 5686134208185136534}
|
||||||
|
m_AABB:
|
||||||
|
m_Center: {x: -0.0072079375, y: -0.035964184, z: -0.06280201}
|
||||||
|
m_Extent: {x: 0.07287095, y: 0.09202262, z: 0.10613526}
|
||||||
|
m_DirtyAABB: 0
|
||||||
|
--- !u!1 &5686134208185362930
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136530}
|
||||||
|
- component: {fileID: 5686134208192617028}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Custom Right Hand Model
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136530
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362930}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068}
|
||||||
|
m_LocalPosition: {x: -0.001, y: 0.001, z: -0.035}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136532}
|
||||||
|
- {fileID: 5686134208185136534}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
|
||||||
|
--- !u!95 &5686134208192617028
|
||||||
|
Animator:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362930}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Avatar: {fileID: 9000000, guid: d0c255d07fd68f14b94e55d388e7e6bb, type: 3}
|
||||||
|
m_Controller: {fileID: 9100000, guid: 011fededf8deb2f479afbcb453d11410, type: 2}
|
||||||
|
m_CullingMode: 1
|
||||||
|
m_UpdateMode: 0
|
||||||
|
m_ApplyRootMotion: 0
|
||||||
|
m_LinearVelocityBlending: 0
|
||||||
|
m_WarningMessage:
|
||||||
|
m_HasTransformHierarchy: 1
|
||||||
|
m_AllowConstantClipSamplingOptimization: 1
|
||||||
|
m_KeepAnimatorControllerStateOnDisable: 0
|
||||||
|
--- !u!1 &5686134208185362932
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136532}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:hands_geom
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136532
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362932}
|
||||||
|
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: 5686134208185136528}
|
||||||
|
m_Father: {fileID: 5686134208185136530}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &5686134208185362934
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5686134208185136534}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: hands:r_hand_world
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5686134208185136534
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5686134208185362934}
|
||||||
|
m_LocalRotation: {x: 0.7599481, y: 0.541514, z: -0.17099279, w: -0.31623262}
|
||||||
|
m_LocalPosition: {x: 0.017749999, y: 0.049009997, z: -0.0717}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5686134208185136550}
|
||||||
|
m_Father: {fileID: 5686134208185136530}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d2121c8d819597349ac6f3e6043fa1f3
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
115
Assets/Oculus Hands Physics/Prefabs/Left Hand Presence.prefab
Normal file
115
Assets/Oculus Hands Physics/Prefabs/Left Hand Presence.prefab
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &3621981467535291326
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3621981467535291324}
|
||||||
|
- component: {fileID: 3621981467535291327}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Left Hand Presence
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &3621981467535291324
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3621981467535291326}
|
||||||
|
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: 109434733568965634}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &3621981467535291327
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3621981467535291326}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 99b4a737903b82a43bb95804a2149147, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
controllerCharacteristics: 320
|
||||||
|
handAnimator: {fileID: 109434733575885780}
|
||||||
|
--- !u!1001 &1525868671
|
||||||
|
PrefabInstance:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Modification:
|
||||||
|
m_TransformParent: {fileID: 3621981467535291324}
|
||||||
|
m_Modifications:
|
||||||
|
- target: {fileID: 109434732395284509, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
propertyPath: m_Name
|
||||||
|
value: Custom Left Hand Model
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 109434732395451517, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
propertyPath: m_RootOrder
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 109434732395451517, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.x
|
||||||
|
value: -0.001
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 109434732395451517, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.y
|
||||||
|
value: 0.001
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 109434732395451517, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.z
|
||||||
|
value: -0.035
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 109434732395451517, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.w
|
||||||
|
value: 0.7071068
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 109434732395451517, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 109434732395451517, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 109434732395451517, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.z
|
||||||
|
value: 0.7071068
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 109434732395451517, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 109434732395451517, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 109434732395451517, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
|
value: 90
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
m_RemovedComponents: []
|
||||||
|
m_SourcePrefab: {fileID: 100100000, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
--- !u!4 &109434733568965634 stripped
|
||||||
|
Transform:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 109434732395451517, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 1525868671}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!95 &109434733575885780 stripped
|
||||||
|
Animator:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 109434732388006827, guid: 7811abe38615a86438f679bcf79f5b92, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 1525868671}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6c2509c76b281144cb0099fc45f17a09
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
115
Assets/Oculus Hands Physics/Prefabs/Right Hand Presence.prefab
Normal file
115
Assets/Oculus Hands Physics/Prefabs/Right Hand Presence.prefab
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &3621981467535291326
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3621981467535291324}
|
||||||
|
- component: {fileID: 3621981467535291327}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Right Hand Presence
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &3621981467535291324
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3621981467535291326}
|
||||||
|
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: 5686134208553950744}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &3621981467535291327
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3621981467535291326}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 99b4a737903b82a43bb95804a2149147, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
controllerCharacteristics: 576
|
||||||
|
handAnimator: {fileID: 5686134208563048910}
|
||||||
|
--- !u!1001 &907832202
|
||||||
|
PrefabInstance:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Modification:
|
||||||
|
m_TransformParent: {fileID: 3621981467535291324}
|
||||||
|
m_Modifications:
|
||||||
|
- target: {fileID: 5686134208185136530, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
propertyPath: m_RootOrder
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5686134208185136530, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.x
|
||||||
|
value: -0.001
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5686134208185136530, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.y
|
||||||
|
value: 0.001
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5686134208185136530, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.z
|
||||||
|
value: -0.035
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5686134208185136530, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.w
|
||||||
|
value: 0.7071068
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5686134208185136530, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5686134208185136530, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5686134208185136530, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.z
|
||||||
|
value: -0.7071068
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5686134208185136530, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5686134208185136530, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5686134208185136530, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
|
value: -90
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5686134208185362930, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
propertyPath: m_Name
|
||||||
|
value: Custom Right Hand Model
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
m_RemovedComponents: []
|
||||||
|
m_SourcePrefab: {fileID: 100100000, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
--- !u!4 &5686134208553950744 stripped
|
||||||
|
Transform:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 5686134208185136530, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 907832202}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!95 &5686134208563048910 stripped
|
||||||
|
Animator:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 5686134208192617028, guid: d2121c8d819597349ac6f3e6043fa1f3, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 907832202}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ddc38db09f9124241b4b4e9b2b9831eb
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Oculus Hands Physics/Scripts.meta
Normal file
8
Assets/Oculus Hands Physics/Scripts.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fe37bd8dfb4a37b499eab19f16f57fdb
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
61
Assets/Oculus Hands Physics/Scripts/HandPresence.cs
Normal file
61
Assets/Oculus Hands Physics/Scripts/HandPresence.cs
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.XR;
|
||||||
|
|
||||||
|
public class HandPresence : MonoBehaviour
|
||||||
|
{
|
||||||
|
public InputDeviceCharacteristics controllerCharacteristics;
|
||||||
|
private InputDevice targetDevice;
|
||||||
|
public Animator handAnimator;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
TryInitialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TryInitialize()
|
||||||
|
{
|
||||||
|
List<InputDevice> devices = new List<InputDevice>();
|
||||||
|
|
||||||
|
InputDevices.GetDevicesWithCharacteristics(controllerCharacteristics, devices);
|
||||||
|
if (devices.Count > 0)
|
||||||
|
{
|
||||||
|
targetDevice = devices[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateHandAnimation()
|
||||||
|
{
|
||||||
|
if(targetDevice.TryGetFeatureValue(CommonUsages.trigger, out float triggerValue))
|
||||||
|
{
|
||||||
|
handAnimator.SetFloat("Trigger", triggerValue);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
handAnimator.SetFloat("Trigger", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (targetDevice.TryGetFeatureValue(CommonUsages.grip, out float gripValue))
|
||||||
|
{
|
||||||
|
handAnimator.SetFloat("Grip", gripValue);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
handAnimator.SetFloat("Grip", 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is called once per frame
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
if(!targetDevice.isValid)
|
||||||
|
{
|
||||||
|
TryInitialize();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UpdateHandAnimation();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Oculus Hands Physics/Scripts/HandPresence.cs.meta
Normal file
11
Assets/Oculus Hands Physics/Scripts/HandPresence.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 99b4a737903b82a43bb95804a2149147
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -2,20 +2,25 @@
|
|||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 6
|
serializedVersion: 8
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_Name: MetaLocoTutorialUIMat
|
m_Name: MetaLocoTutorialUIMat
|
||||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_ShaderKeywords: _EMISSION
|
m_Parent: {fileID: 0}
|
||||||
m_LightmapFlags: 5
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords:
|
||||||
|
- _EMISSION
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 1
|
||||||
m_EnableInstancingVariants: 0
|
m_EnableInstancingVariants: 0
|
||||||
m_DoubleSidedGI: 0
|
m_DoubleSidedGI: 0
|
||||||
m_CustomRenderQueue: -1
|
m_CustomRenderQueue: -1
|
||||||
stringTagMap: {}
|
stringTagMap: {}
|
||||||
disabledShaderPasses: []
|
disabledShaderPasses: []
|
||||||
|
m_LockedProperties:
|
||||||
m_SavedProperties:
|
m_SavedProperties:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TexEnvs:
|
m_TexEnvs:
|
||||||
@@ -55,6 +60,7 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _BumpScale: 1
|
- _BumpScale: 1
|
||||||
- _Cutoff: 0.5
|
- _Cutoff: 0.5
|
||||||
|
|||||||
@@ -1,173 +1,65 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 1ae9aefe37a62de429ddc2edd1ca36f3
|
guid: 1ae9aefe37a62de429ddc2edd1ca36f3
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 22200
|
serializedVersion: 22
|
||||||
internalIDToNameTable:
|
fileIDToRecycleName:
|
||||||
- first:
|
100000: hands:b_l_grip
|
||||||
1: 100000
|
100002: hands:b_l_hand
|
||||||
second: hands:b_l_grip
|
100004: hands:b_l_hand_ignore
|
||||||
- first:
|
100006: hands:b_l_index1
|
||||||
1: 100002
|
100008: hands:b_l_index2
|
||||||
second: hands:b_l_hand
|
100010: hands:b_l_index3
|
||||||
- first:
|
100012: hands:b_l_index_ignore
|
||||||
1: 100004
|
100014: hands:b_l_middle1
|
||||||
second: hands:b_l_hand_ignore
|
100016: hands:b_l_middle2
|
||||||
- first:
|
100018: hands:b_l_middle3
|
||||||
1: 100006
|
100020: hands:b_l_middle_ignore
|
||||||
second: hands:b_l_index1
|
100022: hands:b_l_pinky0
|
||||||
- first:
|
100024: hands:b_l_pinky1
|
||||||
1: 100008
|
100026: hands:b_l_pinky2
|
||||||
second: hands:b_l_index2
|
100028: hands:b_l_pinky3
|
||||||
- first:
|
100030: hands:b_l_pinky_ignore
|
||||||
1: 100010
|
100032: hands:b_l_ring1
|
||||||
second: hands:b_l_index3
|
100034: hands:b_l_ring2
|
||||||
- first:
|
100036: hands:b_l_ring3
|
||||||
1: 100012
|
100038: hands:b_l_ring_ignore
|
||||||
second: hands:b_l_index_ignore
|
100040: hands:b_l_thumb1
|
||||||
- first:
|
100042: hands:b_l_thumb2
|
||||||
1: 100014
|
100044: hands:b_l_thumb3
|
||||||
second: hands:b_l_middle1
|
100046: hands:b_l_thumb_ignore
|
||||||
- first:
|
100048: hands:l_hand_world
|
||||||
1: 100016
|
100050: //RootNode
|
||||||
second: hands:b_l_middle2
|
400000: hands:b_l_grip
|
||||||
- first:
|
400002: hands:b_l_hand
|
||||||
1: 100018
|
400004: hands:b_l_hand_ignore
|
||||||
second: hands:b_l_middle3
|
400006: hands:b_l_index1
|
||||||
- first:
|
400008: hands:b_l_index2
|
||||||
1: 100020
|
400010: hands:b_l_index3
|
||||||
second: hands:b_l_middle_ignore
|
400012: hands:b_l_index_ignore
|
||||||
- first:
|
400014: hands:b_l_middle1
|
||||||
1: 100022
|
400016: hands:b_l_middle2
|
||||||
second: hands:b_l_pinky0
|
400018: hands:b_l_middle3
|
||||||
- first:
|
400020: hands:b_l_middle_ignore
|
||||||
1: 100024
|
400022: hands:b_l_pinky0
|
||||||
second: hands:b_l_pinky1
|
400024: hands:b_l_pinky1
|
||||||
- first:
|
400026: hands:b_l_pinky2
|
||||||
1: 100026
|
400028: hands:b_l_pinky3
|
||||||
second: hands:b_l_pinky2
|
400030: hands:b_l_pinky_ignore
|
||||||
- first:
|
400032: hands:b_l_ring1
|
||||||
1: 100028
|
400034: hands:b_l_ring2
|
||||||
second: hands:b_l_pinky3
|
400036: hands:b_l_ring3
|
||||||
- first:
|
400038: hands:b_l_ring_ignore
|
||||||
1: 100030
|
400040: hands:b_l_thumb1
|
||||||
second: hands:b_l_pinky_ignore
|
400042: hands:b_l_thumb2
|
||||||
- first:
|
400044: hands:b_l_thumb3
|
||||||
1: 100032
|
400046: hands:b_l_thumb_ignore
|
||||||
second: hands:b_l_ring1
|
400048: hands:l_hand_world
|
||||||
- first:
|
400050: //RootNode
|
||||||
1: 100034
|
7400000: Take 001
|
||||||
second: hands:b_l_ring2
|
9500000: //RootNode
|
||||||
- first:
|
|
||||||
1: 100036
|
|
||||||
second: hands:b_l_ring3
|
|
||||||
- first:
|
|
||||||
1: 100038
|
|
||||||
second: hands:b_l_ring_ignore
|
|
||||||
- first:
|
|
||||||
1: 100040
|
|
||||||
second: hands:b_l_thumb1
|
|
||||||
- first:
|
|
||||||
1: 100042
|
|
||||||
second: hands:b_l_thumb2
|
|
||||||
- first:
|
|
||||||
1: 100044
|
|
||||||
second: hands:b_l_thumb3
|
|
||||||
- first:
|
|
||||||
1: 100046
|
|
||||||
second: hands:b_l_thumb_ignore
|
|
||||||
- first:
|
|
||||||
1: 100048
|
|
||||||
second: hands:l_hand_world
|
|
||||||
- first:
|
|
||||||
1: 100050
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
4: 400000
|
|
||||||
second: hands:b_l_grip
|
|
||||||
- first:
|
|
||||||
4: 400002
|
|
||||||
second: hands:b_l_hand
|
|
||||||
- first:
|
|
||||||
4: 400004
|
|
||||||
second: hands:b_l_hand_ignore
|
|
||||||
- first:
|
|
||||||
4: 400006
|
|
||||||
second: hands:b_l_index1
|
|
||||||
- first:
|
|
||||||
4: 400008
|
|
||||||
second: hands:b_l_index2
|
|
||||||
- first:
|
|
||||||
4: 400010
|
|
||||||
second: hands:b_l_index3
|
|
||||||
- first:
|
|
||||||
4: 400012
|
|
||||||
second: hands:b_l_index_ignore
|
|
||||||
- first:
|
|
||||||
4: 400014
|
|
||||||
second: hands:b_l_middle1
|
|
||||||
- first:
|
|
||||||
4: 400016
|
|
||||||
second: hands:b_l_middle2
|
|
||||||
- first:
|
|
||||||
4: 400018
|
|
||||||
second: hands:b_l_middle3
|
|
||||||
- first:
|
|
||||||
4: 400020
|
|
||||||
second: hands:b_l_middle_ignore
|
|
||||||
- first:
|
|
||||||
4: 400022
|
|
||||||
second: hands:b_l_pinky0
|
|
||||||
- first:
|
|
||||||
4: 400024
|
|
||||||
second: hands:b_l_pinky1
|
|
||||||
- first:
|
|
||||||
4: 400026
|
|
||||||
second: hands:b_l_pinky2
|
|
||||||
- first:
|
|
||||||
4: 400028
|
|
||||||
second: hands:b_l_pinky3
|
|
||||||
- first:
|
|
||||||
4: 400030
|
|
||||||
second: hands:b_l_pinky_ignore
|
|
||||||
- first:
|
|
||||||
4: 400032
|
|
||||||
second: hands:b_l_ring1
|
|
||||||
- first:
|
|
||||||
4: 400034
|
|
||||||
second: hands:b_l_ring2
|
|
||||||
- first:
|
|
||||||
4: 400036
|
|
||||||
second: hands:b_l_ring3
|
|
||||||
- first:
|
|
||||||
4: 400038
|
|
||||||
second: hands:b_l_ring_ignore
|
|
||||||
- first:
|
|
||||||
4: 400040
|
|
||||||
second: hands:b_l_thumb1
|
|
||||||
- first:
|
|
||||||
4: 400042
|
|
||||||
second: hands:b_l_thumb2
|
|
||||||
- first:
|
|
||||||
4: 400044
|
|
||||||
second: hands:b_l_thumb3
|
|
||||||
- first:
|
|
||||||
4: 400046
|
|
||||||
second: hands:b_l_thumb_ignore
|
|
||||||
- first:
|
|
||||||
4: 400048
|
|
||||||
second: hands:l_hand_world
|
|
||||||
- first:
|
|
||||||
4: 400050
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
74: 7400000
|
|
||||||
second: Take 001
|
|
||||||
- first:
|
|
||||||
95: 9500000
|
|
||||||
second: //RootNode
|
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
materials:
|
materials:
|
||||||
materialImportMode: 1
|
importMaterials: 1
|
||||||
materialName: 0
|
materialName: 0
|
||||||
materialSearch: 1
|
materialSearch: 1
|
||||||
materialLocation: 1
|
materialLocation: 1
|
||||||
@@ -176,7 +68,6 @@ ModelImporter:
|
|||||||
bakeSimulation: 0
|
bakeSimulation: 0
|
||||||
resampleCurves: 1
|
resampleCurves: 1
|
||||||
optimizeGameObjects: 0
|
optimizeGameObjects: 0
|
||||||
removeConstantScaleCurves: 0
|
|
||||||
motionNodeName:
|
motionNodeName:
|
||||||
rigImportErrors:
|
rigImportErrors:
|
||||||
rigImportWarnings:
|
rigImportWarnings:
|
||||||
@@ -185,7 +76,6 @@ ModelImporter:
|
|||||||
animationRetargetingWarnings:
|
animationRetargetingWarnings:
|
||||||
animationDoRetargetingWarnings: 0
|
animationDoRetargetingWarnings: 0
|
||||||
importAnimatedCustomProperties: 0
|
importAnimatedCustomProperties: 0
|
||||||
importConstraints: 0
|
|
||||||
animationCompression: 1
|
animationCompression: 1
|
||||||
animationRotationError: 0.5
|
animationRotationError: 0.5
|
||||||
animationPositionError: 0.5
|
animationPositionError: 0.5
|
||||||
@@ -200,48 +90,32 @@ ModelImporter:
|
|||||||
globalScale: 1
|
globalScale: 1
|
||||||
meshCompression: 0
|
meshCompression: 0
|
||||||
addColliders: 0
|
addColliders: 0
|
||||||
useSRGBMaterialColor: 1
|
|
||||||
sortHierarchyByName: 1
|
|
||||||
importVisibility: 1
|
importVisibility: 1
|
||||||
importBlendShapes: 1
|
importBlendShapes: 1
|
||||||
importCameras: 1
|
importCameras: 1
|
||||||
importLights: 1
|
importLights: 1
|
||||||
nodeNameCollisionStrategy: 0
|
|
||||||
fileIdsGeneration: 1
|
|
||||||
swapUVChannels: 0
|
swapUVChannels: 0
|
||||||
generateSecondaryUV: 1
|
generateSecondaryUV: 0
|
||||||
useFileUnits: 1
|
useFileUnits: 1
|
||||||
|
optimizeMeshForGPU: 1
|
||||||
keepQuads: 0
|
keepQuads: 0
|
||||||
weldVertices: 1
|
weldVertices: 1
|
||||||
bakeAxisConversion: 0
|
|
||||||
preserveHierarchy: 0
|
preserveHierarchy: 0
|
||||||
skinWeightsMode: 0
|
|
||||||
maxBonesPerVertex: 4
|
|
||||||
minBoneWeight: 0.001
|
|
||||||
optimizeBones: 1
|
|
||||||
meshOptimizationFlags: -1
|
|
||||||
indexFormat: 0
|
indexFormat: 0
|
||||||
secondaryUVAngleDistortion: 8
|
secondaryUVAngleDistortion: 8
|
||||||
secondaryUVAreaDistortion: 15
|
secondaryUVAreaDistortion: 15.000001
|
||||||
secondaryUVHardAngle: 88
|
secondaryUVHardAngle: 88
|
||||||
secondaryUVMarginMethod: 1
|
|
||||||
secondaryUVMinLightmapResolution: 1
|
|
||||||
secondaryUVMinObjectScale: 1
|
|
||||||
secondaryUVPackMargin: 4
|
secondaryUVPackMargin: 4
|
||||||
useFileScale: 1
|
useFileScale: 1
|
||||||
strictVertexDataChecks: 0
|
|
||||||
tangentSpace:
|
tangentSpace:
|
||||||
normalSmoothAngle: 60
|
normalSmoothAngle: 60
|
||||||
normalImportMode: 0
|
normalImportMode: 0
|
||||||
tangentImportMode: 3
|
tangentImportMode: 3
|
||||||
normalCalculationMode: 4
|
normalCalculationMode: 4
|
||||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
|
|
||||||
blendShapeNormalImportMode: 1
|
|
||||||
normalSmoothingSource: 0
|
|
||||||
referencedClips: []
|
|
||||||
importAnimation: 1
|
importAnimation: 1
|
||||||
|
copyAvatar: 0
|
||||||
humanDescription:
|
humanDescription:
|
||||||
serializedVersion: 3
|
serializedVersion: 2
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: 0.5
|
armTwist: 0.5
|
||||||
@@ -251,19 +125,14 @@ ModelImporter:
|
|||||||
armStretch: 0.05
|
armStretch: 0.05
|
||||||
legStretch: 0.05
|
legStretch: 0.05
|
||||||
feetSpacing: 0
|
feetSpacing: 0
|
||||||
globalScale: 1
|
|
||||||
rootMotionBoneName:
|
rootMotionBoneName:
|
||||||
|
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
hasTranslationDoF: 0
|
hasTranslationDoF: 0
|
||||||
hasExtraRoot: 0
|
hasExtraRoot: 0
|
||||||
skeletonHasParents: 1
|
skeletonHasParents: 1
|
||||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||||
autoGenerateAvatarMappingIfUnspecified: 1
|
|
||||||
animationType: 2
|
animationType: 2
|
||||||
humanoidOversampling: 1
|
humanoidOversampling: 1
|
||||||
avatarSetup: 1
|
|
||||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
|
|
||||||
importBlendShapeDeformPercent: 0
|
|
||||||
remapMaterialsIfMaterialImportModeIsNone: 1
|
|
||||||
additionalBone: 0
|
additionalBone: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
|
|||||||
@@ -1,203 +1,87 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 7cb2e1480bb51ce4282f540ea3f41d4f
|
guid: 7cb2e1480bb51ce4282f540ea3f41d4f
|
||||||
|
timeCreated: 1437585934
|
||||||
|
licenseType: Store
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 22200
|
serializedVersion: 18
|
||||||
internalIDToNameTable:
|
fileIDToRecycleName:
|
||||||
- first:
|
100000: hands:b_l_grip
|
||||||
1: 100000
|
100002: hands:b_l_hand
|
||||||
second: hands:b_l_grip
|
100004: hands:b_l_hand_ignore
|
||||||
- first:
|
100006: hands:b_l_index1
|
||||||
1: 100002
|
100008: hands:b_l_index2
|
||||||
second: hands:b_l_hand
|
100010: hands:b_l_index3
|
||||||
- first:
|
100012: hands:b_l_index_ignore
|
||||||
1: 100004
|
100014: hands:b_l_middle1
|
||||||
second: hands:b_l_hand_ignore
|
100016: hands:b_l_middle2
|
||||||
- first:
|
100018: hands:b_l_middle3
|
||||||
1: 100006
|
100020: hands:b_l_middle_ignore
|
||||||
second: hands:b_l_index1
|
100022: hands:b_l_pinky0
|
||||||
- first:
|
100024: hands:b_l_pinky1
|
||||||
1: 100008
|
100026: hands:b_l_pinky2
|
||||||
second: hands:b_l_index2
|
100028: hands:b_l_pinky3
|
||||||
- first:
|
100030: hands:b_l_pinky_ignore
|
||||||
1: 100010
|
100032: hands:b_l_ring1
|
||||||
second: hands:b_l_index3
|
100034: hands:b_l_ring2
|
||||||
- first:
|
100036: hands:b_l_ring3
|
||||||
1: 100012
|
100038: hands:b_l_ring_ignore
|
||||||
second: hands:b_l_index_ignore
|
100040: hands:b_l_thumb1
|
||||||
- first:
|
100042: hands:b_l_thumb2
|
||||||
1: 100014
|
100044: hands:b_l_thumb3
|
||||||
second: hands:b_l_middle1
|
100046: hands:b_l_thumb_ignore
|
||||||
- first:
|
100048: hands:l_hand_world
|
||||||
1: 100016
|
100050: //RootNode
|
||||||
second: hands:b_l_middle2
|
400000: hands:b_l_grip
|
||||||
- first:
|
400002: hands:b_l_hand
|
||||||
1: 100018
|
400004: hands:b_l_hand_ignore
|
||||||
second: hands:b_l_middle3
|
400006: hands:b_l_index1
|
||||||
- first:
|
400008: hands:b_l_index2
|
||||||
1: 100020
|
400010: hands:b_l_index3
|
||||||
second: hands:b_l_middle_ignore
|
400012: hands:b_l_index_ignore
|
||||||
- first:
|
400014: hands:b_l_middle1
|
||||||
1: 100022
|
400016: hands:b_l_middle2
|
||||||
second: hands:b_l_pinky0
|
400018: hands:b_l_middle3
|
||||||
- first:
|
400020: hands:b_l_middle_ignore
|
||||||
1: 100024
|
400022: hands:b_l_pinky0
|
||||||
second: hands:b_l_pinky1
|
400024: hands:b_l_pinky1
|
||||||
- first:
|
400026: hands:b_l_pinky2
|
||||||
1: 100026
|
400028: hands:b_l_pinky3
|
||||||
second: hands:b_l_pinky2
|
400030: hands:b_l_pinky_ignore
|
||||||
- first:
|
400032: hands:b_l_ring1
|
||||||
1: 100028
|
400034: hands:b_l_ring2
|
||||||
second: hands:b_l_pinky3
|
400036: hands:b_l_ring3
|
||||||
- first:
|
400038: hands:b_l_ring_ignore
|
||||||
1: 100030
|
400040: hands:b_l_thumb1
|
||||||
second: hands:b_l_pinky_ignore
|
400042: hands:b_l_thumb2
|
||||||
- first:
|
400044: hands:b_l_thumb3
|
||||||
1: 100032
|
400046: hands:b_l_thumb_ignore
|
||||||
second: hands:b_l_ring1
|
400048: hands:l_hand_world
|
||||||
- first:
|
400050: //RootNode
|
||||||
1: 100034
|
7400000: l_hand_fist
|
||||||
second: hands:b_l_ring2
|
9500000: //RootNode
|
||||||
- first:
|
|
||||||
1: 100036
|
|
||||||
second: hands:b_l_ring3
|
|
||||||
- first:
|
|
||||||
1: 100038
|
|
||||||
second: hands:b_l_ring_ignore
|
|
||||||
- first:
|
|
||||||
1: 100040
|
|
||||||
second: hands:b_l_thumb1
|
|
||||||
- first:
|
|
||||||
1: 100042
|
|
||||||
second: hands:b_l_thumb2
|
|
||||||
- first:
|
|
||||||
1: 100044
|
|
||||||
second: hands:b_l_thumb3
|
|
||||||
- first:
|
|
||||||
1: 100046
|
|
||||||
second: hands:b_l_thumb_ignore
|
|
||||||
- first:
|
|
||||||
1: 100048
|
|
||||||
second: hands:l_hand_world
|
|
||||||
- first:
|
|
||||||
1: 100050
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
4: 400000
|
|
||||||
second: hands:b_l_grip
|
|
||||||
- first:
|
|
||||||
4: 400002
|
|
||||||
second: hands:b_l_hand
|
|
||||||
- first:
|
|
||||||
4: 400004
|
|
||||||
second: hands:b_l_hand_ignore
|
|
||||||
- first:
|
|
||||||
4: 400006
|
|
||||||
second: hands:b_l_index1
|
|
||||||
- first:
|
|
||||||
4: 400008
|
|
||||||
second: hands:b_l_index2
|
|
||||||
- first:
|
|
||||||
4: 400010
|
|
||||||
second: hands:b_l_index3
|
|
||||||
- first:
|
|
||||||
4: 400012
|
|
||||||
second: hands:b_l_index_ignore
|
|
||||||
- first:
|
|
||||||
4: 400014
|
|
||||||
second: hands:b_l_middle1
|
|
||||||
- first:
|
|
||||||
4: 400016
|
|
||||||
second: hands:b_l_middle2
|
|
||||||
- first:
|
|
||||||
4: 400018
|
|
||||||
second: hands:b_l_middle3
|
|
||||||
- first:
|
|
||||||
4: 400020
|
|
||||||
second: hands:b_l_middle_ignore
|
|
||||||
- first:
|
|
||||||
4: 400022
|
|
||||||
second: hands:b_l_pinky0
|
|
||||||
- first:
|
|
||||||
4: 400024
|
|
||||||
second: hands:b_l_pinky1
|
|
||||||
- first:
|
|
||||||
4: 400026
|
|
||||||
second: hands:b_l_pinky2
|
|
||||||
- first:
|
|
||||||
4: 400028
|
|
||||||
second: hands:b_l_pinky3
|
|
||||||
- first:
|
|
||||||
4: 400030
|
|
||||||
second: hands:b_l_pinky_ignore
|
|
||||||
- first:
|
|
||||||
4: 400032
|
|
||||||
second: hands:b_l_ring1
|
|
||||||
- first:
|
|
||||||
4: 400034
|
|
||||||
second: hands:b_l_ring2
|
|
||||||
- first:
|
|
||||||
4: 400036
|
|
||||||
second: hands:b_l_ring3
|
|
||||||
- first:
|
|
||||||
4: 400038
|
|
||||||
second: hands:b_l_ring_ignore
|
|
||||||
- first:
|
|
||||||
4: 400040
|
|
||||||
second: hands:b_l_thumb1
|
|
||||||
- first:
|
|
||||||
4: 400042
|
|
||||||
second: hands:b_l_thumb2
|
|
||||||
- first:
|
|
||||||
4: 400044
|
|
||||||
second: hands:b_l_thumb3
|
|
||||||
- first:
|
|
||||||
4: 400046
|
|
||||||
second: hands:b_l_thumb_ignore
|
|
||||||
- first:
|
|
||||||
4: 400048
|
|
||||||
second: hands:l_hand_world
|
|
||||||
- first:
|
|
||||||
4: 400050
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
74: 7400000
|
|
||||||
second: l_hand_fist
|
|
||||||
- first:
|
|
||||||
95: 9500000
|
|
||||||
second: //RootNode
|
|
||||||
externalObjects: {}
|
|
||||||
materials:
|
materials:
|
||||||
materialImportMode: 1
|
importMaterials: 1
|
||||||
materialName: 0
|
materialName: 0
|
||||||
materialSearch: 1
|
materialSearch: 1
|
||||||
materialLocation: 0
|
|
||||||
animations:
|
animations:
|
||||||
legacyGenerateAnimations: 4
|
legacyGenerateAnimations: 4
|
||||||
bakeSimulation: 0
|
bakeSimulation: 0
|
||||||
resampleCurves: 1
|
|
||||||
optimizeGameObjects: 0
|
optimizeGameObjects: 0
|
||||||
removeConstantScaleCurves: 0
|
|
||||||
motionNodeName:
|
motionNodeName:
|
||||||
rigImportErrors:
|
|
||||||
rigImportWarnings:
|
|
||||||
animationImportErrors:
|
animationImportErrors:
|
||||||
animationImportWarnings:
|
animationImportWarnings:
|
||||||
animationRetargetingWarnings:
|
animationRetargetingWarnings:
|
||||||
animationDoRetargetingWarnings: 0
|
animationDoRetargetingWarnings: 0
|
||||||
importAnimatedCustomProperties: 0
|
|
||||||
importConstraints: 0
|
|
||||||
animationCompression: 1
|
animationCompression: 1
|
||||||
animationRotationError: 0.5
|
animationRotationError: .5
|
||||||
animationPositionError: 0.5
|
animationPositionError: .5
|
||||||
animationScaleError: 0.5
|
animationScaleError: .5
|
||||||
animationWrapMode: 0
|
animationWrapMode: 0
|
||||||
extraExposedTransformPaths: []
|
extraExposedTransformPaths: []
|
||||||
extraUserProperties: []
|
|
||||||
clipAnimations:
|
clipAnimations:
|
||||||
- serializedVersion: 16
|
- serializedVersion: 16
|
||||||
name: l_hand_fist
|
name: l_hand_fist
|
||||||
takeName: Take 001
|
takeName: Take 001
|
||||||
internalID: 0
|
|
||||||
firstFrame: 0
|
firstFrame: 0
|
||||||
lastFrame: 1
|
lastFrame: 1
|
||||||
wrapMode: 0
|
wrapMode: 0
|
||||||
@@ -205,7 +89,6 @@ ModelImporter:
|
|||||||
level: 0
|
level: 0
|
||||||
cycleOffset: 0
|
cycleOffset: 0
|
||||||
loop: 0
|
loop: 0
|
||||||
hasAdditiveReferencePose: 0
|
|
||||||
loopTime: 0
|
loopTime: 0
|
||||||
loopBlend: 0
|
loopBlend: 0
|
||||||
loopBlendOrientation: 0
|
loopBlendOrientation: 0
|
||||||
@@ -274,78 +157,47 @@ ModelImporter:
|
|||||||
weight: 1
|
weight: 1
|
||||||
maskType: 0
|
maskType: 0
|
||||||
maskSource: {instanceID: 0}
|
maskSource: {instanceID: 0}
|
||||||
additiveReferencePoseFrame: 0
|
|
||||||
isReadable: 1
|
isReadable: 1
|
||||||
meshes:
|
meshes:
|
||||||
lODScreenPercentages: []
|
lODScreenPercentages: []
|
||||||
globalScale: 1
|
globalScale: 1
|
||||||
meshCompression: 0
|
meshCompression: 0
|
||||||
addColliders: 0
|
addColliders: 0
|
||||||
useSRGBMaterialColor: 1
|
|
||||||
sortHierarchyByName: 1
|
|
||||||
importVisibility: 0
|
|
||||||
importBlendShapes: 1
|
importBlendShapes: 1
|
||||||
importCameras: 0
|
|
||||||
importLights: 0
|
|
||||||
nodeNameCollisionStrategy: 0
|
|
||||||
fileIdsGeneration: 1
|
|
||||||
swapUVChannels: 0
|
swapUVChannels: 0
|
||||||
generateSecondaryUV: 1
|
generateSecondaryUV: 0
|
||||||
useFileUnits: 1
|
useFileUnits: 1
|
||||||
|
optimizeMeshForGPU: 1
|
||||||
keepQuads: 0
|
keepQuads: 0
|
||||||
weldVertices: 1
|
weldVertices: 1
|
||||||
bakeAxisConversion: 0
|
|
||||||
preserveHierarchy: 0
|
|
||||||
skinWeightsMode: 0
|
|
||||||
maxBonesPerVertex: 4
|
|
||||||
minBoneWeight: 0.001
|
|
||||||
optimizeBones: 1
|
|
||||||
meshOptimizationFlags: -1
|
|
||||||
indexFormat: 1
|
|
||||||
secondaryUVAngleDistortion: 8
|
secondaryUVAngleDistortion: 8
|
||||||
secondaryUVAreaDistortion: 15
|
secondaryUVAreaDistortion: 15.000001
|
||||||
secondaryUVHardAngle: 88
|
secondaryUVHardAngle: 88
|
||||||
secondaryUVMarginMethod: 1
|
|
||||||
secondaryUVMinLightmapResolution: 1
|
|
||||||
secondaryUVMinObjectScale: 1
|
|
||||||
secondaryUVPackMargin: 4
|
secondaryUVPackMargin: 4
|
||||||
useFileScale: 1
|
useFileScale: 1
|
||||||
strictVertexDataChecks: 0
|
|
||||||
tangentSpace:
|
tangentSpace:
|
||||||
normalSmoothAngle: 60
|
normalSmoothAngle: 60
|
||||||
|
splitTangentsAcrossUV: 1
|
||||||
normalImportMode: 0
|
normalImportMode: 0
|
||||||
tangentImportMode: 4
|
tangentImportMode: 1
|
||||||
normalCalculationMode: 0
|
|
||||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
|
|
||||||
blendShapeNormalImportMode: 1
|
|
||||||
normalSmoothingSource: 0
|
|
||||||
referencedClips: []
|
|
||||||
importAnimation: 1
|
importAnimation: 1
|
||||||
|
copyAvatar: 1
|
||||||
humanDescription:
|
humanDescription:
|
||||||
serializedVersion: 3
|
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: 0.5
|
armTwist: .5
|
||||||
foreArmTwist: 0.5
|
foreArmTwist: .5
|
||||||
upperLegTwist: 0.5
|
upperLegTwist: .5
|
||||||
legTwist: 0.5
|
legTwist: .5
|
||||||
armStretch: 0.05
|
armStretch: .0500000007
|
||||||
legStretch: 0.05
|
legStretch: .0500000007
|
||||||
feetSpacing: 0
|
feetSpacing: 0
|
||||||
globalScale: 1
|
|
||||||
rootMotionBoneName:
|
rootMotionBoneName:
|
||||||
hasTranslationDoF: 0
|
hasTranslationDoF: 0
|
||||||
hasExtraRoot: 0
|
|
||||||
skeletonHasParents: 0
|
|
||||||
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: ace1986d78f1a9c4ba969e1f5439560b,
|
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: ace1986d78f1a9c4ba969e1f5439560b,
|
||||||
type: 3}
|
type: 3}
|
||||||
autoGenerateAvatarMappingIfUnspecified: 1
|
|
||||||
animationType: 2
|
animationType: 2
|
||||||
humanoidOversampling: 1
|
humanoidOversampling: 1
|
||||||
avatarSetup: 2
|
|
||||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
|
|
||||||
importBlendShapeDeformPercent: 0
|
|
||||||
remapMaterialsIfMaterialImportModeIsNone: 1
|
|
||||||
additionalBone: 0
|
additionalBone: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
|
|||||||
@@ -1,203 +1,88 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: a91ff20f7450bf446a6bf0bfb5e932ae
|
guid: a91ff20f7450bf446a6bf0bfb5e932ae
|
||||||
|
timeCreated: 1484004765
|
||||||
|
licenseType: Store
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 22200
|
serializedVersion: 19
|
||||||
internalIDToNameTable:
|
fileIDToRecycleName:
|
||||||
- first:
|
100000: hands:b_l_grip
|
||||||
1: 100000
|
100002: hands:b_l_hand
|
||||||
second: hands:b_l_grip
|
100004: hands:b_l_hand_ignore
|
||||||
- first:
|
100006: hands:b_l_index1
|
||||||
1: 100002
|
100008: hands:b_l_index2
|
||||||
second: hands:b_l_hand
|
100010: hands:b_l_index3
|
||||||
- first:
|
100012: hands:b_l_index_ignore
|
||||||
1: 100004
|
100014: hands:b_l_middle1
|
||||||
second: hands:b_l_hand_ignore
|
100016: hands:b_l_middle2
|
||||||
- first:
|
100018: hands:b_l_middle3
|
||||||
1: 100006
|
100020: hands:b_l_middle_ignore
|
||||||
second: hands:b_l_index1
|
100022: hands:b_l_pinky0
|
||||||
- first:
|
100024: hands:b_l_pinky1
|
||||||
1: 100008
|
100026: hands:b_l_pinky2
|
||||||
second: hands:b_l_index2
|
100028: hands:b_l_pinky3
|
||||||
- first:
|
100030: hands:b_l_pinky_ignore
|
||||||
1: 100010
|
100032: hands:b_l_ring1
|
||||||
second: hands:b_l_index3
|
100034: hands:b_l_ring2
|
||||||
- first:
|
100036: hands:b_l_ring3
|
||||||
1: 100012
|
100038: hands:b_l_ring_ignore
|
||||||
second: hands:b_l_index_ignore
|
100040: hands:b_l_thumb1
|
||||||
- first:
|
100042: hands:b_l_thumb2
|
||||||
1: 100014
|
100044: hands:b_l_thumb3
|
||||||
second: hands:b_l_middle1
|
100046: hands:b_l_thumb_ignore
|
||||||
- first:
|
100048: hands:l_hand_world
|
||||||
1: 100016
|
100050: //RootNode
|
||||||
second: hands:b_l_middle2
|
400000: hands:b_l_grip
|
||||||
- first:
|
400002: hands:b_l_hand
|
||||||
1: 100018
|
400004: hands:b_l_hand_ignore
|
||||||
second: hands:b_l_middle3
|
400006: hands:b_l_index1
|
||||||
- first:
|
400008: hands:b_l_index2
|
||||||
1: 100020
|
400010: hands:b_l_index3
|
||||||
second: hands:b_l_middle_ignore
|
400012: hands:b_l_index_ignore
|
||||||
- first:
|
400014: hands:b_l_middle1
|
||||||
1: 100022
|
400016: hands:b_l_middle2
|
||||||
second: hands:b_l_pinky0
|
400018: hands:b_l_middle3
|
||||||
- first:
|
400020: hands:b_l_middle_ignore
|
||||||
1: 100024
|
400022: hands:b_l_pinky0
|
||||||
second: hands:b_l_pinky1
|
400024: hands:b_l_pinky1
|
||||||
- first:
|
400026: hands:b_l_pinky2
|
||||||
1: 100026
|
400028: hands:b_l_pinky3
|
||||||
second: hands:b_l_pinky2
|
400030: hands:b_l_pinky_ignore
|
||||||
- first:
|
400032: hands:b_l_ring1
|
||||||
1: 100028
|
400034: hands:b_l_ring2
|
||||||
second: hands:b_l_pinky3
|
400036: hands:b_l_ring3
|
||||||
- first:
|
400038: hands:b_l_ring_ignore
|
||||||
1: 100030
|
400040: hands:b_l_thumb1
|
||||||
second: hands:b_l_pinky_ignore
|
400042: hands:b_l_thumb2
|
||||||
- first:
|
400044: hands:b_l_thumb3
|
||||||
1: 100032
|
400046: hands:b_l_thumb_ignore
|
||||||
second: hands:b_l_ring1
|
400048: hands:l_hand_world
|
||||||
- first:
|
400050: //RootNode
|
||||||
1: 100034
|
7400000: l_hand_pinch_anim
|
||||||
second: hands:b_l_ring2
|
9500000: //RootNode
|
||||||
- first:
|
|
||||||
1: 100036
|
|
||||||
second: hands:b_l_ring3
|
|
||||||
- first:
|
|
||||||
1: 100038
|
|
||||||
second: hands:b_l_ring_ignore
|
|
||||||
- first:
|
|
||||||
1: 100040
|
|
||||||
second: hands:b_l_thumb1
|
|
||||||
- first:
|
|
||||||
1: 100042
|
|
||||||
second: hands:b_l_thumb2
|
|
||||||
- first:
|
|
||||||
1: 100044
|
|
||||||
second: hands:b_l_thumb3
|
|
||||||
- first:
|
|
||||||
1: 100046
|
|
||||||
second: hands:b_l_thumb_ignore
|
|
||||||
- first:
|
|
||||||
1: 100048
|
|
||||||
second: hands:l_hand_world
|
|
||||||
- first:
|
|
||||||
1: 100050
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
4: 400000
|
|
||||||
second: hands:b_l_grip
|
|
||||||
- first:
|
|
||||||
4: 400002
|
|
||||||
second: hands:b_l_hand
|
|
||||||
- first:
|
|
||||||
4: 400004
|
|
||||||
second: hands:b_l_hand_ignore
|
|
||||||
- first:
|
|
||||||
4: 400006
|
|
||||||
second: hands:b_l_index1
|
|
||||||
- first:
|
|
||||||
4: 400008
|
|
||||||
second: hands:b_l_index2
|
|
||||||
- first:
|
|
||||||
4: 400010
|
|
||||||
second: hands:b_l_index3
|
|
||||||
- first:
|
|
||||||
4: 400012
|
|
||||||
second: hands:b_l_index_ignore
|
|
||||||
- first:
|
|
||||||
4: 400014
|
|
||||||
second: hands:b_l_middle1
|
|
||||||
- first:
|
|
||||||
4: 400016
|
|
||||||
second: hands:b_l_middle2
|
|
||||||
- first:
|
|
||||||
4: 400018
|
|
||||||
second: hands:b_l_middle3
|
|
||||||
- first:
|
|
||||||
4: 400020
|
|
||||||
second: hands:b_l_middle_ignore
|
|
||||||
- first:
|
|
||||||
4: 400022
|
|
||||||
second: hands:b_l_pinky0
|
|
||||||
- first:
|
|
||||||
4: 400024
|
|
||||||
second: hands:b_l_pinky1
|
|
||||||
- first:
|
|
||||||
4: 400026
|
|
||||||
second: hands:b_l_pinky2
|
|
||||||
- first:
|
|
||||||
4: 400028
|
|
||||||
second: hands:b_l_pinky3
|
|
||||||
- first:
|
|
||||||
4: 400030
|
|
||||||
second: hands:b_l_pinky_ignore
|
|
||||||
- first:
|
|
||||||
4: 400032
|
|
||||||
second: hands:b_l_ring1
|
|
||||||
- first:
|
|
||||||
4: 400034
|
|
||||||
second: hands:b_l_ring2
|
|
||||||
- first:
|
|
||||||
4: 400036
|
|
||||||
second: hands:b_l_ring3
|
|
||||||
- first:
|
|
||||||
4: 400038
|
|
||||||
second: hands:b_l_ring_ignore
|
|
||||||
- first:
|
|
||||||
4: 400040
|
|
||||||
second: hands:b_l_thumb1
|
|
||||||
- first:
|
|
||||||
4: 400042
|
|
||||||
second: hands:b_l_thumb2
|
|
||||||
- first:
|
|
||||||
4: 400044
|
|
||||||
second: hands:b_l_thumb3
|
|
||||||
- first:
|
|
||||||
4: 400046
|
|
||||||
second: hands:b_l_thumb_ignore
|
|
||||||
- first:
|
|
||||||
4: 400048
|
|
||||||
second: hands:l_hand_world
|
|
||||||
- first:
|
|
||||||
4: 400050
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
74: 7400000
|
|
||||||
second: l_hand_pinch_anim
|
|
||||||
- first:
|
|
||||||
95: 9500000
|
|
||||||
second: //RootNode
|
|
||||||
externalObjects: {}
|
|
||||||
materials:
|
materials:
|
||||||
materialImportMode: 1
|
importMaterials: 1
|
||||||
materialName: 0
|
materialName: 0
|
||||||
materialSearch: 1
|
materialSearch: 1
|
||||||
materialLocation: 0
|
|
||||||
animations:
|
animations:
|
||||||
legacyGenerateAnimations: 4
|
legacyGenerateAnimations: 4
|
||||||
bakeSimulation: 0
|
bakeSimulation: 0
|
||||||
resampleCurves: 1
|
resampleCurves: 1
|
||||||
optimizeGameObjects: 0
|
optimizeGameObjects: 0
|
||||||
removeConstantScaleCurves: 0
|
|
||||||
motionNodeName:
|
motionNodeName:
|
||||||
rigImportErrors:
|
|
||||||
rigImportWarnings:
|
|
||||||
animationImportErrors:
|
animationImportErrors:
|
||||||
animationImportWarnings:
|
animationImportWarnings:
|
||||||
animationRetargetingWarnings:
|
animationRetargetingWarnings:
|
||||||
animationDoRetargetingWarnings: 0
|
animationDoRetargetingWarnings: 0
|
||||||
importAnimatedCustomProperties: 0
|
|
||||||
importConstraints: 0
|
|
||||||
animationCompression: 1
|
animationCompression: 1
|
||||||
animationRotationError: 0.5
|
animationRotationError: 0.5
|
||||||
animationPositionError: 0.5
|
animationPositionError: 0.5
|
||||||
animationScaleError: 0.5
|
animationScaleError: 0.5
|
||||||
animationWrapMode: 0
|
animationWrapMode: 0
|
||||||
extraExposedTransformPaths: []
|
extraExposedTransformPaths: []
|
||||||
extraUserProperties: []
|
|
||||||
clipAnimations:
|
clipAnimations:
|
||||||
- serializedVersion: 16
|
- serializedVersion: 16
|
||||||
name: l_hand_pinch_anim
|
name: l_hand_pinch_anim
|
||||||
takeName: Take 001
|
takeName: Take 001
|
||||||
internalID: 0
|
|
||||||
firstFrame: 4
|
firstFrame: 4
|
||||||
lastFrame: 5
|
lastFrame: 5
|
||||||
wrapMode: 0
|
wrapMode: 0
|
||||||
@@ -281,48 +166,26 @@ ModelImporter:
|
|||||||
globalScale: 1
|
globalScale: 1
|
||||||
meshCompression: 0
|
meshCompression: 0
|
||||||
addColliders: 0
|
addColliders: 0
|
||||||
useSRGBMaterialColor: 1
|
|
||||||
sortHierarchyByName: 1
|
|
||||||
importVisibility: 0
|
|
||||||
importBlendShapes: 1
|
importBlendShapes: 1
|
||||||
importCameras: 0
|
|
||||||
importLights: 0
|
|
||||||
nodeNameCollisionStrategy: 0
|
|
||||||
fileIdsGeneration: 1
|
|
||||||
swapUVChannels: 0
|
swapUVChannels: 0
|
||||||
generateSecondaryUV: 1
|
generateSecondaryUV: 0
|
||||||
useFileUnits: 1
|
useFileUnits: 1
|
||||||
|
optimizeMeshForGPU: 1
|
||||||
keepQuads: 0
|
keepQuads: 0
|
||||||
weldVertices: 1
|
weldVertices: 1
|
||||||
bakeAxisConversion: 0
|
|
||||||
preserveHierarchy: 0
|
|
||||||
skinWeightsMode: 0
|
|
||||||
maxBonesPerVertex: 4
|
|
||||||
minBoneWeight: 0.001
|
|
||||||
optimizeBones: 1
|
|
||||||
meshOptimizationFlags: -1
|
|
||||||
indexFormat: 1
|
|
||||||
secondaryUVAngleDistortion: 8
|
secondaryUVAngleDistortion: 8
|
||||||
secondaryUVAreaDistortion: 15
|
secondaryUVAreaDistortion: 15.000001
|
||||||
secondaryUVHardAngle: 88
|
secondaryUVHardAngle: 88
|
||||||
secondaryUVMarginMethod: 1
|
|
||||||
secondaryUVMinLightmapResolution: 1
|
|
||||||
secondaryUVMinObjectScale: 1
|
|
||||||
secondaryUVPackMargin: 4
|
secondaryUVPackMargin: 4
|
||||||
useFileScale: 1
|
useFileScale: 1
|
||||||
strictVertexDataChecks: 0
|
|
||||||
tangentSpace:
|
tangentSpace:
|
||||||
normalSmoothAngle: 60
|
normalSmoothAngle: 60
|
||||||
normalImportMode: 0
|
normalImportMode: 0
|
||||||
tangentImportMode: 3
|
tangentImportMode: 3
|
||||||
normalCalculationMode: 0
|
|
||||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
|
|
||||||
blendShapeNormalImportMode: 1
|
|
||||||
normalSmoothingSource: 0
|
|
||||||
referencedClips: []
|
|
||||||
importAnimation: 1
|
importAnimation: 1
|
||||||
|
copyAvatar: 0
|
||||||
humanDescription:
|
humanDescription:
|
||||||
serializedVersion: 3
|
serializedVersion: 2
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: 0.5
|
armTwist: 0.5
|
||||||
@@ -332,19 +195,14 @@ ModelImporter:
|
|||||||
armStretch: 0.05
|
armStretch: 0.05
|
||||||
legStretch: 0.05
|
legStretch: 0.05
|
||||||
feetSpacing: 0
|
feetSpacing: 0
|
||||||
globalScale: 1
|
|
||||||
rootMotionBoneName:
|
rootMotionBoneName:
|
||||||
|
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
hasTranslationDoF: 0
|
hasTranslationDoF: 0
|
||||||
hasExtraRoot: 0
|
hasExtraRoot: 0
|
||||||
skeletonHasParents: 1
|
skeletonHasParents: 1
|
||||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||||
autoGenerateAvatarMappingIfUnspecified: 1
|
|
||||||
animationType: 2
|
animationType: 2
|
||||||
humanoidOversampling: 1
|
humanoidOversampling: 1
|
||||||
avatarSetup: 1
|
|
||||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
|
|
||||||
importBlendShapeDeformPercent: 0
|
|
||||||
remapMaterialsIfMaterialImportModeIsNone: 1
|
|
||||||
additionalBone: 0
|
additionalBone: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
|
|||||||
@@ -1,173 +1,65 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: b6c38558987444240b3b3950e4450b77
|
guid: b6c38558987444240b3b3950e4450b77
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 22200
|
serializedVersion: 22
|
||||||
internalIDToNameTable:
|
fileIDToRecycleName:
|
||||||
- first:
|
100000: hands:b_r_grip
|
||||||
1: 100000
|
100002: hands:b_r_hand
|
||||||
second: hands:b_r_grip
|
100004: hands:b_r_hand_ignore
|
||||||
- first:
|
100006: hands:b_r_index1
|
||||||
1: 100002
|
100008: hands:b_r_index2
|
||||||
second: hands:b_r_hand
|
100010: hands:b_r_index3
|
||||||
- first:
|
100012: hands:b_r_index_ignore
|
||||||
1: 100004
|
100014: hands:b_r_middle1
|
||||||
second: hands:b_r_hand_ignore
|
100016: hands:b_r_middle2
|
||||||
- first:
|
100018: hands:b_r_middle3
|
||||||
1: 100006
|
100020: hands:b_r_middle_ignore
|
||||||
second: hands:b_r_index1
|
100022: hands:b_r_pinky0
|
||||||
- first:
|
100024: hands:b_r_pinky1
|
||||||
1: 100008
|
100026: hands:b_r_pinky2
|
||||||
second: hands:b_r_index2
|
100028: hands:b_r_pinky3
|
||||||
- first:
|
100030: hands:b_r_pinky_ignore
|
||||||
1: 100010
|
100032: hands:b_r_ring1
|
||||||
second: hands:b_r_index3
|
100034: hands:b_r_ring2
|
||||||
- first:
|
100036: hands:b_r_ring3
|
||||||
1: 100012
|
100038: hands:b_r_ring_ignore
|
||||||
second: hands:b_r_index_ignore
|
100040: hands:b_r_thumb1
|
||||||
- first:
|
100042: hands:b_r_thumb2
|
||||||
1: 100014
|
100044: hands:b_r_thumb3
|
||||||
second: hands:b_r_middle1
|
100046: hands:b_r_thumb_ignore
|
||||||
- first:
|
100048: hands:r_hand_world
|
||||||
1: 100016
|
100050: //RootNode
|
||||||
second: hands:b_r_middle2
|
400000: hands:b_r_grip
|
||||||
- first:
|
400002: hands:b_r_hand
|
||||||
1: 100018
|
400004: hands:b_r_hand_ignore
|
||||||
second: hands:b_r_middle3
|
400006: hands:b_r_index1
|
||||||
- first:
|
400008: hands:b_r_index2
|
||||||
1: 100020
|
400010: hands:b_r_index3
|
||||||
second: hands:b_r_middle_ignore
|
400012: hands:b_r_index_ignore
|
||||||
- first:
|
400014: hands:b_r_middle1
|
||||||
1: 100022
|
400016: hands:b_r_middle2
|
||||||
second: hands:b_r_pinky0
|
400018: hands:b_r_middle3
|
||||||
- first:
|
400020: hands:b_r_middle_ignore
|
||||||
1: 100024
|
400022: hands:b_r_pinky0
|
||||||
second: hands:b_r_pinky1
|
400024: hands:b_r_pinky1
|
||||||
- first:
|
400026: hands:b_r_pinky2
|
||||||
1: 100026
|
400028: hands:b_r_pinky3
|
||||||
second: hands:b_r_pinky2
|
400030: hands:b_r_pinky_ignore
|
||||||
- first:
|
400032: hands:b_r_ring1
|
||||||
1: 100028
|
400034: hands:b_r_ring2
|
||||||
second: hands:b_r_pinky3
|
400036: hands:b_r_ring3
|
||||||
- first:
|
400038: hands:b_r_ring_ignore
|
||||||
1: 100030
|
400040: hands:b_r_thumb1
|
||||||
second: hands:b_r_pinky_ignore
|
400042: hands:b_r_thumb2
|
||||||
- first:
|
400044: hands:b_r_thumb3
|
||||||
1: 100032
|
400046: hands:b_r_thumb_ignore
|
||||||
second: hands:b_r_ring1
|
400048: hands:r_hand_world
|
||||||
- first:
|
400050: //RootNode
|
||||||
1: 100034
|
7400000: Take 001
|
||||||
second: hands:b_r_ring2
|
9500000: //RootNode
|
||||||
- first:
|
|
||||||
1: 100036
|
|
||||||
second: hands:b_r_ring3
|
|
||||||
- first:
|
|
||||||
1: 100038
|
|
||||||
second: hands:b_r_ring_ignore
|
|
||||||
- first:
|
|
||||||
1: 100040
|
|
||||||
second: hands:b_r_thumb1
|
|
||||||
- first:
|
|
||||||
1: 100042
|
|
||||||
second: hands:b_r_thumb2
|
|
||||||
- first:
|
|
||||||
1: 100044
|
|
||||||
second: hands:b_r_thumb3
|
|
||||||
- first:
|
|
||||||
1: 100046
|
|
||||||
second: hands:b_r_thumb_ignore
|
|
||||||
- first:
|
|
||||||
1: 100048
|
|
||||||
second: hands:r_hand_world
|
|
||||||
- first:
|
|
||||||
1: 100050
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
4: 400000
|
|
||||||
second: hands:b_r_grip
|
|
||||||
- first:
|
|
||||||
4: 400002
|
|
||||||
second: hands:b_r_hand
|
|
||||||
- first:
|
|
||||||
4: 400004
|
|
||||||
second: hands:b_r_hand_ignore
|
|
||||||
- first:
|
|
||||||
4: 400006
|
|
||||||
second: hands:b_r_index1
|
|
||||||
- first:
|
|
||||||
4: 400008
|
|
||||||
second: hands:b_r_index2
|
|
||||||
- first:
|
|
||||||
4: 400010
|
|
||||||
second: hands:b_r_index3
|
|
||||||
- first:
|
|
||||||
4: 400012
|
|
||||||
second: hands:b_r_index_ignore
|
|
||||||
- first:
|
|
||||||
4: 400014
|
|
||||||
second: hands:b_r_middle1
|
|
||||||
- first:
|
|
||||||
4: 400016
|
|
||||||
second: hands:b_r_middle2
|
|
||||||
- first:
|
|
||||||
4: 400018
|
|
||||||
second: hands:b_r_middle3
|
|
||||||
- first:
|
|
||||||
4: 400020
|
|
||||||
second: hands:b_r_middle_ignore
|
|
||||||
- first:
|
|
||||||
4: 400022
|
|
||||||
second: hands:b_r_pinky0
|
|
||||||
- first:
|
|
||||||
4: 400024
|
|
||||||
second: hands:b_r_pinky1
|
|
||||||
- first:
|
|
||||||
4: 400026
|
|
||||||
second: hands:b_r_pinky2
|
|
||||||
- first:
|
|
||||||
4: 400028
|
|
||||||
second: hands:b_r_pinky3
|
|
||||||
- first:
|
|
||||||
4: 400030
|
|
||||||
second: hands:b_r_pinky_ignore
|
|
||||||
- first:
|
|
||||||
4: 400032
|
|
||||||
second: hands:b_r_ring1
|
|
||||||
- first:
|
|
||||||
4: 400034
|
|
||||||
second: hands:b_r_ring2
|
|
||||||
- first:
|
|
||||||
4: 400036
|
|
||||||
second: hands:b_r_ring3
|
|
||||||
- first:
|
|
||||||
4: 400038
|
|
||||||
second: hands:b_r_ring_ignore
|
|
||||||
- first:
|
|
||||||
4: 400040
|
|
||||||
second: hands:b_r_thumb1
|
|
||||||
- first:
|
|
||||||
4: 400042
|
|
||||||
second: hands:b_r_thumb2
|
|
||||||
- first:
|
|
||||||
4: 400044
|
|
||||||
second: hands:b_r_thumb3
|
|
||||||
- first:
|
|
||||||
4: 400046
|
|
||||||
second: hands:b_r_thumb_ignore
|
|
||||||
- first:
|
|
||||||
4: 400048
|
|
||||||
second: hands:r_hand_world
|
|
||||||
- first:
|
|
||||||
4: 400050
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
74: 7400000
|
|
||||||
second: Take 001
|
|
||||||
- first:
|
|
||||||
95: 9500000
|
|
||||||
second: //RootNode
|
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
materials:
|
materials:
|
||||||
materialImportMode: 1
|
importMaterials: 1
|
||||||
materialName: 0
|
materialName: 0
|
||||||
materialSearch: 1
|
materialSearch: 1
|
||||||
materialLocation: 1
|
materialLocation: 1
|
||||||
@@ -176,7 +68,6 @@ ModelImporter:
|
|||||||
bakeSimulation: 0
|
bakeSimulation: 0
|
||||||
resampleCurves: 1
|
resampleCurves: 1
|
||||||
optimizeGameObjects: 0
|
optimizeGameObjects: 0
|
||||||
removeConstantScaleCurves: 0
|
|
||||||
motionNodeName:
|
motionNodeName:
|
||||||
rigImportErrors:
|
rigImportErrors:
|
||||||
rigImportWarnings:
|
rigImportWarnings:
|
||||||
@@ -185,7 +76,6 @@ ModelImporter:
|
|||||||
animationRetargetingWarnings:
|
animationRetargetingWarnings:
|
||||||
animationDoRetargetingWarnings: 0
|
animationDoRetargetingWarnings: 0
|
||||||
importAnimatedCustomProperties: 0
|
importAnimatedCustomProperties: 0
|
||||||
importConstraints: 0
|
|
||||||
animationCompression: 1
|
animationCompression: 1
|
||||||
animationRotationError: 0.5
|
animationRotationError: 0.5
|
||||||
animationPositionError: 0.5
|
animationPositionError: 0.5
|
||||||
@@ -200,48 +90,32 @@ ModelImporter:
|
|||||||
globalScale: 1
|
globalScale: 1
|
||||||
meshCompression: 0
|
meshCompression: 0
|
||||||
addColliders: 0
|
addColliders: 0
|
||||||
useSRGBMaterialColor: 1
|
|
||||||
sortHierarchyByName: 1
|
|
||||||
importVisibility: 1
|
importVisibility: 1
|
||||||
importBlendShapes: 1
|
importBlendShapes: 1
|
||||||
importCameras: 1
|
importCameras: 1
|
||||||
importLights: 1
|
importLights: 1
|
||||||
nodeNameCollisionStrategy: 0
|
|
||||||
fileIdsGeneration: 1
|
|
||||||
swapUVChannels: 0
|
swapUVChannels: 0
|
||||||
generateSecondaryUV: 1
|
generateSecondaryUV: 0
|
||||||
useFileUnits: 1
|
useFileUnits: 1
|
||||||
|
optimizeMeshForGPU: 1
|
||||||
keepQuads: 0
|
keepQuads: 0
|
||||||
weldVertices: 1
|
weldVertices: 1
|
||||||
bakeAxisConversion: 0
|
|
||||||
preserveHierarchy: 0
|
preserveHierarchy: 0
|
||||||
skinWeightsMode: 0
|
|
||||||
maxBonesPerVertex: 4
|
|
||||||
minBoneWeight: 0.001
|
|
||||||
optimizeBones: 1
|
|
||||||
meshOptimizationFlags: -1
|
|
||||||
indexFormat: 0
|
indexFormat: 0
|
||||||
secondaryUVAngleDistortion: 8
|
secondaryUVAngleDistortion: 8
|
||||||
secondaryUVAreaDistortion: 15
|
secondaryUVAreaDistortion: 15.000001
|
||||||
secondaryUVHardAngle: 88
|
secondaryUVHardAngle: 88
|
||||||
secondaryUVMarginMethod: 1
|
|
||||||
secondaryUVMinLightmapResolution: 1
|
|
||||||
secondaryUVMinObjectScale: 1
|
|
||||||
secondaryUVPackMargin: 4
|
secondaryUVPackMargin: 4
|
||||||
useFileScale: 1
|
useFileScale: 1
|
||||||
strictVertexDataChecks: 0
|
|
||||||
tangentSpace:
|
tangentSpace:
|
||||||
normalSmoothAngle: 60
|
normalSmoothAngle: 60
|
||||||
normalImportMode: 0
|
normalImportMode: 0
|
||||||
tangentImportMode: 3
|
tangentImportMode: 3
|
||||||
normalCalculationMode: 4
|
normalCalculationMode: 4
|
||||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
|
|
||||||
blendShapeNormalImportMode: 1
|
|
||||||
normalSmoothingSource: 0
|
|
||||||
referencedClips: []
|
|
||||||
importAnimation: 1
|
importAnimation: 1
|
||||||
|
copyAvatar: 0
|
||||||
humanDescription:
|
humanDescription:
|
||||||
serializedVersion: 3
|
serializedVersion: 2
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: 0.5
|
armTwist: 0.5
|
||||||
@@ -251,19 +125,14 @@ ModelImporter:
|
|||||||
armStretch: 0.05
|
armStretch: 0.05
|
||||||
legStretch: 0.05
|
legStretch: 0.05
|
||||||
feetSpacing: 0
|
feetSpacing: 0
|
||||||
globalScale: 1
|
|
||||||
rootMotionBoneName:
|
rootMotionBoneName:
|
||||||
|
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
hasTranslationDoF: 0
|
hasTranslationDoF: 0
|
||||||
hasExtraRoot: 0
|
hasExtraRoot: 0
|
||||||
skeletonHasParents: 1
|
skeletonHasParents: 1
|
||||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||||
autoGenerateAvatarMappingIfUnspecified: 1
|
|
||||||
animationType: 2
|
animationType: 2
|
||||||
humanoidOversampling: 1
|
humanoidOversampling: 1
|
||||||
avatarSetup: 1
|
|
||||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
|
|
||||||
importBlendShapeDeformPercent: 0
|
|
||||||
remapMaterialsIfMaterialImportModeIsNone: 1
|
|
||||||
additionalBone: 0
|
additionalBone: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
|
|||||||
@@ -1,203 +1,87 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 005ab0ae8aa7f74438a5fa50f7cd50e3
|
guid: 005ab0ae8aa7f74438a5fa50f7cd50e3
|
||||||
|
timeCreated: 1437585997
|
||||||
|
licenseType: Store
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 22200
|
serializedVersion: 18
|
||||||
internalIDToNameTable:
|
fileIDToRecycleName:
|
||||||
- first:
|
100000: hands:b_r_grip
|
||||||
1: 100000
|
100002: hands:b_r_hand
|
||||||
second: hands:b_r_grip
|
100004: hands:b_r_hand_ignore
|
||||||
- first:
|
100006: hands:b_r_index1
|
||||||
1: 100002
|
100008: hands:b_r_index2
|
||||||
second: hands:b_r_hand
|
100010: hands:b_r_index3
|
||||||
- first:
|
100012: hands:b_r_index_ignore
|
||||||
1: 100004
|
100014: hands:b_r_middle1
|
||||||
second: hands:b_r_hand_ignore
|
100016: hands:b_r_middle2
|
||||||
- first:
|
100018: hands:b_r_middle3
|
||||||
1: 100006
|
100020: hands:b_r_middle_ignore
|
||||||
second: hands:b_r_index1
|
100022: hands:b_r_pinky0
|
||||||
- first:
|
100024: hands:b_r_pinky1
|
||||||
1: 100008
|
100026: hands:b_r_pinky2
|
||||||
second: hands:b_r_index2
|
100028: hands:b_r_pinky3
|
||||||
- first:
|
100030: hands:b_r_pinky_ignore
|
||||||
1: 100010
|
100032: hands:b_r_ring1
|
||||||
second: hands:b_r_index3
|
100034: hands:b_r_ring2
|
||||||
- first:
|
100036: hands:b_r_ring3
|
||||||
1: 100012
|
100038: hands:b_r_ring_ignore
|
||||||
second: hands:b_r_index_ignore
|
100040: hands:b_r_thumb1
|
||||||
- first:
|
100042: hands:b_r_thumb2
|
||||||
1: 100014
|
100044: hands:b_r_thumb3
|
||||||
second: hands:b_r_middle1
|
100046: hands:b_r_thumb_ignore
|
||||||
- first:
|
100048: hands:r_hand_world
|
||||||
1: 100016
|
100050: //RootNode
|
||||||
second: hands:b_r_middle2
|
400000: hands:b_r_grip
|
||||||
- first:
|
400002: hands:b_r_hand
|
||||||
1: 100018
|
400004: hands:b_r_hand_ignore
|
||||||
second: hands:b_r_middle3
|
400006: hands:b_r_index1
|
||||||
- first:
|
400008: hands:b_r_index2
|
||||||
1: 100020
|
400010: hands:b_r_index3
|
||||||
second: hands:b_r_middle_ignore
|
400012: hands:b_r_index_ignore
|
||||||
- first:
|
400014: hands:b_r_middle1
|
||||||
1: 100022
|
400016: hands:b_r_middle2
|
||||||
second: hands:b_r_pinky0
|
400018: hands:b_r_middle3
|
||||||
- first:
|
400020: hands:b_r_middle_ignore
|
||||||
1: 100024
|
400022: hands:b_r_pinky0
|
||||||
second: hands:b_r_pinky1
|
400024: hands:b_r_pinky1
|
||||||
- first:
|
400026: hands:b_r_pinky2
|
||||||
1: 100026
|
400028: hands:b_r_pinky3
|
||||||
second: hands:b_r_pinky2
|
400030: hands:b_r_pinky_ignore
|
||||||
- first:
|
400032: hands:b_r_ring1
|
||||||
1: 100028
|
400034: hands:b_r_ring2
|
||||||
second: hands:b_r_pinky3
|
400036: hands:b_r_ring3
|
||||||
- first:
|
400038: hands:b_r_ring_ignore
|
||||||
1: 100030
|
400040: hands:b_r_thumb1
|
||||||
second: hands:b_r_pinky_ignore
|
400042: hands:b_r_thumb2
|
||||||
- first:
|
400044: hands:b_r_thumb3
|
||||||
1: 100032
|
400046: hands:b_r_thumb_ignore
|
||||||
second: hands:b_r_ring1
|
400048: hands:r_hand_world
|
||||||
- first:
|
400050: //RootNode
|
||||||
1: 100034
|
7400000: r_hand_fist
|
||||||
second: hands:b_r_ring2
|
9500000: //RootNode
|
||||||
- first:
|
|
||||||
1: 100036
|
|
||||||
second: hands:b_r_ring3
|
|
||||||
- first:
|
|
||||||
1: 100038
|
|
||||||
second: hands:b_r_ring_ignore
|
|
||||||
- first:
|
|
||||||
1: 100040
|
|
||||||
second: hands:b_r_thumb1
|
|
||||||
- first:
|
|
||||||
1: 100042
|
|
||||||
second: hands:b_r_thumb2
|
|
||||||
- first:
|
|
||||||
1: 100044
|
|
||||||
second: hands:b_r_thumb3
|
|
||||||
- first:
|
|
||||||
1: 100046
|
|
||||||
second: hands:b_r_thumb_ignore
|
|
||||||
- first:
|
|
||||||
1: 100048
|
|
||||||
second: hands:r_hand_world
|
|
||||||
- first:
|
|
||||||
1: 100050
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
4: 400000
|
|
||||||
second: hands:b_r_grip
|
|
||||||
- first:
|
|
||||||
4: 400002
|
|
||||||
second: hands:b_r_hand
|
|
||||||
- first:
|
|
||||||
4: 400004
|
|
||||||
second: hands:b_r_hand_ignore
|
|
||||||
- first:
|
|
||||||
4: 400006
|
|
||||||
second: hands:b_r_index1
|
|
||||||
- first:
|
|
||||||
4: 400008
|
|
||||||
second: hands:b_r_index2
|
|
||||||
- first:
|
|
||||||
4: 400010
|
|
||||||
second: hands:b_r_index3
|
|
||||||
- first:
|
|
||||||
4: 400012
|
|
||||||
second: hands:b_r_index_ignore
|
|
||||||
- first:
|
|
||||||
4: 400014
|
|
||||||
second: hands:b_r_middle1
|
|
||||||
- first:
|
|
||||||
4: 400016
|
|
||||||
second: hands:b_r_middle2
|
|
||||||
- first:
|
|
||||||
4: 400018
|
|
||||||
second: hands:b_r_middle3
|
|
||||||
- first:
|
|
||||||
4: 400020
|
|
||||||
second: hands:b_r_middle_ignore
|
|
||||||
- first:
|
|
||||||
4: 400022
|
|
||||||
second: hands:b_r_pinky0
|
|
||||||
- first:
|
|
||||||
4: 400024
|
|
||||||
second: hands:b_r_pinky1
|
|
||||||
- first:
|
|
||||||
4: 400026
|
|
||||||
second: hands:b_r_pinky2
|
|
||||||
- first:
|
|
||||||
4: 400028
|
|
||||||
second: hands:b_r_pinky3
|
|
||||||
- first:
|
|
||||||
4: 400030
|
|
||||||
second: hands:b_r_pinky_ignore
|
|
||||||
- first:
|
|
||||||
4: 400032
|
|
||||||
second: hands:b_r_ring1
|
|
||||||
- first:
|
|
||||||
4: 400034
|
|
||||||
second: hands:b_r_ring2
|
|
||||||
- first:
|
|
||||||
4: 400036
|
|
||||||
second: hands:b_r_ring3
|
|
||||||
- first:
|
|
||||||
4: 400038
|
|
||||||
second: hands:b_r_ring_ignore
|
|
||||||
- first:
|
|
||||||
4: 400040
|
|
||||||
second: hands:b_r_thumb1
|
|
||||||
- first:
|
|
||||||
4: 400042
|
|
||||||
second: hands:b_r_thumb2
|
|
||||||
- first:
|
|
||||||
4: 400044
|
|
||||||
second: hands:b_r_thumb3
|
|
||||||
- first:
|
|
||||||
4: 400046
|
|
||||||
second: hands:b_r_thumb_ignore
|
|
||||||
- first:
|
|
||||||
4: 400048
|
|
||||||
second: hands:r_hand_world
|
|
||||||
- first:
|
|
||||||
4: 400050
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
74: 7400000
|
|
||||||
second: r_hand_fist
|
|
||||||
- first:
|
|
||||||
95: 9500000
|
|
||||||
second: //RootNode
|
|
||||||
externalObjects: {}
|
|
||||||
materials:
|
materials:
|
||||||
materialImportMode: 1
|
importMaterials: 1
|
||||||
materialName: 0
|
materialName: 0
|
||||||
materialSearch: 1
|
materialSearch: 1
|
||||||
materialLocation: 0
|
|
||||||
animations:
|
animations:
|
||||||
legacyGenerateAnimations: 4
|
legacyGenerateAnimations: 4
|
||||||
bakeSimulation: 0
|
bakeSimulation: 0
|
||||||
resampleCurves: 1
|
|
||||||
optimizeGameObjects: 0
|
optimizeGameObjects: 0
|
||||||
removeConstantScaleCurves: 0
|
|
||||||
motionNodeName:
|
motionNodeName:
|
||||||
rigImportErrors:
|
|
||||||
rigImportWarnings:
|
|
||||||
animationImportErrors:
|
animationImportErrors:
|
||||||
animationImportWarnings:
|
animationImportWarnings:
|
||||||
animationRetargetingWarnings:
|
animationRetargetingWarnings:
|
||||||
animationDoRetargetingWarnings: 0
|
animationDoRetargetingWarnings: 0
|
||||||
importAnimatedCustomProperties: 0
|
|
||||||
importConstraints: 0
|
|
||||||
animationCompression: 1
|
animationCompression: 1
|
||||||
animationRotationError: 0.5
|
animationRotationError: .5
|
||||||
animationPositionError: 0.5
|
animationPositionError: .5
|
||||||
animationScaleError: 0.5
|
animationScaleError: .5
|
||||||
animationWrapMode: 0
|
animationWrapMode: 0
|
||||||
extraExposedTransformPaths: []
|
extraExposedTransformPaths: []
|
||||||
extraUserProperties: []
|
|
||||||
clipAnimations:
|
clipAnimations:
|
||||||
- serializedVersion: 16
|
- serializedVersion: 16
|
||||||
name: r_hand_fist
|
name: r_hand_fist
|
||||||
takeName: Take 001
|
takeName: Take 001
|
||||||
internalID: 0
|
|
||||||
firstFrame: 0
|
firstFrame: 0
|
||||||
lastFrame: 1
|
lastFrame: 1
|
||||||
wrapMode: 0
|
wrapMode: 0
|
||||||
@@ -205,7 +89,6 @@ ModelImporter:
|
|||||||
level: 0
|
level: 0
|
||||||
cycleOffset: 0
|
cycleOffset: 0
|
||||||
loop: 0
|
loop: 0
|
||||||
hasAdditiveReferencePose: 0
|
|
||||||
loopTime: 0
|
loopTime: 0
|
||||||
loopBlend: 0
|
loopBlend: 0
|
||||||
loopBlendOrientation: 0
|
loopBlendOrientation: 0
|
||||||
@@ -274,78 +157,47 @@ ModelImporter:
|
|||||||
weight: 1
|
weight: 1
|
||||||
maskType: 0
|
maskType: 0
|
||||||
maskSource: {instanceID: 0}
|
maskSource: {instanceID: 0}
|
||||||
additiveReferencePoseFrame: 0
|
|
||||||
isReadable: 1
|
isReadable: 1
|
||||||
meshes:
|
meshes:
|
||||||
lODScreenPercentages: []
|
lODScreenPercentages: []
|
||||||
globalScale: 1
|
globalScale: 1
|
||||||
meshCompression: 0
|
meshCompression: 0
|
||||||
addColliders: 0
|
addColliders: 0
|
||||||
useSRGBMaterialColor: 1
|
|
||||||
sortHierarchyByName: 1
|
|
||||||
importVisibility: 0
|
|
||||||
importBlendShapes: 1
|
importBlendShapes: 1
|
||||||
importCameras: 0
|
|
||||||
importLights: 0
|
|
||||||
nodeNameCollisionStrategy: 0
|
|
||||||
fileIdsGeneration: 1
|
|
||||||
swapUVChannels: 0
|
swapUVChannels: 0
|
||||||
generateSecondaryUV: 1
|
generateSecondaryUV: 0
|
||||||
useFileUnits: 1
|
useFileUnits: 1
|
||||||
|
optimizeMeshForGPU: 1
|
||||||
keepQuads: 0
|
keepQuads: 0
|
||||||
weldVertices: 1
|
weldVertices: 1
|
||||||
bakeAxisConversion: 0
|
|
||||||
preserveHierarchy: 0
|
|
||||||
skinWeightsMode: 0
|
|
||||||
maxBonesPerVertex: 4
|
|
||||||
minBoneWeight: 0.001
|
|
||||||
optimizeBones: 1
|
|
||||||
meshOptimizationFlags: -1
|
|
||||||
indexFormat: 1
|
|
||||||
secondaryUVAngleDistortion: 8
|
secondaryUVAngleDistortion: 8
|
||||||
secondaryUVAreaDistortion: 15
|
secondaryUVAreaDistortion: 15.000001
|
||||||
secondaryUVHardAngle: 88
|
secondaryUVHardAngle: 88
|
||||||
secondaryUVMarginMethod: 1
|
|
||||||
secondaryUVMinLightmapResolution: 1
|
|
||||||
secondaryUVMinObjectScale: 1
|
|
||||||
secondaryUVPackMargin: 4
|
secondaryUVPackMargin: 4
|
||||||
useFileScale: 1
|
useFileScale: 1
|
||||||
strictVertexDataChecks: 0
|
|
||||||
tangentSpace:
|
tangentSpace:
|
||||||
normalSmoothAngle: 60
|
normalSmoothAngle: 60
|
||||||
|
splitTangentsAcrossUV: 1
|
||||||
normalImportMode: 0
|
normalImportMode: 0
|
||||||
tangentImportMode: 4
|
tangentImportMode: 1
|
||||||
normalCalculationMode: 0
|
|
||||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
|
|
||||||
blendShapeNormalImportMode: 1
|
|
||||||
normalSmoothingSource: 0
|
|
||||||
referencedClips: []
|
|
||||||
importAnimation: 1
|
importAnimation: 1
|
||||||
|
copyAvatar: 1
|
||||||
humanDescription:
|
humanDescription:
|
||||||
serializedVersion: 3
|
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: 0.5
|
armTwist: .5
|
||||||
foreArmTwist: 0.5
|
foreArmTwist: .5
|
||||||
upperLegTwist: 0.5
|
upperLegTwist: .5
|
||||||
legTwist: 0.5
|
legTwist: .5
|
||||||
armStretch: 0.05
|
armStretch: .0500000007
|
||||||
legStretch: 0.05
|
legStretch: .0500000007
|
||||||
feetSpacing: 0
|
feetSpacing: 0
|
||||||
globalScale: 1
|
|
||||||
rootMotionBoneName:
|
rootMotionBoneName:
|
||||||
hasTranslationDoF: 0
|
hasTranslationDoF: 0
|
||||||
hasExtraRoot: 0
|
|
||||||
skeletonHasParents: 0
|
|
||||||
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 3d1f4d649230d7c49ab615ba6413f77e,
|
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 3d1f4d649230d7c49ab615ba6413f77e,
|
||||||
type: 3}
|
type: 3}
|
||||||
autoGenerateAvatarMappingIfUnspecified: 1
|
|
||||||
animationType: 2
|
animationType: 2
|
||||||
humanoidOversampling: 1
|
humanoidOversampling: 1
|
||||||
avatarSetup: 2
|
|
||||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
|
|
||||||
importBlendShapeDeformPercent: 0
|
|
||||||
remapMaterialsIfMaterialImportModeIsNone: 1
|
|
||||||
additionalBone: 0
|
additionalBone: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
|
|||||||
@@ -1,203 +1,88 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 165871bb4fa915847973b6955c7a670d
|
guid: 165871bb4fa915847973b6955c7a670d
|
||||||
|
timeCreated: 1484075312
|
||||||
|
licenseType: Store
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 22200
|
serializedVersion: 19
|
||||||
internalIDToNameTable:
|
fileIDToRecycleName:
|
||||||
- first:
|
100000: hands:b_r_grip
|
||||||
1: 100000
|
100002: hands:b_r_hand
|
||||||
second: hands:b_r_grip
|
100004: hands:b_r_hand_ignore
|
||||||
- first:
|
100006: hands:b_r_index1
|
||||||
1: 100002
|
100008: hands:b_r_index2
|
||||||
second: hands:b_r_hand
|
100010: hands:b_r_index3
|
||||||
- first:
|
100012: hands:b_r_index_ignore
|
||||||
1: 100004
|
100014: hands:b_r_middle1
|
||||||
second: hands:b_r_hand_ignore
|
100016: hands:b_r_middle2
|
||||||
- first:
|
100018: hands:b_r_middle3
|
||||||
1: 100006
|
100020: hands:b_r_middle_ignore
|
||||||
second: hands:b_r_index1
|
100022: hands:b_r_pinky0
|
||||||
- first:
|
100024: hands:b_r_pinky1
|
||||||
1: 100008
|
100026: hands:b_r_pinky2
|
||||||
second: hands:b_r_index2
|
100028: hands:b_r_pinky3
|
||||||
- first:
|
100030: hands:b_r_pinky_ignore
|
||||||
1: 100010
|
100032: hands:b_r_ring1
|
||||||
second: hands:b_r_index3
|
100034: hands:b_r_ring2
|
||||||
- first:
|
100036: hands:b_r_ring3
|
||||||
1: 100012
|
100038: hands:b_r_ring_ignore
|
||||||
second: hands:b_r_index_ignore
|
100040: hands:b_r_thumb1
|
||||||
- first:
|
100042: hands:b_r_thumb2
|
||||||
1: 100014
|
100044: hands:b_r_thumb3
|
||||||
second: hands:b_r_middle1
|
100046: hands:b_r_thumb_ignore
|
||||||
- first:
|
100048: hands:r_hand_world
|
||||||
1: 100016
|
100050: //RootNode
|
||||||
second: hands:b_r_middle2
|
400000: hands:b_r_grip
|
||||||
- first:
|
400002: hands:b_r_hand
|
||||||
1: 100018
|
400004: hands:b_r_hand_ignore
|
||||||
second: hands:b_r_middle3
|
400006: hands:b_r_index1
|
||||||
- first:
|
400008: hands:b_r_index2
|
||||||
1: 100020
|
400010: hands:b_r_index3
|
||||||
second: hands:b_r_middle_ignore
|
400012: hands:b_r_index_ignore
|
||||||
- first:
|
400014: hands:b_r_middle1
|
||||||
1: 100022
|
400016: hands:b_r_middle2
|
||||||
second: hands:b_r_pinky0
|
400018: hands:b_r_middle3
|
||||||
- first:
|
400020: hands:b_r_middle_ignore
|
||||||
1: 100024
|
400022: hands:b_r_pinky0
|
||||||
second: hands:b_r_pinky1
|
400024: hands:b_r_pinky1
|
||||||
- first:
|
400026: hands:b_r_pinky2
|
||||||
1: 100026
|
400028: hands:b_r_pinky3
|
||||||
second: hands:b_r_pinky2
|
400030: hands:b_r_pinky_ignore
|
||||||
- first:
|
400032: hands:b_r_ring1
|
||||||
1: 100028
|
400034: hands:b_r_ring2
|
||||||
second: hands:b_r_pinky3
|
400036: hands:b_r_ring3
|
||||||
- first:
|
400038: hands:b_r_ring_ignore
|
||||||
1: 100030
|
400040: hands:b_r_thumb1
|
||||||
second: hands:b_r_pinky_ignore
|
400042: hands:b_r_thumb2
|
||||||
- first:
|
400044: hands:b_r_thumb3
|
||||||
1: 100032
|
400046: hands:b_r_thumb_ignore
|
||||||
second: hands:b_r_ring1
|
400048: hands:r_hand_world
|
||||||
- first:
|
400050: //RootNode
|
||||||
1: 100034
|
7400000: r_hand_pinch_anim
|
||||||
second: hands:b_r_ring2
|
9500000: //RootNode
|
||||||
- first:
|
|
||||||
1: 100036
|
|
||||||
second: hands:b_r_ring3
|
|
||||||
- first:
|
|
||||||
1: 100038
|
|
||||||
second: hands:b_r_ring_ignore
|
|
||||||
- first:
|
|
||||||
1: 100040
|
|
||||||
second: hands:b_r_thumb1
|
|
||||||
- first:
|
|
||||||
1: 100042
|
|
||||||
second: hands:b_r_thumb2
|
|
||||||
- first:
|
|
||||||
1: 100044
|
|
||||||
second: hands:b_r_thumb3
|
|
||||||
- first:
|
|
||||||
1: 100046
|
|
||||||
second: hands:b_r_thumb_ignore
|
|
||||||
- first:
|
|
||||||
1: 100048
|
|
||||||
second: hands:r_hand_world
|
|
||||||
- first:
|
|
||||||
1: 100050
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
4: 400000
|
|
||||||
second: hands:b_r_grip
|
|
||||||
- first:
|
|
||||||
4: 400002
|
|
||||||
second: hands:b_r_hand
|
|
||||||
- first:
|
|
||||||
4: 400004
|
|
||||||
second: hands:b_r_hand_ignore
|
|
||||||
- first:
|
|
||||||
4: 400006
|
|
||||||
second: hands:b_r_index1
|
|
||||||
- first:
|
|
||||||
4: 400008
|
|
||||||
second: hands:b_r_index2
|
|
||||||
- first:
|
|
||||||
4: 400010
|
|
||||||
second: hands:b_r_index3
|
|
||||||
- first:
|
|
||||||
4: 400012
|
|
||||||
second: hands:b_r_index_ignore
|
|
||||||
- first:
|
|
||||||
4: 400014
|
|
||||||
second: hands:b_r_middle1
|
|
||||||
- first:
|
|
||||||
4: 400016
|
|
||||||
second: hands:b_r_middle2
|
|
||||||
- first:
|
|
||||||
4: 400018
|
|
||||||
second: hands:b_r_middle3
|
|
||||||
- first:
|
|
||||||
4: 400020
|
|
||||||
second: hands:b_r_middle_ignore
|
|
||||||
- first:
|
|
||||||
4: 400022
|
|
||||||
second: hands:b_r_pinky0
|
|
||||||
- first:
|
|
||||||
4: 400024
|
|
||||||
second: hands:b_r_pinky1
|
|
||||||
- first:
|
|
||||||
4: 400026
|
|
||||||
second: hands:b_r_pinky2
|
|
||||||
- first:
|
|
||||||
4: 400028
|
|
||||||
second: hands:b_r_pinky3
|
|
||||||
- first:
|
|
||||||
4: 400030
|
|
||||||
second: hands:b_r_pinky_ignore
|
|
||||||
- first:
|
|
||||||
4: 400032
|
|
||||||
second: hands:b_r_ring1
|
|
||||||
- first:
|
|
||||||
4: 400034
|
|
||||||
second: hands:b_r_ring2
|
|
||||||
- first:
|
|
||||||
4: 400036
|
|
||||||
second: hands:b_r_ring3
|
|
||||||
- first:
|
|
||||||
4: 400038
|
|
||||||
second: hands:b_r_ring_ignore
|
|
||||||
- first:
|
|
||||||
4: 400040
|
|
||||||
second: hands:b_r_thumb1
|
|
||||||
- first:
|
|
||||||
4: 400042
|
|
||||||
second: hands:b_r_thumb2
|
|
||||||
- first:
|
|
||||||
4: 400044
|
|
||||||
second: hands:b_r_thumb3
|
|
||||||
- first:
|
|
||||||
4: 400046
|
|
||||||
second: hands:b_r_thumb_ignore
|
|
||||||
- first:
|
|
||||||
4: 400048
|
|
||||||
second: hands:r_hand_world
|
|
||||||
- first:
|
|
||||||
4: 400050
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
74: 7400000
|
|
||||||
second: r_hand_pinch_anim
|
|
||||||
- first:
|
|
||||||
95: 9500000
|
|
||||||
second: //RootNode
|
|
||||||
externalObjects: {}
|
|
||||||
materials:
|
materials:
|
||||||
materialImportMode: 1
|
importMaterials: 1
|
||||||
materialName: 0
|
materialName: 0
|
||||||
materialSearch: 1
|
materialSearch: 1
|
||||||
materialLocation: 0
|
|
||||||
animations:
|
animations:
|
||||||
legacyGenerateAnimations: 4
|
legacyGenerateAnimations: 4
|
||||||
bakeSimulation: 0
|
bakeSimulation: 0
|
||||||
resampleCurves: 1
|
resampleCurves: 1
|
||||||
optimizeGameObjects: 0
|
optimizeGameObjects: 0
|
||||||
removeConstantScaleCurves: 0
|
|
||||||
motionNodeName:
|
motionNodeName:
|
||||||
rigImportErrors:
|
|
||||||
rigImportWarnings:
|
|
||||||
animationImportErrors:
|
animationImportErrors:
|
||||||
animationImportWarnings:
|
animationImportWarnings:
|
||||||
animationRetargetingWarnings:
|
animationRetargetingWarnings:
|
||||||
animationDoRetargetingWarnings: 0
|
animationDoRetargetingWarnings: 0
|
||||||
importAnimatedCustomProperties: 0
|
|
||||||
importConstraints: 0
|
|
||||||
animationCompression: 1
|
animationCompression: 1
|
||||||
animationRotationError: 0.5
|
animationRotationError: 0.5
|
||||||
animationPositionError: 0.5
|
animationPositionError: 0.5
|
||||||
animationScaleError: 0.5
|
animationScaleError: 0.5
|
||||||
animationWrapMode: 0
|
animationWrapMode: 0
|
||||||
extraExposedTransformPaths: []
|
extraExposedTransformPaths: []
|
||||||
extraUserProperties: []
|
|
||||||
clipAnimations:
|
clipAnimations:
|
||||||
- serializedVersion: 16
|
- serializedVersion: 16
|
||||||
name: r_hand_pinch_anim
|
name: r_hand_pinch_anim
|
||||||
takeName: Take 001
|
takeName: Take 001
|
||||||
internalID: 0
|
|
||||||
firstFrame: 4
|
firstFrame: 4
|
||||||
lastFrame: 5
|
lastFrame: 5
|
||||||
wrapMode: 0
|
wrapMode: 0
|
||||||
@@ -281,48 +166,26 @@ ModelImporter:
|
|||||||
globalScale: 1
|
globalScale: 1
|
||||||
meshCompression: 0
|
meshCompression: 0
|
||||||
addColliders: 0
|
addColliders: 0
|
||||||
useSRGBMaterialColor: 1
|
|
||||||
sortHierarchyByName: 1
|
|
||||||
importVisibility: 0
|
|
||||||
importBlendShapes: 1
|
importBlendShapes: 1
|
||||||
importCameras: 0
|
|
||||||
importLights: 0
|
|
||||||
nodeNameCollisionStrategy: 0
|
|
||||||
fileIdsGeneration: 1
|
|
||||||
swapUVChannels: 0
|
swapUVChannels: 0
|
||||||
generateSecondaryUV: 1
|
generateSecondaryUV: 0
|
||||||
useFileUnits: 1
|
useFileUnits: 1
|
||||||
|
optimizeMeshForGPU: 1
|
||||||
keepQuads: 0
|
keepQuads: 0
|
||||||
weldVertices: 1
|
weldVertices: 1
|
||||||
bakeAxisConversion: 0
|
|
||||||
preserveHierarchy: 0
|
|
||||||
skinWeightsMode: 0
|
|
||||||
maxBonesPerVertex: 4
|
|
||||||
minBoneWeight: 0.001
|
|
||||||
optimizeBones: 1
|
|
||||||
meshOptimizationFlags: -1
|
|
||||||
indexFormat: 1
|
|
||||||
secondaryUVAngleDistortion: 8
|
secondaryUVAngleDistortion: 8
|
||||||
secondaryUVAreaDistortion: 15
|
secondaryUVAreaDistortion: 15.000001
|
||||||
secondaryUVHardAngle: 88
|
secondaryUVHardAngle: 88
|
||||||
secondaryUVMarginMethod: 1
|
|
||||||
secondaryUVMinLightmapResolution: 1
|
|
||||||
secondaryUVMinObjectScale: 1
|
|
||||||
secondaryUVPackMargin: 4
|
secondaryUVPackMargin: 4
|
||||||
useFileScale: 1
|
useFileScale: 1
|
||||||
strictVertexDataChecks: 0
|
|
||||||
tangentSpace:
|
tangentSpace:
|
||||||
normalSmoothAngle: 60
|
normalSmoothAngle: 60
|
||||||
normalImportMode: 0
|
normalImportMode: 0
|
||||||
tangentImportMode: 3
|
tangentImportMode: 3
|
||||||
normalCalculationMode: 0
|
|
||||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
|
|
||||||
blendShapeNormalImportMode: 1
|
|
||||||
normalSmoothingSource: 0
|
|
||||||
referencedClips: []
|
|
||||||
importAnimation: 1
|
importAnimation: 1
|
||||||
|
copyAvatar: 0
|
||||||
humanDescription:
|
humanDescription:
|
||||||
serializedVersion: 3
|
serializedVersion: 2
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: 0.5
|
armTwist: 0.5
|
||||||
@@ -332,19 +195,14 @@ ModelImporter:
|
|||||||
armStretch: 0.05
|
armStretch: 0.05
|
||||||
legStretch: 0.05
|
legStretch: 0.05
|
||||||
feetSpacing: 0
|
feetSpacing: 0
|
||||||
globalScale: 1
|
|
||||||
rootMotionBoneName:
|
rootMotionBoneName:
|
||||||
|
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
hasTranslationDoF: 0
|
hasTranslationDoF: 0
|
||||||
hasExtraRoot: 0
|
hasExtraRoot: 0
|
||||||
skeletonHasParents: 1
|
skeletonHasParents: 1
|
||||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||||
autoGenerateAvatarMappingIfUnspecified: 1
|
|
||||||
animationType: 2
|
animationType: 2
|
||||||
humanoidOversampling: 1
|
humanoidOversampling: 1
|
||||||
avatarSetup: 1
|
|
||||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
|
|
||||||
importBlendShapeDeformPercent: 0
|
|
||||||
remapMaterialsIfMaterialImportModeIsNone: 1
|
|
||||||
additionalBone: 0
|
additionalBone: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
|
|||||||
@@ -0,0 +1,163 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-6377978500662273637
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 7
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Hands Transparent
|
||||||
|
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords:
|
||||||
|
- _RECEIVE_SHADOWS_OFF
|
||||||
|
- _SPECULARHIGHLIGHTS_OFF
|
||||||
|
- _SURFACE_TYPE_TRANSPARENT
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 6
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: 3000
|
||||||
|
stringTagMap:
|
||||||
|
RenderType: Transparent
|
||||||
|
disabledShaderPasses:
|
||||||
|
- SHADOWCASTER
|
||||||
|
- DepthOnly
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BaseMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Bump:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Cube:
|
||||||
|
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}
|
||||||
|
- _SpecGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AlphaClip: 0
|
||||||
|
- _AlphaToMask: 0
|
||||||
|
- _Blend: 0
|
||||||
|
- _BlendModePreserveSpecular: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _Cull: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 10
|
||||||
|
- _DstBlendAlpha: 10
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _FadeEnd: 0.5
|
||||||
|
- _FadeStart: 0.5
|
||||||
|
- _Fresnel: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossinessSource: 0
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Intensity: 0.5
|
||||||
|
- _InvFade: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _OutlineWidth: 0.005
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 0
|
||||||
|
- _Shininess: 0.75
|
||||||
|
- _Smoothness: 0.75
|
||||||
|
- _SmoothnessSource: 1
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecSource: 0
|
||||||
|
- _SpecularHighlights: 0
|
||||||
|
- _SrcBlend: 5
|
||||||
|
- _SrcBlendAlpha: 1
|
||||||
|
- _Surface: 1
|
||||||
|
- _Thickness: 0.5
|
||||||
|
- _UVSec: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
|
- _ZWrite: 0
|
||||||
|
m_Colors:
|
||||||
|
- _BaseColor: {r: 0, g: 0.72188926, b: 1, a: 0.23529412}
|
||||||
|
- _Color: {r: 0, g: 0.72188926, b: 1, a: 0.23529412}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _MyColor: {r: 0.87058824, g: 0.87058824, b: 0.87058824, a: 1}
|
||||||
|
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _ReflectColor: {r: 1, g: 0, b: 0, a: 0.5019608}
|
||||||
|
- _SpecColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e6fdd4b9480500e4ea28cad030e5ddc2
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -1,5 +1,18 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-6377978500662273637
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 7
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
@@ -8,22 +21,28 @@ Material:
|
|||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_Name: Hands_solid
|
m_Name: Hands_solid
|
||||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||||
m_Parent: {fileID: 0}
|
m_Parent: {fileID: 0}
|
||||||
m_ModifiedSerializedProperties: 0
|
m_ModifiedSerializedProperties: 0
|
||||||
m_ValidKeywords:
|
m_ValidKeywords:
|
||||||
- _EMISSION
|
- _RECEIVE_SHADOWS_OFF
|
||||||
|
- _SPECULARHIGHLIGHTS_OFF
|
||||||
m_InvalidKeywords: []
|
m_InvalidKeywords: []
|
||||||
m_LightmapFlags: 1
|
m_LightmapFlags: 6
|
||||||
m_EnableInstancingVariants: 0
|
m_EnableInstancingVariants: 0
|
||||||
m_DoubleSidedGI: 0
|
m_DoubleSidedGI: 0
|
||||||
m_CustomRenderQueue: -1
|
m_CustomRenderQueue: 2000
|
||||||
stringTagMap: {}
|
stringTagMap:
|
||||||
|
RenderType: Opaque
|
||||||
disabledShaderPasses: []
|
disabledShaderPasses: []
|
||||||
m_LockedProperties:
|
m_LockedProperties:
|
||||||
m_SavedProperties:
|
m_SavedProperties:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TexEnvs:
|
m_TexEnvs:
|
||||||
|
- _BaseMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
- _Bump:
|
- _Bump:
|
||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
@@ -68,17 +87,44 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _SpecGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
m_Ints: []
|
m_Ints: []
|
||||||
m_Floats:
|
m_Floats:
|
||||||
|
- _AlphaClip: 0
|
||||||
|
- _AlphaToMask: 0
|
||||||
|
- _Blend: 0
|
||||||
|
- _BlendModePreserveSpecular: 1
|
||||||
- _BumpScale: 1
|
- _BumpScale: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _Cull: 2
|
||||||
- _Cutoff: 0.5
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
- _DetailNormalMapScale: 1
|
- _DetailNormalMapScale: 1
|
||||||
- _DstBlend: 0
|
- _DstBlend: 0
|
||||||
|
- _DstBlendAlpha: 0
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
- _FadeEnd: 0.5
|
- _FadeEnd: 0.5
|
||||||
- _FadeStart: 0.5
|
- _FadeStart: 0.5
|
||||||
- _Fresnel: 0
|
- _Fresnel: 0
|
||||||
- _GlossMapScale: 1
|
- _GlossMapScale: 1
|
||||||
- _Glossiness: 0.5
|
- _Glossiness: 0.5
|
||||||
|
- _GlossinessSource: 0
|
||||||
- _GlossyReflections: 1
|
- _GlossyReflections: 1
|
||||||
- _Intensity: 0.5
|
- _Intensity: 0.5
|
||||||
- _InvFade: 1
|
- _InvFade: 1
|
||||||
@@ -87,19 +133,28 @@ Material:
|
|||||||
- _OcclusionStrength: 1
|
- _OcclusionStrength: 1
|
||||||
- _OutlineWidth: 0.005
|
- _OutlineWidth: 0.005
|
||||||
- _Parallax: 0.02
|
- _Parallax: 0.02
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 0
|
||||||
- _Shininess: 0.75
|
- _Shininess: 0.75
|
||||||
|
- _Smoothness: 0.75
|
||||||
|
- _SmoothnessSource: 1
|
||||||
- _SmoothnessTextureChannel: 0
|
- _SmoothnessTextureChannel: 0
|
||||||
- _SpecularHighlights: 1
|
- _SpecSource: 0
|
||||||
|
- _SpecularHighlights: 0
|
||||||
- _SrcBlend: 1
|
- _SrcBlend: 1
|
||||||
|
- _SrcBlendAlpha: 1
|
||||||
|
- _Surface: 0
|
||||||
- _Thickness: 0.5
|
- _Thickness: 0.5
|
||||||
- _UVSec: 0
|
- _UVSec: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
- _ZWrite: 1
|
- _ZWrite: 1
|
||||||
m_Colors:
|
m_Colors:
|
||||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
- _BaseColor: {r: 0.6698113, g: 0.6698113, b: 0.6698113, a: 0.75}
|
||||||
|
- _Color: {r: 0.6698113, g: 0.6698113, b: 0.6698113, a: 0.75}
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
- _MyColor: {r: 0.87058824, g: 0.87058824, b: 0.87058824, a: 1}
|
- _MyColor: {r: 0.87058824, g: 0.87058824, b: 0.87058824, a: 1}
|
||||||
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
- _ReflectColor: {r: 1, g: 0, b: 0, a: 0.5019608}
|
- _ReflectColor: {r: 1, g: 0, b: 0, a: 0.5019608}
|
||||||
- _SpecColor: {r: 0.50735295, g: 0.50735295, b: 0.50735295, a: 1}
|
- _SpecColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||||
m_BuildTextureStacks: []
|
m_BuildTextureStacks: []
|
||||||
|
|||||||
@@ -1,197 +1,71 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: ca20b3907ff1c794cb89c1ad2cce8282
|
guid: ca20b3907ff1c794cb89c1ad2cce8282
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 22200
|
serializedVersion: 22
|
||||||
internalIDToNameTable:
|
fileIDToRecycleName:
|
||||||
- first:
|
100000: hands:b_l_grip
|
||||||
1: 100000
|
100002: hands:b_l_hand
|
||||||
second: hands:b_l_grip
|
100004: hands:b_l_hand_ignore
|
||||||
- first:
|
100006: hands:b_l_index1
|
||||||
1: 100002
|
100008: hands:b_l_index2
|
||||||
second: hands:b_l_hand
|
100010: hands:b_l_index3
|
||||||
- first:
|
100012: hands:b_l_index_ignore
|
||||||
1: 100004
|
100014: hands:b_l_middle1
|
||||||
second: hands:b_l_hand_ignore
|
100016: hands:b_l_middle2
|
||||||
- first:
|
100018: hands:b_l_middle3
|
||||||
1: 100006
|
100020: hands:b_l_middle_ignore
|
||||||
second: hands:b_l_index1
|
100022: hands:b_l_pinky0
|
||||||
- first:
|
100024: hands:b_l_pinky1
|
||||||
1: 100008
|
100026: hands:b_l_pinky2
|
||||||
second: hands:b_l_index2
|
100028: hands:b_l_pinky3
|
||||||
- first:
|
100030: hands:b_l_pinky_ignore
|
||||||
1: 100010
|
100032: hands:b_l_ring1
|
||||||
second: hands:b_l_index3
|
100034: hands:b_l_ring2
|
||||||
- first:
|
100036: hands:b_l_ring3
|
||||||
1: 100012
|
100038: hands:b_l_ring_ignore
|
||||||
second: hands:b_l_index_ignore
|
100040: hands:b_l_thumb1
|
||||||
- first:
|
100042: hands:b_l_thumb2
|
||||||
1: 100014
|
100044: hands:b_l_thumb3
|
||||||
second: hands:b_l_middle1
|
100046: hands:b_l_thumb_ignore
|
||||||
- first:
|
100048: hands:hands_geom
|
||||||
1: 100016
|
100050: hands:l_hand_world
|
||||||
second: hands:b_l_middle2
|
100052: hands:Lhand
|
||||||
- first:
|
100054: //RootNode
|
||||||
1: 100018
|
400000: hands:b_l_grip
|
||||||
second: hands:b_l_middle3
|
400002: hands:b_l_hand
|
||||||
- first:
|
400004: hands:b_l_hand_ignore
|
||||||
1: 100020
|
400006: hands:b_l_index1
|
||||||
second: hands:b_l_middle_ignore
|
400008: hands:b_l_index2
|
||||||
- first:
|
400010: hands:b_l_index3
|
||||||
1: 100022
|
400012: hands:b_l_index_ignore
|
||||||
second: hands:b_l_pinky0
|
400014: hands:b_l_middle1
|
||||||
- first:
|
400016: hands:b_l_middle2
|
||||||
1: 100024
|
400018: hands:b_l_middle3
|
||||||
second: hands:b_l_pinky1
|
400020: hands:b_l_middle_ignore
|
||||||
- first:
|
400022: hands:b_l_pinky0
|
||||||
1: 100026
|
400024: hands:b_l_pinky1
|
||||||
second: hands:b_l_pinky2
|
400026: hands:b_l_pinky2
|
||||||
- first:
|
400028: hands:b_l_pinky3
|
||||||
1: 100028
|
400030: hands:b_l_pinky_ignore
|
||||||
second: hands:b_l_pinky3
|
400032: hands:b_l_ring1
|
||||||
- first:
|
400034: hands:b_l_ring2
|
||||||
1: 100030
|
400036: hands:b_l_ring3
|
||||||
second: hands:b_l_pinky_ignore
|
400038: hands:b_l_ring_ignore
|
||||||
- first:
|
400040: hands:b_l_thumb1
|
||||||
1: 100032
|
400042: hands:b_l_thumb2
|
||||||
second: hands:b_l_ring1
|
400044: hands:b_l_thumb3
|
||||||
- first:
|
400046: hands:b_l_thumb_ignore
|
||||||
1: 100034
|
400048: hands:hands_geom
|
||||||
second: hands:b_l_ring2
|
400050: hands:l_hand_world
|
||||||
- first:
|
400052: hands:Lhand
|
||||||
1: 100036
|
400054: //RootNode
|
||||||
second: hands:b_l_ring3
|
2100000: default3
|
||||||
- first:
|
2100002: unnamed1
|
||||||
1: 100038
|
4300000: hands:Lhand
|
||||||
second: hands:b_l_ring_ignore
|
7400000: Take 001
|
||||||
- first:
|
7400002: l_hand_skeletal_lowres
|
||||||
1: 100040
|
9500000: //RootNode
|
||||||
second: hands:b_l_thumb1
|
13700000: hands:Lhand
|
||||||
- first:
|
|
||||||
1: 100042
|
|
||||||
second: hands:b_l_thumb2
|
|
||||||
- first:
|
|
||||||
1: 100044
|
|
||||||
second: hands:b_l_thumb3
|
|
||||||
- first:
|
|
||||||
1: 100046
|
|
||||||
second: hands:b_l_thumb_ignore
|
|
||||||
- first:
|
|
||||||
1: 100048
|
|
||||||
second: hands:hands_geom
|
|
||||||
- first:
|
|
||||||
1: 100050
|
|
||||||
second: hands:l_hand_world
|
|
||||||
- first:
|
|
||||||
1: 100052
|
|
||||||
second: hands:Lhand
|
|
||||||
- first:
|
|
||||||
1: 100054
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
4: 400000
|
|
||||||
second: hands:b_l_grip
|
|
||||||
- first:
|
|
||||||
4: 400002
|
|
||||||
second: hands:b_l_hand
|
|
||||||
- first:
|
|
||||||
4: 400004
|
|
||||||
second: hands:b_l_hand_ignore
|
|
||||||
- first:
|
|
||||||
4: 400006
|
|
||||||
second: hands:b_l_index1
|
|
||||||
- first:
|
|
||||||
4: 400008
|
|
||||||
second: hands:b_l_index2
|
|
||||||
- first:
|
|
||||||
4: 400010
|
|
||||||
second: hands:b_l_index3
|
|
||||||
- first:
|
|
||||||
4: 400012
|
|
||||||
second: hands:b_l_index_ignore
|
|
||||||
- first:
|
|
||||||
4: 400014
|
|
||||||
second: hands:b_l_middle1
|
|
||||||
- first:
|
|
||||||
4: 400016
|
|
||||||
second: hands:b_l_middle2
|
|
||||||
- first:
|
|
||||||
4: 400018
|
|
||||||
second: hands:b_l_middle3
|
|
||||||
- first:
|
|
||||||
4: 400020
|
|
||||||
second: hands:b_l_middle_ignore
|
|
||||||
- first:
|
|
||||||
4: 400022
|
|
||||||
second: hands:b_l_pinky0
|
|
||||||
- first:
|
|
||||||
4: 400024
|
|
||||||
second: hands:b_l_pinky1
|
|
||||||
- first:
|
|
||||||
4: 400026
|
|
||||||
second: hands:b_l_pinky2
|
|
||||||
- first:
|
|
||||||
4: 400028
|
|
||||||
second: hands:b_l_pinky3
|
|
||||||
- first:
|
|
||||||
4: 400030
|
|
||||||
second: hands:b_l_pinky_ignore
|
|
||||||
- first:
|
|
||||||
4: 400032
|
|
||||||
second: hands:b_l_ring1
|
|
||||||
- first:
|
|
||||||
4: 400034
|
|
||||||
second: hands:b_l_ring2
|
|
||||||
- first:
|
|
||||||
4: 400036
|
|
||||||
second: hands:b_l_ring3
|
|
||||||
- first:
|
|
||||||
4: 400038
|
|
||||||
second: hands:b_l_ring_ignore
|
|
||||||
- first:
|
|
||||||
4: 400040
|
|
||||||
second: hands:b_l_thumb1
|
|
||||||
- first:
|
|
||||||
4: 400042
|
|
||||||
second: hands:b_l_thumb2
|
|
||||||
- first:
|
|
||||||
4: 400044
|
|
||||||
second: hands:b_l_thumb3
|
|
||||||
- first:
|
|
||||||
4: 400046
|
|
||||||
second: hands:b_l_thumb_ignore
|
|
||||||
- first:
|
|
||||||
4: 400048
|
|
||||||
second: hands:hands_geom
|
|
||||||
- first:
|
|
||||||
4: 400050
|
|
||||||
second: hands:l_hand_world
|
|
||||||
- first:
|
|
||||||
4: 400052
|
|
||||||
second: hands:Lhand
|
|
||||||
- first:
|
|
||||||
4: 400054
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
21: 2100000
|
|
||||||
second: default3
|
|
||||||
- first:
|
|
||||||
21: 2100002
|
|
||||||
second: unnamed1
|
|
||||||
- first:
|
|
||||||
43: 4300000
|
|
||||||
second: hands:Lhand
|
|
||||||
- first:
|
|
||||||
74: 7400000
|
|
||||||
second: Take 001
|
|
||||||
- first:
|
|
||||||
74: 7400002
|
|
||||||
second: l_hand_skeletal_lowres
|
|
||||||
- first:
|
|
||||||
95: 9500000
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
137: 13700000
|
|
||||||
second: hands:Lhand
|
|
||||||
externalObjects:
|
externalObjects:
|
||||||
- first:
|
- first:
|
||||||
type: UnityEngine:Material
|
type: UnityEngine:Material
|
||||||
@@ -199,7 +73,7 @@ ModelImporter:
|
|||||||
name: unnamed1
|
name: unnamed1
|
||||||
second: {fileID: 2100000, guid: 3637b758ff163493f8bb8b6d7e96d7ae, type: 2}
|
second: {fileID: 2100000, guid: 3637b758ff163493f8bb8b6d7e96d7ae, type: 2}
|
||||||
materials:
|
materials:
|
||||||
materialImportMode: 1
|
importMaterials: 1
|
||||||
materialName: 0
|
materialName: 0
|
||||||
materialSearch: 1
|
materialSearch: 1
|
||||||
materialLocation: 1
|
materialLocation: 1
|
||||||
@@ -208,7 +82,6 @@ ModelImporter:
|
|||||||
bakeSimulation: 0
|
bakeSimulation: 0
|
||||||
resampleCurves: 1
|
resampleCurves: 1
|
||||||
optimizeGameObjects: 0
|
optimizeGameObjects: 0
|
||||||
removeConstantScaleCurves: 0
|
|
||||||
motionNodeName:
|
motionNodeName:
|
||||||
rigImportErrors:
|
rigImportErrors:
|
||||||
rigImportWarnings:
|
rigImportWarnings:
|
||||||
@@ -217,7 +90,6 @@ ModelImporter:
|
|||||||
animationRetargetingWarnings:
|
animationRetargetingWarnings:
|
||||||
animationDoRetargetingWarnings: 0
|
animationDoRetargetingWarnings: 0
|
||||||
importAnimatedCustomProperties: 0
|
importAnimatedCustomProperties: 0
|
||||||
importConstraints: 0
|
|
||||||
animationCompression: 1
|
animationCompression: 1
|
||||||
animationRotationError: 0.5
|
animationRotationError: 0.5
|
||||||
animationPositionError: 0.5
|
animationPositionError: 0.5
|
||||||
@@ -232,48 +104,32 @@ ModelImporter:
|
|||||||
globalScale: 1
|
globalScale: 1
|
||||||
meshCompression: 0
|
meshCompression: 0
|
||||||
addColliders: 0
|
addColliders: 0
|
||||||
useSRGBMaterialColor: 1
|
|
||||||
sortHierarchyByName: 1
|
|
||||||
importVisibility: 1
|
importVisibility: 1
|
||||||
importBlendShapes: 1
|
importBlendShapes: 1
|
||||||
importCameras: 1
|
importCameras: 1
|
||||||
importLights: 1
|
importLights: 1
|
||||||
nodeNameCollisionStrategy: 0
|
|
||||||
fileIdsGeneration: 1
|
|
||||||
swapUVChannels: 0
|
swapUVChannels: 0
|
||||||
generateSecondaryUV: 1
|
generateSecondaryUV: 0
|
||||||
useFileUnits: 1
|
useFileUnits: 1
|
||||||
|
optimizeMeshForGPU: 1
|
||||||
keepQuads: 0
|
keepQuads: 0
|
||||||
weldVertices: 1
|
weldVertices: 1
|
||||||
bakeAxisConversion: 0
|
|
||||||
preserveHierarchy: 0
|
preserveHierarchy: 0
|
||||||
skinWeightsMode: 0
|
|
||||||
maxBonesPerVertex: 4
|
|
||||||
minBoneWeight: 0.001
|
|
||||||
optimizeBones: 1
|
|
||||||
meshOptimizationFlags: -1
|
|
||||||
indexFormat: 0
|
indexFormat: 0
|
||||||
secondaryUVAngleDistortion: 8
|
secondaryUVAngleDistortion: 8
|
||||||
secondaryUVAreaDistortion: 15
|
secondaryUVAreaDistortion: 15.000001
|
||||||
secondaryUVHardAngle: 88
|
secondaryUVHardAngle: 88
|
||||||
secondaryUVMarginMethod: 1
|
|
||||||
secondaryUVMinLightmapResolution: 1
|
|
||||||
secondaryUVMinObjectScale: 1
|
|
||||||
secondaryUVPackMargin: 4
|
secondaryUVPackMargin: 4
|
||||||
useFileScale: 1
|
useFileScale: 1
|
||||||
strictVertexDataChecks: 0
|
|
||||||
tangentSpace:
|
tangentSpace:
|
||||||
normalSmoothAngle: 60
|
normalSmoothAngle: 60
|
||||||
normalImportMode: 0
|
normalImportMode: 0
|
||||||
tangentImportMode: 0
|
tangentImportMode: 0
|
||||||
normalCalculationMode: 4
|
normalCalculationMode: 4
|
||||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
|
|
||||||
blendShapeNormalImportMode: 1
|
|
||||||
normalSmoothingSource: 0
|
|
||||||
referencedClips: []
|
|
||||||
importAnimation: 1
|
importAnimation: 1
|
||||||
|
copyAvatar: 0
|
||||||
humanDescription:
|
humanDescription:
|
||||||
serializedVersion: 3
|
serializedVersion: 2
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: 0.5
|
armTwist: 0.5
|
||||||
@@ -283,19 +139,14 @@ ModelImporter:
|
|||||||
armStretch: 0.05
|
armStretch: 0.05
|
||||||
legStretch: 0.05
|
legStretch: 0.05
|
||||||
feetSpacing: 0
|
feetSpacing: 0
|
||||||
globalScale: 1
|
|
||||||
rootMotionBoneName:
|
rootMotionBoneName:
|
||||||
|
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
hasTranslationDoF: 0
|
hasTranslationDoF: 0
|
||||||
hasExtraRoot: 0
|
hasExtraRoot: 0
|
||||||
skeletonHasParents: 1
|
skeletonHasParents: 1
|
||||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||||
autoGenerateAvatarMappingIfUnspecified: 1
|
|
||||||
animationType: 2
|
animationType: 2
|
||||||
humanoidOversampling: 1
|
humanoidOversampling: 1
|
||||||
avatarSetup: 1
|
|
||||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
|
|
||||||
importBlendShapeDeformPercent: 0
|
|
||||||
remapMaterialsIfMaterialImportModeIsNone: 1
|
|
||||||
additionalBone: 0
|
additionalBone: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
|
|||||||
@@ -1,197 +1,71 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: d0c255d07fd68f14b94e55d388e7e6bb
|
guid: d0c255d07fd68f14b94e55d388e7e6bb
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 22200
|
serializedVersion: 22
|
||||||
internalIDToNameTable:
|
fileIDToRecycleName:
|
||||||
- first:
|
100000: hands:b_r_grip
|
||||||
1: 100000
|
100002: hands:b_r_hand
|
||||||
second: hands:b_r_grip
|
100004: hands:b_r_hand_ignore
|
||||||
- first:
|
100006: hands:b_r_index1
|
||||||
1: 100002
|
100008: hands:b_r_index2
|
||||||
second: hands:b_r_hand
|
100010: hands:b_r_index3
|
||||||
- first:
|
100012: hands:b_r_index_ignore
|
||||||
1: 100004
|
100014: hands:b_r_middle1
|
||||||
second: hands:b_r_hand_ignore
|
100016: hands:b_r_middle2
|
||||||
- first:
|
100018: hands:b_r_middle3
|
||||||
1: 100006
|
100020: hands:b_r_middle_ignore
|
||||||
second: hands:b_r_index1
|
100022: hands:b_r_pinky0
|
||||||
- first:
|
100024: hands:b_r_pinky1
|
||||||
1: 100008
|
100026: hands:b_r_pinky2
|
||||||
second: hands:b_r_index2
|
100028: hands:b_r_pinky3
|
||||||
- first:
|
100030: hands:b_r_pinky_ignore
|
||||||
1: 100010
|
100032: hands:b_r_ring1
|
||||||
second: hands:b_r_index3
|
100034: hands:b_r_ring2
|
||||||
- first:
|
100036: hands:b_r_ring3
|
||||||
1: 100012
|
100038: hands:b_r_ring_ignore
|
||||||
second: hands:b_r_index_ignore
|
100040: hands:b_r_thumb1
|
||||||
- first:
|
100042: hands:b_r_thumb2
|
||||||
1: 100014
|
100044: hands:b_r_thumb3
|
||||||
second: hands:b_r_middle1
|
100046: hands:b_r_thumb_ignore
|
||||||
- first:
|
100048: hands:hands_geom
|
||||||
1: 100016
|
100050: hands:r_hand_world
|
||||||
second: hands:b_r_middle2
|
100052: hands:Rhand
|
||||||
- first:
|
100054: //RootNode
|
||||||
1: 100018
|
400000: hands:b_r_grip
|
||||||
second: hands:b_r_middle3
|
400002: hands:b_r_hand
|
||||||
- first:
|
400004: hands:b_r_hand_ignore
|
||||||
1: 100020
|
400006: hands:b_r_index1
|
||||||
second: hands:b_r_middle_ignore
|
400008: hands:b_r_index2
|
||||||
- first:
|
400010: hands:b_r_index3
|
||||||
1: 100022
|
400012: hands:b_r_index_ignore
|
||||||
second: hands:b_r_pinky0
|
400014: hands:b_r_middle1
|
||||||
- first:
|
400016: hands:b_r_middle2
|
||||||
1: 100024
|
400018: hands:b_r_middle3
|
||||||
second: hands:b_r_pinky1
|
400020: hands:b_r_middle_ignore
|
||||||
- first:
|
400022: hands:b_r_pinky0
|
||||||
1: 100026
|
400024: hands:b_r_pinky1
|
||||||
second: hands:b_r_pinky2
|
400026: hands:b_r_pinky2
|
||||||
- first:
|
400028: hands:b_r_pinky3
|
||||||
1: 100028
|
400030: hands:b_r_pinky_ignore
|
||||||
second: hands:b_r_pinky3
|
400032: hands:b_r_ring1
|
||||||
- first:
|
400034: hands:b_r_ring2
|
||||||
1: 100030
|
400036: hands:b_r_ring3
|
||||||
second: hands:b_r_pinky_ignore
|
400038: hands:b_r_ring_ignore
|
||||||
- first:
|
400040: hands:b_r_thumb1
|
||||||
1: 100032
|
400042: hands:b_r_thumb2
|
||||||
second: hands:b_r_ring1
|
400044: hands:b_r_thumb3
|
||||||
- first:
|
400046: hands:b_r_thumb_ignore
|
||||||
1: 100034
|
400048: hands:hands_geom
|
||||||
second: hands:b_r_ring2
|
400050: hands:r_hand_world
|
||||||
- first:
|
400052: hands:Rhand
|
||||||
1: 100036
|
400054: //RootNode
|
||||||
second: hands:b_r_ring3
|
2100000: default1
|
||||||
- first:
|
2100002: unnamed1
|
||||||
1: 100038
|
4300000: hands:Rhand
|
||||||
second: hands:b_r_ring_ignore
|
7400000: Take 001
|
||||||
- first:
|
7400002: r_hand_skeletal_lowres
|
||||||
1: 100040
|
9500000: //RootNode
|
||||||
second: hands:b_r_thumb1
|
13700000: hands:Rhand
|
||||||
- first:
|
|
||||||
1: 100042
|
|
||||||
second: hands:b_r_thumb2
|
|
||||||
- first:
|
|
||||||
1: 100044
|
|
||||||
second: hands:b_r_thumb3
|
|
||||||
- first:
|
|
||||||
1: 100046
|
|
||||||
second: hands:b_r_thumb_ignore
|
|
||||||
- first:
|
|
||||||
1: 100048
|
|
||||||
second: hands:hands_geom
|
|
||||||
- first:
|
|
||||||
1: 100050
|
|
||||||
second: hands:r_hand_world
|
|
||||||
- first:
|
|
||||||
1: 100052
|
|
||||||
second: hands:Rhand
|
|
||||||
- first:
|
|
||||||
1: 100054
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
4: 400000
|
|
||||||
second: hands:b_r_grip
|
|
||||||
- first:
|
|
||||||
4: 400002
|
|
||||||
second: hands:b_r_hand
|
|
||||||
- first:
|
|
||||||
4: 400004
|
|
||||||
second: hands:b_r_hand_ignore
|
|
||||||
- first:
|
|
||||||
4: 400006
|
|
||||||
second: hands:b_r_index1
|
|
||||||
- first:
|
|
||||||
4: 400008
|
|
||||||
second: hands:b_r_index2
|
|
||||||
- first:
|
|
||||||
4: 400010
|
|
||||||
second: hands:b_r_index3
|
|
||||||
- first:
|
|
||||||
4: 400012
|
|
||||||
second: hands:b_r_index_ignore
|
|
||||||
- first:
|
|
||||||
4: 400014
|
|
||||||
second: hands:b_r_middle1
|
|
||||||
- first:
|
|
||||||
4: 400016
|
|
||||||
second: hands:b_r_middle2
|
|
||||||
- first:
|
|
||||||
4: 400018
|
|
||||||
second: hands:b_r_middle3
|
|
||||||
- first:
|
|
||||||
4: 400020
|
|
||||||
second: hands:b_r_middle_ignore
|
|
||||||
- first:
|
|
||||||
4: 400022
|
|
||||||
second: hands:b_r_pinky0
|
|
||||||
- first:
|
|
||||||
4: 400024
|
|
||||||
second: hands:b_r_pinky1
|
|
||||||
- first:
|
|
||||||
4: 400026
|
|
||||||
second: hands:b_r_pinky2
|
|
||||||
- first:
|
|
||||||
4: 400028
|
|
||||||
second: hands:b_r_pinky3
|
|
||||||
- first:
|
|
||||||
4: 400030
|
|
||||||
second: hands:b_r_pinky_ignore
|
|
||||||
- first:
|
|
||||||
4: 400032
|
|
||||||
second: hands:b_r_ring1
|
|
||||||
- first:
|
|
||||||
4: 400034
|
|
||||||
second: hands:b_r_ring2
|
|
||||||
- first:
|
|
||||||
4: 400036
|
|
||||||
second: hands:b_r_ring3
|
|
||||||
- first:
|
|
||||||
4: 400038
|
|
||||||
second: hands:b_r_ring_ignore
|
|
||||||
- first:
|
|
||||||
4: 400040
|
|
||||||
second: hands:b_r_thumb1
|
|
||||||
- first:
|
|
||||||
4: 400042
|
|
||||||
second: hands:b_r_thumb2
|
|
||||||
- first:
|
|
||||||
4: 400044
|
|
||||||
second: hands:b_r_thumb3
|
|
||||||
- first:
|
|
||||||
4: 400046
|
|
||||||
second: hands:b_r_thumb_ignore
|
|
||||||
- first:
|
|
||||||
4: 400048
|
|
||||||
second: hands:hands_geom
|
|
||||||
- first:
|
|
||||||
4: 400050
|
|
||||||
second: hands:r_hand_world
|
|
||||||
- first:
|
|
||||||
4: 400052
|
|
||||||
second: hands:Rhand
|
|
||||||
- first:
|
|
||||||
4: 400054
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
21: 2100000
|
|
||||||
second: default1
|
|
||||||
- first:
|
|
||||||
21: 2100002
|
|
||||||
second: unnamed1
|
|
||||||
- first:
|
|
||||||
43: 4300000
|
|
||||||
second: hands:Rhand
|
|
||||||
- first:
|
|
||||||
74: 7400000
|
|
||||||
second: Take 001
|
|
||||||
- first:
|
|
||||||
74: 7400002
|
|
||||||
second: r_hand_skeletal_lowres
|
|
||||||
- first:
|
|
||||||
95: 9500000
|
|
||||||
second: //RootNode
|
|
||||||
- first:
|
|
||||||
137: 13700000
|
|
||||||
second: hands:Rhand
|
|
||||||
externalObjects:
|
externalObjects:
|
||||||
- first:
|
- first:
|
||||||
type: UnityEngine:Material
|
type: UnityEngine:Material
|
||||||
@@ -199,7 +73,7 @@ ModelImporter:
|
|||||||
name: unnamed1
|
name: unnamed1
|
||||||
second: {fileID: 2100000, guid: 3637b758ff163493f8bb8b6d7e96d7ae, type: 2}
|
second: {fileID: 2100000, guid: 3637b758ff163493f8bb8b6d7e96d7ae, type: 2}
|
||||||
materials:
|
materials:
|
||||||
materialImportMode: 1
|
importMaterials: 1
|
||||||
materialName: 0
|
materialName: 0
|
||||||
materialSearch: 1
|
materialSearch: 1
|
||||||
materialLocation: 1
|
materialLocation: 1
|
||||||
@@ -208,7 +82,6 @@ ModelImporter:
|
|||||||
bakeSimulation: 0
|
bakeSimulation: 0
|
||||||
resampleCurves: 1
|
resampleCurves: 1
|
||||||
optimizeGameObjects: 0
|
optimizeGameObjects: 0
|
||||||
removeConstantScaleCurves: 0
|
|
||||||
motionNodeName:
|
motionNodeName:
|
||||||
rigImportErrors:
|
rigImportErrors:
|
||||||
rigImportWarnings:
|
rigImportWarnings:
|
||||||
@@ -217,7 +90,6 @@ ModelImporter:
|
|||||||
animationRetargetingWarnings:
|
animationRetargetingWarnings:
|
||||||
animationDoRetargetingWarnings: 0
|
animationDoRetargetingWarnings: 0
|
||||||
importAnimatedCustomProperties: 0
|
importAnimatedCustomProperties: 0
|
||||||
importConstraints: 0
|
|
||||||
animationCompression: 1
|
animationCompression: 1
|
||||||
animationRotationError: 0.5
|
animationRotationError: 0.5
|
||||||
animationPositionError: 0.5
|
animationPositionError: 0.5
|
||||||
@@ -232,48 +104,32 @@ ModelImporter:
|
|||||||
globalScale: 1
|
globalScale: 1
|
||||||
meshCompression: 0
|
meshCompression: 0
|
||||||
addColliders: 0
|
addColliders: 0
|
||||||
useSRGBMaterialColor: 1
|
|
||||||
sortHierarchyByName: 1
|
|
||||||
importVisibility: 1
|
importVisibility: 1
|
||||||
importBlendShapes: 1
|
importBlendShapes: 1
|
||||||
importCameras: 1
|
importCameras: 1
|
||||||
importLights: 1
|
importLights: 1
|
||||||
nodeNameCollisionStrategy: 0
|
|
||||||
fileIdsGeneration: 1
|
|
||||||
swapUVChannels: 0
|
swapUVChannels: 0
|
||||||
generateSecondaryUV: 1
|
generateSecondaryUV: 0
|
||||||
useFileUnits: 1
|
useFileUnits: 1
|
||||||
|
optimizeMeshForGPU: 1
|
||||||
keepQuads: 0
|
keepQuads: 0
|
||||||
weldVertices: 1
|
weldVertices: 1
|
||||||
bakeAxisConversion: 0
|
|
||||||
preserveHierarchy: 0
|
preserveHierarchy: 0
|
||||||
skinWeightsMode: 0
|
|
||||||
maxBonesPerVertex: 4
|
|
||||||
minBoneWeight: 0.001
|
|
||||||
optimizeBones: 1
|
|
||||||
meshOptimizationFlags: -1
|
|
||||||
indexFormat: 0
|
indexFormat: 0
|
||||||
secondaryUVAngleDistortion: 8
|
secondaryUVAngleDistortion: 8
|
||||||
secondaryUVAreaDistortion: 15
|
secondaryUVAreaDistortion: 15.000001
|
||||||
secondaryUVHardAngle: 88
|
secondaryUVHardAngle: 88
|
||||||
secondaryUVMarginMethod: 1
|
|
||||||
secondaryUVMinLightmapResolution: 1
|
|
||||||
secondaryUVMinObjectScale: 1
|
|
||||||
secondaryUVPackMargin: 4
|
secondaryUVPackMargin: 4
|
||||||
useFileScale: 1
|
useFileScale: 1
|
||||||
strictVertexDataChecks: 0
|
|
||||||
tangentSpace:
|
tangentSpace:
|
||||||
normalSmoothAngle: 60
|
normalSmoothAngle: 60
|
||||||
normalImportMode: 0
|
normalImportMode: 0
|
||||||
tangentImportMode: 0
|
tangentImportMode: 0
|
||||||
normalCalculationMode: 4
|
normalCalculationMode: 4
|
||||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
|
|
||||||
blendShapeNormalImportMode: 1
|
|
||||||
normalSmoothingSource: 0
|
|
||||||
referencedClips: []
|
|
||||||
importAnimation: 1
|
importAnimation: 1
|
||||||
|
copyAvatar: 0
|
||||||
humanDescription:
|
humanDescription:
|
||||||
serializedVersion: 3
|
serializedVersion: 2
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: 0.5
|
armTwist: 0.5
|
||||||
@@ -283,19 +139,14 @@ ModelImporter:
|
|||||||
armStretch: 0.05
|
armStretch: 0.05
|
||||||
legStretch: 0.05
|
legStretch: 0.05
|
||||||
feetSpacing: 0
|
feetSpacing: 0
|
||||||
globalScale: 1
|
|
||||||
rootMotionBoneName:
|
rootMotionBoneName:
|
||||||
|
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
hasTranslationDoF: 0
|
hasTranslationDoF: 0
|
||||||
hasExtraRoot: 0
|
hasExtraRoot: 0
|
||||||
skeletonHasParents: 1
|
skeletonHasParents: 1
|
||||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||||
autoGenerateAvatarMappingIfUnspecified: 1
|
|
||||||
animationType: 2
|
animationType: 2
|
||||||
humanoidOversampling: 1
|
humanoidOversampling: 1
|
||||||
avatarSetup: 1
|
|
||||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
|
|
||||||
importBlendShapeDeformPercent: 0
|
|
||||||
remapMaterialsIfMaterialImportModeIsNone: 1
|
|
||||||
additionalBone: 0
|
additionalBone: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
|
|||||||
8
Assets/Plugins.meta
Normal file
8
Assets/Plugins.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7614f5c67d1ff3542beaf4fe57f2b011
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
9
Assets/Plugins/FMOD.meta
Normal file
9
Assets/Plugins/FMOD.meta
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 06ae579381df01a4a87bb149dec89954
|
||||||
|
folderAsset: yes
|
||||||
|
timeCreated: 1429061260
|
||||||
|
licenseType: Pro
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Plugins/FMOD/Cache.meta
Normal file
8
Assets/Plugins/FMOD/Cache.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 073efe56830e3114db9d15a0a53828e4
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
47
Assets/Plugins/FMOD/FMODUnity.asmdef
Normal file
47
Assets/Plugins/FMOD/FMODUnity.asmdef
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
"name": "FMODUnity",
|
||||||
|
"references": [
|
||||||
|
"Unity.Timeline",
|
||||||
|
"Unity.Addressables",
|
||||||
|
"Unity.ResourceManager",
|
||||||
|
"Unity.RenderPipelines.Universal.Runtime"
|
||||||
|
|
||||||
|
],
|
||||||
|
"includePlatforms": [],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [],
|
||||||
|
"autoReferenced": true,
|
||||||
|
"defineConstraints": [
|
||||||
|
"UNITY_2021_3_OR_NEWER"
|
||||||
|
],
|
||||||
|
"versionDefines": [
|
||||||
|
{
|
||||||
|
"name": "com.unity.timeline",
|
||||||
|
"expression": "1.0.0",
|
||||||
|
"define": "UNITY_TIMELINE_EXIST"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "com.unity.addressables",
|
||||||
|
"expression": "1.0.0",
|
||||||
|
"define": "UNITY_ADDRESSABLES_EXIST"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "com.unity.modules.physics",
|
||||||
|
"expression": "1.0.0",
|
||||||
|
"define": "UNITY_PHYSICS_EXIST"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "com.unity.modules.physics2d",
|
||||||
|
"expression": "1.0.0",
|
||||||
|
"define": "UNITY_PHYSICS2D_EXIST"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "com.unity.urp",
|
||||||
|
"expression": "1.0.0",
|
||||||
|
"define": "UNITY_URP_EXIST"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"noEngineReferences": false
|
||||||
|
}
|
||||||
7
Assets/Plugins/FMOD/FMODUnity.asmdef.meta
Normal file
7
Assets/Plugins/FMOD/FMODUnity.asmdef.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0c752da273b17c547ae705acf0f2adf2
|
||||||
|
AssemblyDefinitionImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
1053
Assets/Plugins/FMOD/LICENSE.txt
Normal file
1053
Assets/Plugins/FMOD/LICENSE.txt
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Plugins/FMOD/LICENSE.txt.meta
Normal file
7
Assets/Plugins/FMOD/LICENSE.txt.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fef88d5e0cfffab458ff59acc0d5a07a
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
14
Assets/Plugins/FMOD/README.txt
Normal file
14
Assets/Plugins/FMOD/README.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Welcome to FMOD for Unity
|
||||||
|
|
||||||
|
This package allows you to easily play back audio events created in FMOD Studio
|
||||||
|
within your Unity project.
|
||||||
|
|
||||||
|
The best place to start is with our online documentation:
|
||||||
|
https://fmod.com/docs/2.03/unity
|
||||||
|
|
||||||
|
If you prefer a more step-by-step guide, try our integration tutorial that
|
||||||
|
builds on the familiar Karting Microgame:
|
||||||
|
https://fmod.com/unity-integrate
|
||||||
|
|
||||||
|
For support, join the conversation on our Unity forums:
|
||||||
|
https://qa.fmod.com/c/unity
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user