Compare commits
48 Commits
master
...
1b3b3db1bf
| Author | SHA1 | Date | |
|---|---|---|---|
| 1b3b3db1bf | |||
| 236f0758df | |||
| 2262609cdd | |||
| 8b037369b7 | |||
| 39b4a24ef3 | |||
| f184151fdb | |||
| b424c6467b | |||
| 409b9fbb51 | |||
| 2c19602e9b | |||
| 90781191b7 | |||
| 5796887f79 | |||
| 0cb92b2442 | |||
| 32a5e4f332 | |||
| 5956b9508d | |||
| 7be20d249e | |||
| 9c7536d1d4 | |||
| 0c026078d0 | |||
| 843bd141eb | |||
| 408949e5c2 | |||
| 40e273f51e | |||
| a66cb8f62c | |||
| cc3c481295 | |||
| 2980631414 | |||
| c15ae24c7a | |||
| 7f02dccc6b | |||
| 34a6c50598 | |||
| 191c9e66fe | |||
| d7fec73c77 | |||
| 590c62eadd | |||
| fdd4ff827e | |||
| d2e1c7b56f | |||
| 09f764c0df | |||
| 447449e1b3 | |||
| d43408cf01 | |||
|
|
9bfc55f2d6 | ||
|
|
1b0d9fd0b0 | ||
|
|
f8ca8570af | ||
| e25f1c75b5 | |||
| c5c40f58ab | |||
|
|
2971027af2 | ||
|
|
34a23ab94d | ||
|
|
8b3965d0b1 | ||
| 42d7c0059b | |||
|
|
6413d5a3d6 | ||
|
|
e4f9423ca6 | ||
|
|
1bb878848f | ||
|
|
ae497eac6e | ||
|
|
2cf0a9f711 |
30
.gitignore
vendored
30
.gitignore
vendored
@@ -77,33 +77,3 @@ 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
|
|
||||||
|
|
||||||
|
|
||||||
# Project-specific files
|
|
||||||
config.json
|
|
||||||
6
3d-generation-pipeline/.env.example
Normal file
6
3d-generation-pipeline/.env.example
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
INVOKEAI_URL=
|
||||||
|
INVOKEAI_MODEL_KEY=
|
||||||
|
TRELLIS_URL=
|
||||||
|
|
||||||
|
CLOUDFLARE_ACCOUNT_ID=
|
||||||
|
CLOUDFLARE_API_TOKEN=
|
||||||
7
3d-generation-pipeline/.gitignore
vendored
Normal file
7
3d-generation-pipeline/.gitignore
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
.venv
|
||||||
|
.env
|
||||||
|
__pycache__
|
||||||
|
images/
|
||||||
|
models/
|
||||||
|
logs/
|
||||||
|
notebooks/test_resources/
|
||||||
6
3d-generation-pipeline/README.md
Normal file
6
3d-generation-pipeline/README.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
### TODO
|
||||||
|
* Artikkel text-to-3d prompt engineeringu kohta: "Sel3DCraft: Interactive Visual Prompts for User-Friendly Text-to-3D Generation"
|
||||||
|
* TRELLIS: postprocessing_utils: texture baking mode: 'opt' vs 'fast' - hardcoded 'opt', kui võimaldada 'fast' siis tuleb error
|
||||||
|
|
||||||
|
### 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)
|
||||||
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"]
|
||||||
492
3d-generation-pipeline/generate_image_local.py
Normal file
492
3d-generation-pipeline/generate_image_local.py
Normal file
@@ -0,0 +1,492 @@
|
|||||||
|
# Based on: https://github.com/coinstax/invokeai-mcp-server
|
||||||
|
|
||||||
|
import requests
|
||||||
|
import asyncio
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
import httpx
|
||||||
|
import os
|
||||||
|
|
||||||
|
from typing import Optional
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
# Configure logging
|
||||||
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
logger = logging.getLogger("invokeai-mcp")
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
INVOKEAI_BASE_URL = os.environ["INVOKEAI_URL"]
|
||||||
|
INVOKEAI_MODEL_KEY = os.environ["INVOKEAI_MODEL_KEY"]
|
||||||
|
DEFAULT_QUEUE_ID = "default"
|
||||||
|
|
||||||
|
# HTTP client
|
||||||
|
http_client: Optional[httpx.AsyncClient] = None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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 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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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 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 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
|
||||||
|
|
||||||
|
|
||||||
|
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("got image url: ", image_url)
|
||||||
|
download_file(image_url, output_path)
|
||||||
74
3d-generation-pipeline/generate_model_local.py
Normal file
74
3d-generation-pipeline/generate_model_local.py
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
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("Starting generation...")
|
||||||
|
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...")
|
||||||
|
response = requests.get(f"{API_URL}/download/model")
|
||||||
|
response.raise_for_status()
|
||||||
|
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
|
||||||
|
|
||||||
153
3d-generation-pipeline/notebooks/cloudflare_API_test.ipynb
Normal file
153
3d-generation-pipeline/notebooks/cloudflare_API_test.ipynb
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 1,
|
||||||
|
"id": "1dc6faae",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import os\n",
|
||||||
|
"import base64\n",
|
||||||
|
"import requests\n",
|
||||||
|
"from dotenv import load_dotenv"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 2,
|
||||||
|
"id": "b3107275",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"load_dotenv()\n",
|
||||||
|
"\n",
|
||||||
|
"ACCOUNT_ID = os.environ[\"CLOUDFLARE_ACCOUNT_ID\"]\n",
|
||||||
|
"API_TOKEN = os.environ[\"CLOUDFLARE_API_TOKEN\"]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "999adf95",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"## Text to image"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "40b35163",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"Saved: test_resources/resolution_test_1.jpg (315728 bytes)\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"# https://developers.cloudflare.com/workers-ai/models/flux-1-schnell/\n",
|
||||||
|
"\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",
|
||||||
|
"\n",
|
||||||
|
"payload = {\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",
|
||||||
|
"headers = {\n",
|
||||||
|
" \"Authorization\": f\"Bearer {API_TOKEN}\",\n",
|
||||||
|
" \"Content-Type\": \"application/json\",\n",
|
||||||
|
"}\n",
|
||||||
|
"\n",
|
||||||
|
"resp = requests.post(URL, json=payload, headers=headers, timeout=60)\n",
|
||||||
|
"resp.raise_for_status()\n",
|
||||||
|
"\n",
|
||||||
|
"data = resp.json()\n",
|
||||||
|
"b64 = data[\"result\"][\"image\"]\n",
|
||||||
|
"if not b64:\n",
|
||||||
|
" raise RuntimeError(f\"Unexpected response structure: {data}\")\n",
|
||||||
|
"\n",
|
||||||
|
"img_bytes = base64.b64decode(b64)\n",
|
||||||
|
"\n",
|
||||||
|
"out_path = \"test_resources/resolution_test_1.jpg\"\n",
|
||||||
|
"with open(out_path, \"wb\") as f:\n",
|
||||||
|
" f.write(img_bytes)\n",
|
||||||
|
"\n",
|
||||||
|
"print(f\"Saved: {out_path} ({len(img_bytes)} bytes)\")"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "14a874c4",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"## Text prompt refinement"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 13,
|
||||||
|
"id": "485f6f46",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"\"dark wooden battleaxe with bronze blade\"\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"MODEL = \"@cf/meta/llama-3.2-3b-instruct\"\n",
|
||||||
|
"URL = f\"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/{MODEL}\"\n",
|
||||||
|
"\n",
|
||||||
|
"instructions = \"\"\"\n",
|
||||||
|
"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.\n",
|
||||||
|
"Example:\n",
|
||||||
|
"User: 'Umm, okay, I would like a really cool sword, with for example a bright orange crossguard. And also it should be slightly curved.'\n",
|
||||||
|
"You: 'a slightly curved sword with bright orange crossguard'\n",
|
||||||
|
"\"\"\"\n",
|
||||||
|
"prompt = \"Umm, alright, can you please give me an epic battleaxe? It should have a dark wooden shaft and bronze blade.\"\n",
|
||||||
|
"\n",
|
||||||
|
"response = requests.post(URL,\n",
|
||||||
|
" headers={\"Authorization\": f\"Bearer {API_TOKEN}\"},\n",
|
||||||
|
" json={\n",
|
||||||
|
" \"messages\": [\n",
|
||||||
|
" {\"role\": \"system\", \"content\": instructions},\n",
|
||||||
|
" {\"role\": \"user\", \"content\": prompt}\n",
|
||||||
|
" ]\n",
|
||||||
|
" }\n",
|
||||||
|
")\n",
|
||||||
|
"data = response.json()\n",
|
||||||
|
"result_text = data[\"result\"][\"response\"]\n",
|
||||||
|
"print(result_text)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"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
|
||||||
|
}
|
||||||
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
|
||||||
|
}
|
||||||
165
3d-generation-pipeline/notebooks/subprocess_test.ipynb
Normal file
165
3d-generation-pipeline/notebooks/subprocess_test.ipynb
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 1,
|
||||||
|
"id": "4826c91d",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"'2025-10-18-16-35-47'"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"execution_count": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"from datetime import datetime\n",
|
||||||
|
"\n",
|
||||||
|
"datetime.now().strftime(\"%Y-%m-%d-%H-%M-%S\")"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 4,
|
||||||
|
"id": "9419e692",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"STDOUT:\n",
|
||||||
|
" Device used: cuda\n",
|
||||||
|
"After Remesh 9998 19996\n",
|
||||||
|
"\n",
|
||||||
|
"STDERR:\n",
|
||||||
|
" D:\\users\\henrisel\\stable-fast-3d\\.venv\\lib\\site-packages\\timm\\models\\layers\\__init__.py:48: FutureWarning: Importing from timm.models.layers is deprecated, please import via timm.layers\n",
|
||||||
|
" warnings.warn(f\"Importing from {__name__} is deprecated, please import via timm.layers\", FutureWarning)\n",
|
||||||
|
"\n",
|
||||||
|
" 0%| | 0/1 [00:00<?, ?it/s]\n",
|
||||||
|
" 0%| | 0/1 [00:00<?, ?it/s]\n",
|
||||||
|
"Traceback (most recent call last):\n",
|
||||||
|
" File \"D:\\users\\henrisel\\stable-fast-3d\\run.py\", line 122, in <module>\n",
|
||||||
|
" mesh, glob_dict = model.run_image(\n",
|
||||||
|
" File \"D:\\users\\henrisel\\stable-fast-3d\\sf3d\\system.py\", line 286, in run_image\n",
|
||||||
|
" meshes, global_dict = self.generate_mesh(\n",
|
||||||
|
" File \"D:\\users\\henrisel\\stable-fast-3d\\sf3d\\system.py\", line 369, in generate_mesh\n",
|
||||||
|
" rast = self.baker.rasterize(\n",
|
||||||
|
" File \"D:\\users\\henrisel\\stable-fast-3d\\.venv\\lib\\site-packages\\texture_baker\\baker.py\", line 28, in rasterize\n",
|
||||||
|
" return torch.ops.texture_baker_cpp.rasterize(\n",
|
||||||
|
" File \"D:\\users\\henrisel\\stable-fast-3d\\.venv\\lib\\site-packages\\torch\\_ops.py\", line 1243, in __call__\n",
|
||||||
|
" return self._op(*args, **kwargs)\n",
|
||||||
|
"NotImplementedError: Could not run 'texture_baker_cpp::rasterize' with arguments from the 'CUDA' backend. This could be because the operator doesn't exist for this backend, or was omitted during the selective/custom build process (if using custom build). If you are a Facebook employee using PyTorch on mobile, please visit https://fburl.com/ptmfixes for possible resolutions. 'texture_baker_cpp::rasterize' is only available for these backends: [CPU, Meta, BackendSelect, Python, FuncTorchDynamicLayerBackMode, Functionalize, Named, Conjugate, Negative, ZeroTensor, ADInplaceOrView, AutogradOther, AutogradCPU, AutogradCUDA, AutogradXLA, AutogradMPS, AutogradXPU, AutogradHPU, AutogradLazy, AutogradMTIA, AutogradMAIA, AutogradMeta, Tracer, AutocastCPU, AutocastMTIA, AutocastMAIA, AutocastXPU, AutocastMPS, AutocastCUDA, FuncTorchBatched, BatchedNestedTensor, FuncTorchVmapMode, Batched, VmapMode, FuncTorchGradWrapper, PythonTLSSnapshot, FuncTorchDynamicLayerFrontMode, PreDispatch, PythonDispatcher].\n",
|
||||||
|
"\n",
|
||||||
|
"CPU: registered at texture_baker\\csrc\\baker.cpp:543 [kernel]\n",
|
||||||
|
"Meta: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\MetaFallbackKernel.cpp:23 [backend fallback]\n",
|
||||||
|
"BackendSelect: fallthrough registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\BackendSelectFallbackKernel.cpp:3 [backend fallback]\n",
|
||||||
|
"Python: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\PythonFallbackKernel.cpp:194 [backend fallback]\n",
|
||||||
|
"FuncTorchDynamicLayerBackMode: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\functorch\\DynamicLayer.cpp:479 [backend fallback]\n",
|
||||||
|
"Functionalize: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\FunctionalizeFallbackKernel.cpp:375 [backend fallback]\n",
|
||||||
|
"Named: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\NamedRegistrations.cpp:7 [backend fallback]\n",
|
||||||
|
"Conjugate: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\ConjugateFallback.cpp:17 [backend fallback]\n",
|
||||||
|
"Negative: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\native\\NegateFallback.cpp:18 [backend fallback]\n",
|
||||||
|
"ZeroTensor: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\ZeroTensorFallback.cpp:86 [backend fallback]\n",
|
||||||
|
"ADInplaceOrView: fallthrough registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\VariableFallbackKernel.cpp:104 [backend fallback]\n",
|
||||||
|
"AutogradOther: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\VariableFallbackKernel.cpp:63 [backend fallback]\n",
|
||||||
|
"AutogradCPU: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\VariableFallbackKernel.cpp:67 [backend fallback]\n",
|
||||||
|
"AutogradCUDA: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\VariableFallbackKernel.cpp:75 [backend fallback]\n",
|
||||||
|
"AutogradXLA: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\VariableFallbackKernel.cpp:87 [backend fallback]\n",
|
||||||
|
"AutogradMPS: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\VariableFallbackKernel.cpp:95 [backend fallback]\n",
|
||||||
|
"AutogradXPU: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\VariableFallbackKernel.cpp:71 [backend fallback]\n",
|
||||||
|
"AutogradHPU: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\VariableFallbackKernel.cpp:108 [backend fallback]\n",
|
||||||
|
"AutogradLazy: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\VariableFallbackKernel.cpp:91 [backend fallback]\n",
|
||||||
|
"AutogradMTIA: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\VariableFallbackKernel.cpp:79 [backend fallback]\n",
|
||||||
|
"AutogradMAIA: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\VariableFallbackKernel.cpp:83 [backend fallback]\n",
|
||||||
|
"AutogradMeta: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\VariableFallbackKernel.cpp:99 [backend fallback]\n",
|
||||||
|
"Tracer: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\torch\\csrc\\autograd\\TraceTypeManual.cpp:294 [backend fallback]\n",
|
||||||
|
"AutocastCPU: fallthrough registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\autocast_mode.cpp:322 [backend fallback]\n",
|
||||||
|
"AutocastMTIA: fallthrough registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\autocast_mode.cpp:466 [backend fallback]\n",
|
||||||
|
"AutocastMAIA: fallthrough registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\autocast_mode.cpp:504 [backend fallback]\n",
|
||||||
|
"AutocastXPU: fallthrough registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\autocast_mode.cpp:542 [backend fallback]\n",
|
||||||
|
"AutocastMPS: fallthrough registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\autocast_mode.cpp:209 [backend fallback]\n",
|
||||||
|
"AutocastCUDA: fallthrough registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\autocast_mode.cpp:165 [backend fallback]\n",
|
||||||
|
"FuncTorchBatched: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\functorch\\LegacyBatchingRegistrations.cpp:731 [backend fallback]\n",
|
||||||
|
"BatchedNestedTensor: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\functorch\\LegacyBatchingRegistrations.cpp:758 [backend fallback]\n",
|
||||||
|
"FuncTorchVmapMode: fallthrough registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\functorch\\VmapModeRegistrations.cpp:27 [backend fallback]\n",
|
||||||
|
"Batched: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\LegacyBatchingRegistrations.cpp:1075 [backend fallback]\n",
|
||||||
|
"VmapMode: fallthrough registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\VmapModeRegistrations.cpp:33 [backend fallback]\n",
|
||||||
|
"FuncTorchGradWrapper: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\functorch\\TensorWrapper.cpp:210 [backend fallback]\n",
|
||||||
|
"PythonTLSSnapshot: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\PythonFallbackKernel.cpp:202 [backend fallback]\n",
|
||||||
|
"FuncTorchDynamicLayerFrontMode: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\functorch\\DynamicLayer.cpp:475 [backend fallback]\n",
|
||||||
|
"PreDispatch: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\PythonFallbackKernel.cpp:206 [backend fallback]\n",
|
||||||
|
"PythonDispatcher: registered at C:\\actions-runner\\_work\\pytorch\\pytorch\\pytorch\\aten\\src\\ATen\\core\\PythonFallbackKernel.cpp:198 [backend fallback]\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"Return Code: 1\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"import subprocess\n",
|
||||||
|
"\n",
|
||||||
|
"MODEL_FOLDER = r\"D:\\users\\henrisel\\stable-fast-3d\"\n",
|
||||||
|
"PROJECT_FOLDER = r\"D:\\users\\henrisel\\DeltaVR3DModelGeneration\\3d-generation-pipeline\"\n",
|
||||||
|
"\n",
|
||||||
|
"# Path to the Python interpreter in the other virtual environment\n",
|
||||||
|
"venv_python = MODEL_FOLDER + r\"\\.venv\\Scripts\\python.exe\"\n",
|
||||||
|
"\n",
|
||||||
|
"# Path to the .py file you want to run\n",
|
||||||
|
"script_path = MODEL_FOLDER + r\"\\run.py\"\n",
|
||||||
|
"\n",
|
||||||
|
"# Optional: arguments to pass to the script\n",
|
||||||
|
"args = [MODEL_FOLDER + r\"\\demo_files\\examples\\chair1.png\", \"--output-dir\", PROJECT_FOLDER + r\"\\images\"]\n",
|
||||||
|
"\n",
|
||||||
|
"# Build the command\n",
|
||||||
|
"command = [venv_python, script_path] + args\n",
|
||||||
|
"\n",
|
||||||
|
"try:\n",
|
||||||
|
" # Run the subprocess\n",
|
||||||
|
" result = subprocess.run(command, capture_output=True, text=True)\n",
|
||||||
|
"\n",
|
||||||
|
" # Print output and errors\n",
|
||||||
|
" print(\"STDOUT:\\n\", result.stdout)\n",
|
||||||
|
" print(\"STDERR:\\n\", result.stderr)\n",
|
||||||
|
" print(\"Return Code:\", result.returncode)\n",
|
||||||
|
"\n",
|
||||||
|
"except Exception as e:\n",
|
||||||
|
" print(f\"Error occurred: {e}\")\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "ee480ba6",
|
||||||
|
"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.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5
|
||||||
|
}
|
||||||
7
3d-generation-pipeline/requirements.txt
Normal file
7
3d-generation-pipeline/requirements.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#torch==2.8.0+cu129 https://pytorch.org/get-started/previous-versions/
|
||||||
|
transformers==4.57.0
|
||||||
|
git+https://github.com/huggingface/diffusers.git
|
||||||
|
accelerate==1.10.1
|
||||||
|
huggingface_hub[hf_xet]==1.1.10
|
||||||
|
sentencepiece==0.2.1
|
||||||
|
protobuf==6.32.1
|
||||||
62
3d-generation-pipeline/start_pipeline.py
Normal file
62
3d-generation-pipeline/start_pipeline.py
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
import argparse
|
||||||
|
import asyncio
|
||||||
|
import logging
|
||||||
|
import time
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
from datetime import datetime
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
from generate_image_local import text_to_image_invoke_ai
|
||||||
|
from generate_model_local import image_to_3d_trellis
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
|
||||||
|
def get_timestamp():
|
||||||
|
return datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
|
||||||
|
|
||||||
|
def setup_logger(base_folder, timestamp):
|
||||||
|
log_dir = base_folder / Path("logs")
|
||||||
|
log_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
logging.basicConfig(
|
||||||
|
filename=log_dir / f"{timestamp}.log",
|
||||||
|
level=logging.INFO,
|
||||||
|
force=True
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
async def main():
|
||||||
|
parser = argparse.ArgumentParser(description="Text to 3D model pipeline")
|
||||||
|
parser.add_argument("--prompt", type=str, required=True, help="User text prompt")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
input_prompt = args.prompt
|
||||||
|
print(f"Input prompt: {input_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"
|
||||||
|
|
||||||
|
pipeline_folder = Path(__file__).resolve().parent
|
||||||
|
timestamp = get_timestamp()
|
||||||
|
setup_logger(pipeline_folder, timestamp)
|
||||||
|
time_checkpoint = time.time()
|
||||||
|
|
||||||
|
image_path = pipeline_folder / "images" / f"{timestamp}.jpg"
|
||||||
|
# TODO: use Invoke AI or Cloudflare, depending on env var
|
||||||
|
#text_to_image_cloudflare(image_generation_prompt, image_path)
|
||||||
|
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}")
|
||||||
|
|
||||||
|
model_path = pipeline_folder / "models" / timestamp
|
||||||
|
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__":
|
||||||
|
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.
61
Assets/Fish-Networking-Discovery-main/.gitignore
vendored
Normal file
61
Assets/Fish-Networking-Discovery-main/.gitignore
vendored
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
# This .gitignore file should be placed at the root of your Unity project directory
|
||||||
|
#
|
||||||
|
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
|
||||||
|
#
|
||||||
|
/[Ll]ibrary/
|
||||||
|
/[Tt]emp/
|
||||||
|
/[Oo]bj/
|
||||||
|
/[Bb]uild/
|
||||||
|
/[Bb]uilds/
|
||||||
|
/[Ll]ogs/
|
||||||
|
/[Mm]emoryCaptures/
|
||||||
|
|
||||||
|
# Asset meta data should only be ignored when the corresponding asset is also ignored
|
||||||
|
!/[Aa]ssets/**/*.meta
|
||||||
|
|
||||||
|
# Uncomment this line if you wish to ignore the asset store tools plugin
|
||||||
|
# /[Aa]ssets/AssetStoreTools*
|
||||||
|
|
||||||
|
# Autogenerated Jetbrains Rider plugin
|
||||||
|
[Aa]ssets/Plugins/Editor/JetBrains*
|
||||||
|
|
||||||
|
# Visual Studio cache directory
|
||||||
|
.vs/
|
||||||
|
|
||||||
|
# Gradle cache directory
|
||||||
|
.gradle/
|
||||||
|
|
||||||
|
# Autogenerated VS/MD/Consulo solution and project files
|
||||||
|
ExportedObj/
|
||||||
|
.consulo/
|
||||||
|
*.csproj
|
||||||
|
*.unityproj
|
||||||
|
*.sln
|
||||||
|
*.suo
|
||||||
|
*.tmp
|
||||||
|
*.user
|
||||||
|
*.userprefs
|
||||||
|
*.pidb
|
||||||
|
*.booproj
|
||||||
|
*.svd
|
||||||
|
*.pdb
|
||||||
|
*.mdb
|
||||||
|
*.opendb
|
||||||
|
*.VC.db
|
||||||
|
|
||||||
|
# Unity3D generated meta files
|
||||||
|
*.pidb.meta
|
||||||
|
*.pdb.meta
|
||||||
|
*.mdb.meta
|
||||||
|
*.meta
|
||||||
|
|
||||||
|
# Unity3D generated file on crash reports
|
||||||
|
sysinfo.txt
|
||||||
|
|
||||||
|
# Builds
|
||||||
|
*.apk
|
||||||
|
*.unitypackage
|
||||||
|
|
||||||
|
# Crashlytics generated file
|
||||||
|
crashlytics-build.properties
|
||||||
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 4939e812d2cae8a448666fc57569da59
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: e8cb728e8e288c947a1e0870382445bd
|
|
||||||
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 IPButton;
|
public GameObject serverListItemPrefab;
|
||||||
public TMP_Text statusText;
|
public TMP_Text statusText;
|
||||||
public Button quitButton;
|
public Button quitButton;
|
||||||
|
|
||||||
@@ -55,7 +55,6 @@ 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);
|
||||||
@@ -81,7 +80,6 @@ public class NetworkMenuUI : MonoBehaviour
|
|||||||
}
|
}
|
||||||
private void OnStartPlaying()
|
private void OnStartPlaying()
|
||||||
{
|
{
|
||||||
Debug.Log("START PRESSED");
|
|
||||||
statusText.text = "Starting host...";
|
statusText.text = "Starting host...";
|
||||||
StartCoroutine(HostAndSearchRoutine());
|
StartCoroutine(HostAndSearchRoutine());
|
||||||
}
|
}
|
||||||
@@ -154,7 +152,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());
|
||||||
@@ -163,7 +161,7 @@ public class NetworkMenuUI : MonoBehaviour
|
|||||||
}
|
}
|
||||||
|
|
||||||
Debug.Log("Server is foregin");
|
Debug.Log("Server is foregin");
|
||||||
GameObject item = Instantiate(IPButton, serverListContainer);
|
GameObject item = Instantiate(serverListItemPrefab, serverListContainer);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 49f99c1c0ae8c774eb6bdcbc83c2cfef
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: e928fc8fc03e26a46ad7f8520d468e41
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 8d77d91c1b4e73044b53ddce11333fea
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 474f76f05fac11a4e8e1ed68314fba90
|
|
||||||
PrefabImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<ConfigurationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
||||||
<Loaded>true</Loaded>
|
|
||||||
<PrefabGenerator>
|
|
||||||
<Enabled>true</Enabled>
|
|
||||||
<LogToConsole>true</LogToConsole>
|
|
||||||
<FullRebuild>false</FullRebuild>
|
|
||||||
<SaveChanges>true</SaveChanges>
|
|
||||||
<DefaultPrefabObjectsPath>Assets\DefaultPrefabObjects.asset</DefaultPrefabObjectsPath>
|
|
||||||
<SearchScope>1</SearchScope>
|
|
||||||
<ExcludedFolders />
|
|
||||||
<IncludedFolders>
|
|
||||||
<string>Assets\_PROJECT</string>
|
|
||||||
</IncludedFolders>
|
|
||||||
</PrefabGenerator>
|
|
||||||
<CodeStripping>
|
|
||||||
<IsBuilding>false</IsBuilding>
|
|
||||||
<IsDevelopment>false</IsDevelopment>
|
|
||||||
<IsHeadless>false</IsHeadless>
|
|
||||||
<StripReleaseBuilds>false</StripReleaseBuilds>
|
|
||||||
<StrippingType>0</StrippingType>
|
|
||||||
</CodeStripping>
|
|
||||||
</ConfigurationData>
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: fdec8b985bdf2364cac858b4136da794
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -319,12 +319,9 @@ namespace FishNet.Editing.PrefabCollectionGenerator
|
|||||||
{
|
{
|
||||||
foreach (string path in GetPrefabFiles("Assets", excludedPaths, true))
|
foreach (string path in GetPrefabFiles("Assets", excludedPaths, true))
|
||||||
{
|
{
|
||||||
|
|
||||||
NetworkObject nob = AssetDatabase.LoadAssetAtPath<NetworkObject>(path);
|
NetworkObject nob = AssetDatabase.LoadAssetAtPath<NetworkObject>(path);
|
||||||
if (nob != null)
|
if (nob != null)
|
||||||
foundNobs.Add(nob);
|
foundNobs.Add(nob);
|
||||||
else
|
|
||||||
UnityEngine.Debug.LogWarning("Last loading error with: " + path);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Specific folders.
|
//Specific folders.
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 116b8a33d83907d4b9dc092e9baa3639
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 93756a6a02237c0418736f2a31b54230
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 5312cf64a580ce242aadae4fa36765df
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,131 +0,0 @@
|
|||||||
%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:
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 0284ecac7be7e2d409126f62358d744b
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,131 +0,0 @@
|
|||||||
%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:
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 011fededf8deb2f479afbcb453d11410
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 5bea1e892b5c61f4e83c76c6ebd566bd
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 77459436eeb3aeb48871d657bcb5fd7f
|
|
||||||
PrefabImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,966 +0,0 @@
|
|||||||
%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}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 7811abe38615a86438f679bcf79f5b92
|
|
||||||
PrefabImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 3c99d0ba506360a43b8cea08ef805d25
|
|
||||||
PrefabImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,966 +0,0 @@
|
|||||||
%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}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: d2121c8d819597349ac6f3e6043fa1f3
|
|
||||||
PrefabImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,115 +0,0 @@
|
|||||||
%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}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 6c2509c76b281144cb0099fc45f17a09
|
|
||||||
PrefabImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,115 +0,0 @@
|
|||||||
%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}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: ddc38db09f9124241b4b4e9b2b9831eb
|
|
||||||
PrefabImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: fe37bd8dfb4a37b499eab19f16f57fdb
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 99b4a737903b82a43bb95804a2149147
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -2,25 +2,20 @@
|
|||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 6
|
||||||
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_Parent: {fileID: 0}
|
m_ShaderKeywords: _EMISSION
|
||||||
m_ModifiedSerializedProperties: 0
|
m_LightmapFlags: 5
|
||||||
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:
|
||||||
@@ -60,7 +55,6 @@ 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,65 +1,173 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 1ae9aefe37a62de429ddc2edd1ca36f3
|
guid: 1ae9aefe37a62de429ddc2edd1ca36f3
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 22
|
serializedVersion: 22200
|
||||||
fileIDToRecycleName:
|
internalIDToNameTable:
|
||||||
100000: hands:b_l_grip
|
- first:
|
||||||
100002: hands:b_l_hand
|
1: 100000
|
||||||
100004: hands:b_l_hand_ignore
|
second: hands:b_l_grip
|
||||||
100006: hands:b_l_index1
|
- first:
|
||||||
100008: hands:b_l_index2
|
1: 100002
|
||||||
100010: hands:b_l_index3
|
second: hands:b_l_hand
|
||||||
100012: hands:b_l_index_ignore
|
- first:
|
||||||
100014: hands:b_l_middle1
|
1: 100004
|
||||||
100016: hands:b_l_middle2
|
second: hands:b_l_hand_ignore
|
||||||
100018: hands:b_l_middle3
|
- first:
|
||||||
100020: hands:b_l_middle_ignore
|
1: 100006
|
||||||
100022: hands:b_l_pinky0
|
second: hands:b_l_index1
|
||||||
100024: hands:b_l_pinky1
|
- first:
|
||||||
100026: hands:b_l_pinky2
|
1: 100008
|
||||||
100028: hands:b_l_pinky3
|
second: hands:b_l_index2
|
||||||
100030: hands:b_l_pinky_ignore
|
- first:
|
||||||
100032: hands:b_l_ring1
|
1: 100010
|
||||||
100034: hands:b_l_ring2
|
second: hands:b_l_index3
|
||||||
100036: hands:b_l_ring3
|
- first:
|
||||||
100038: hands:b_l_ring_ignore
|
1: 100012
|
||||||
100040: hands:b_l_thumb1
|
second: hands:b_l_index_ignore
|
||||||
100042: hands:b_l_thumb2
|
- first:
|
||||||
100044: hands:b_l_thumb3
|
1: 100014
|
||||||
100046: hands:b_l_thumb_ignore
|
second: hands:b_l_middle1
|
||||||
100048: hands:l_hand_world
|
- first:
|
||||||
100050: //RootNode
|
1: 100016
|
||||||
400000: hands:b_l_grip
|
second: hands:b_l_middle2
|
||||||
400002: hands:b_l_hand
|
- first:
|
||||||
400004: hands:b_l_hand_ignore
|
1: 100018
|
||||||
400006: hands:b_l_index1
|
second: hands:b_l_middle3
|
||||||
400008: hands:b_l_index2
|
- first:
|
||||||
400010: hands:b_l_index3
|
1: 100020
|
||||||
400012: hands:b_l_index_ignore
|
second: hands:b_l_middle_ignore
|
||||||
400014: hands:b_l_middle1
|
- first:
|
||||||
400016: hands:b_l_middle2
|
1: 100022
|
||||||
400018: hands:b_l_middle3
|
second: hands:b_l_pinky0
|
||||||
400020: hands:b_l_middle_ignore
|
- first:
|
||||||
400022: hands:b_l_pinky0
|
1: 100024
|
||||||
400024: hands:b_l_pinky1
|
second: hands:b_l_pinky1
|
||||||
400026: hands:b_l_pinky2
|
- first:
|
||||||
400028: hands:b_l_pinky3
|
1: 100026
|
||||||
400030: hands:b_l_pinky_ignore
|
second: hands:b_l_pinky2
|
||||||
400032: hands:b_l_ring1
|
- first:
|
||||||
400034: hands:b_l_ring2
|
1: 100028
|
||||||
400036: hands:b_l_ring3
|
second: hands:b_l_pinky3
|
||||||
400038: hands:b_l_ring_ignore
|
- first:
|
||||||
400040: hands:b_l_thumb1
|
1: 100030
|
||||||
400042: hands:b_l_thumb2
|
second: hands:b_l_pinky_ignore
|
||||||
400044: hands:b_l_thumb3
|
- first:
|
||||||
400046: hands:b_l_thumb_ignore
|
1: 100032
|
||||||
400048: hands:l_hand_world
|
second: hands:b_l_ring1
|
||||||
400050: //RootNode
|
- first:
|
||||||
7400000: Take 001
|
1: 100034
|
||||||
9500000: //RootNode
|
second: hands:b_l_ring2
|
||||||
|
- 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:
|
||||||
importMaterials: 1
|
materialImportMode: 1
|
||||||
materialName: 0
|
materialName: 0
|
||||||
materialSearch: 1
|
materialSearch: 1
|
||||||
materialLocation: 1
|
materialLocation: 1
|
||||||
@@ -68,6 +176,7 @@ ModelImporter:
|
|||||||
bakeSimulation: 0
|
bakeSimulation: 0
|
||||||
resampleCurves: 1
|
resampleCurves: 1
|
||||||
optimizeGameObjects: 0
|
optimizeGameObjects: 0
|
||||||
|
removeConstantScaleCurves: 0
|
||||||
motionNodeName:
|
motionNodeName:
|
||||||
rigImportErrors:
|
rigImportErrors:
|
||||||
rigImportWarnings:
|
rigImportWarnings:
|
||||||
@@ -76,6 +185,7 @@ 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
|
||||||
@@ -90,32 +200,48 @@ 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: 0
|
generateSecondaryUV: 1
|
||||||
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.000001
|
secondaryUVAreaDistortion: 15
|
||||||
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: 2
|
serializedVersion: 3
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: 0.5
|
armTwist: 0.5
|
||||||
@@ -125,14 +251,19 @@ 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,87 +1,203 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 7cb2e1480bb51ce4282f540ea3f41d4f
|
guid: 7cb2e1480bb51ce4282f540ea3f41d4f
|
||||||
timeCreated: 1437585934
|
|
||||||
licenseType: Store
|
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 18
|
serializedVersion: 22200
|
||||||
fileIDToRecycleName:
|
internalIDToNameTable:
|
||||||
100000: hands:b_l_grip
|
- first:
|
||||||
100002: hands:b_l_hand
|
1: 100000
|
||||||
100004: hands:b_l_hand_ignore
|
second: hands:b_l_grip
|
||||||
100006: hands:b_l_index1
|
- first:
|
||||||
100008: hands:b_l_index2
|
1: 100002
|
||||||
100010: hands:b_l_index3
|
second: hands:b_l_hand
|
||||||
100012: hands:b_l_index_ignore
|
- first:
|
||||||
100014: hands:b_l_middle1
|
1: 100004
|
||||||
100016: hands:b_l_middle2
|
second: hands:b_l_hand_ignore
|
||||||
100018: hands:b_l_middle3
|
- first:
|
||||||
100020: hands:b_l_middle_ignore
|
1: 100006
|
||||||
100022: hands:b_l_pinky0
|
second: hands:b_l_index1
|
||||||
100024: hands:b_l_pinky1
|
- first:
|
||||||
100026: hands:b_l_pinky2
|
1: 100008
|
||||||
100028: hands:b_l_pinky3
|
second: hands:b_l_index2
|
||||||
100030: hands:b_l_pinky_ignore
|
- first:
|
||||||
100032: hands:b_l_ring1
|
1: 100010
|
||||||
100034: hands:b_l_ring2
|
second: hands:b_l_index3
|
||||||
100036: hands:b_l_ring3
|
- first:
|
||||||
100038: hands:b_l_ring_ignore
|
1: 100012
|
||||||
100040: hands:b_l_thumb1
|
second: hands:b_l_index_ignore
|
||||||
100042: hands:b_l_thumb2
|
- first:
|
||||||
100044: hands:b_l_thumb3
|
1: 100014
|
||||||
100046: hands:b_l_thumb_ignore
|
second: hands:b_l_middle1
|
||||||
100048: hands:l_hand_world
|
- first:
|
||||||
100050: //RootNode
|
1: 100016
|
||||||
400000: hands:b_l_grip
|
second: hands:b_l_middle2
|
||||||
400002: hands:b_l_hand
|
- first:
|
||||||
400004: hands:b_l_hand_ignore
|
1: 100018
|
||||||
400006: hands:b_l_index1
|
second: hands:b_l_middle3
|
||||||
400008: hands:b_l_index2
|
- first:
|
||||||
400010: hands:b_l_index3
|
1: 100020
|
||||||
400012: hands:b_l_index_ignore
|
second: hands:b_l_middle_ignore
|
||||||
400014: hands:b_l_middle1
|
- first:
|
||||||
400016: hands:b_l_middle2
|
1: 100022
|
||||||
400018: hands:b_l_middle3
|
second: hands:b_l_pinky0
|
||||||
400020: hands:b_l_middle_ignore
|
- first:
|
||||||
400022: hands:b_l_pinky0
|
1: 100024
|
||||||
400024: hands:b_l_pinky1
|
second: hands:b_l_pinky1
|
||||||
400026: hands:b_l_pinky2
|
- first:
|
||||||
400028: hands:b_l_pinky3
|
1: 100026
|
||||||
400030: hands:b_l_pinky_ignore
|
second: hands:b_l_pinky2
|
||||||
400032: hands:b_l_ring1
|
- first:
|
||||||
400034: hands:b_l_ring2
|
1: 100028
|
||||||
400036: hands:b_l_ring3
|
second: hands:b_l_pinky3
|
||||||
400038: hands:b_l_ring_ignore
|
- first:
|
||||||
400040: hands:b_l_thumb1
|
1: 100030
|
||||||
400042: hands:b_l_thumb2
|
second: hands:b_l_pinky_ignore
|
||||||
400044: hands:b_l_thumb3
|
- first:
|
||||||
400046: hands:b_l_thumb_ignore
|
1: 100032
|
||||||
400048: hands:l_hand_world
|
second: hands:b_l_ring1
|
||||||
400050: //RootNode
|
- first:
|
||||||
7400000: l_hand_fist
|
1: 100034
|
||||||
9500000: //RootNode
|
second: hands:b_l_ring2
|
||||||
|
- 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:
|
||||||
importMaterials: 1
|
materialImportMode: 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: .5
|
animationRotationError: 0.5
|
||||||
animationPositionError: .5
|
animationPositionError: 0.5
|
||||||
animationScaleError: .5
|
animationScaleError: 0.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
|
||||||
@@ -89,6 +205,7 @@ 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
|
||||||
@@ -157,47 +274,78 @@ 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: 0
|
generateSecondaryUV: 1
|
||||||
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.000001
|
secondaryUVAreaDistortion: 15
|
||||||
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: 1
|
tangentImportMode: 4
|
||||||
|
normalCalculationMode: 0
|
||||||
|
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
|
||||||
|
blendShapeNormalImportMode: 1
|
||||||
|
normalSmoothingSource: 0
|
||||||
|
referencedClips: []
|
||||||
importAnimation: 1
|
importAnimation: 1
|
||||||
copyAvatar: 1
|
|
||||||
humanDescription:
|
humanDescription:
|
||||||
|
serializedVersion: 3
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: .5
|
armTwist: 0.5
|
||||||
foreArmTwist: .5
|
foreArmTwist: 0.5
|
||||||
upperLegTwist: .5
|
upperLegTwist: 0.5
|
||||||
legTwist: .5
|
legTwist: 0.5
|
||||||
armStretch: .0500000007
|
armStretch: 0.05
|
||||||
legStretch: .0500000007
|
legStretch: 0.05
|
||||||
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,88 +1,203 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: a91ff20f7450bf446a6bf0bfb5e932ae
|
guid: a91ff20f7450bf446a6bf0bfb5e932ae
|
||||||
timeCreated: 1484004765
|
|
||||||
licenseType: Store
|
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 19
|
serializedVersion: 22200
|
||||||
fileIDToRecycleName:
|
internalIDToNameTable:
|
||||||
100000: hands:b_l_grip
|
- first:
|
||||||
100002: hands:b_l_hand
|
1: 100000
|
||||||
100004: hands:b_l_hand_ignore
|
second: hands:b_l_grip
|
||||||
100006: hands:b_l_index1
|
- first:
|
||||||
100008: hands:b_l_index2
|
1: 100002
|
||||||
100010: hands:b_l_index3
|
second: hands:b_l_hand
|
||||||
100012: hands:b_l_index_ignore
|
- first:
|
||||||
100014: hands:b_l_middle1
|
1: 100004
|
||||||
100016: hands:b_l_middle2
|
second: hands:b_l_hand_ignore
|
||||||
100018: hands:b_l_middle3
|
- first:
|
||||||
100020: hands:b_l_middle_ignore
|
1: 100006
|
||||||
100022: hands:b_l_pinky0
|
second: hands:b_l_index1
|
||||||
100024: hands:b_l_pinky1
|
- first:
|
||||||
100026: hands:b_l_pinky2
|
1: 100008
|
||||||
100028: hands:b_l_pinky3
|
second: hands:b_l_index2
|
||||||
100030: hands:b_l_pinky_ignore
|
- first:
|
||||||
100032: hands:b_l_ring1
|
1: 100010
|
||||||
100034: hands:b_l_ring2
|
second: hands:b_l_index3
|
||||||
100036: hands:b_l_ring3
|
- first:
|
||||||
100038: hands:b_l_ring_ignore
|
1: 100012
|
||||||
100040: hands:b_l_thumb1
|
second: hands:b_l_index_ignore
|
||||||
100042: hands:b_l_thumb2
|
- first:
|
||||||
100044: hands:b_l_thumb3
|
1: 100014
|
||||||
100046: hands:b_l_thumb_ignore
|
second: hands:b_l_middle1
|
||||||
100048: hands:l_hand_world
|
- first:
|
||||||
100050: //RootNode
|
1: 100016
|
||||||
400000: hands:b_l_grip
|
second: hands:b_l_middle2
|
||||||
400002: hands:b_l_hand
|
- first:
|
||||||
400004: hands:b_l_hand_ignore
|
1: 100018
|
||||||
400006: hands:b_l_index1
|
second: hands:b_l_middle3
|
||||||
400008: hands:b_l_index2
|
- first:
|
||||||
400010: hands:b_l_index3
|
1: 100020
|
||||||
400012: hands:b_l_index_ignore
|
second: hands:b_l_middle_ignore
|
||||||
400014: hands:b_l_middle1
|
- first:
|
||||||
400016: hands:b_l_middle2
|
1: 100022
|
||||||
400018: hands:b_l_middle3
|
second: hands:b_l_pinky0
|
||||||
400020: hands:b_l_middle_ignore
|
- first:
|
||||||
400022: hands:b_l_pinky0
|
1: 100024
|
||||||
400024: hands:b_l_pinky1
|
second: hands:b_l_pinky1
|
||||||
400026: hands:b_l_pinky2
|
- first:
|
||||||
400028: hands:b_l_pinky3
|
1: 100026
|
||||||
400030: hands:b_l_pinky_ignore
|
second: hands:b_l_pinky2
|
||||||
400032: hands:b_l_ring1
|
- first:
|
||||||
400034: hands:b_l_ring2
|
1: 100028
|
||||||
400036: hands:b_l_ring3
|
second: hands:b_l_pinky3
|
||||||
400038: hands:b_l_ring_ignore
|
- first:
|
||||||
400040: hands:b_l_thumb1
|
1: 100030
|
||||||
400042: hands:b_l_thumb2
|
second: hands:b_l_pinky_ignore
|
||||||
400044: hands:b_l_thumb3
|
- first:
|
||||||
400046: hands:b_l_thumb_ignore
|
1: 100032
|
||||||
400048: hands:l_hand_world
|
second: hands:b_l_ring1
|
||||||
400050: //RootNode
|
- first:
|
||||||
7400000: l_hand_pinch_anim
|
1: 100034
|
||||||
9500000: //RootNode
|
second: hands:b_l_ring2
|
||||||
|
- 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:
|
||||||
importMaterials: 1
|
materialImportMode: 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
|
||||||
@@ -166,26 +281,48 @@ 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: 0
|
generateSecondaryUV: 1
|
||||||
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.000001
|
secondaryUVAreaDistortion: 15
|
||||||
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: 2
|
serializedVersion: 3
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: 0.5
|
armTwist: 0.5
|
||||||
@@ -195,14 +332,19 @@ 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,65 +1,173 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: b6c38558987444240b3b3950e4450b77
|
guid: b6c38558987444240b3b3950e4450b77
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 22
|
serializedVersion: 22200
|
||||||
fileIDToRecycleName:
|
internalIDToNameTable:
|
||||||
100000: hands:b_r_grip
|
- first:
|
||||||
100002: hands:b_r_hand
|
1: 100000
|
||||||
100004: hands:b_r_hand_ignore
|
second: hands:b_r_grip
|
||||||
100006: hands:b_r_index1
|
- first:
|
||||||
100008: hands:b_r_index2
|
1: 100002
|
||||||
100010: hands:b_r_index3
|
second: hands:b_r_hand
|
||||||
100012: hands:b_r_index_ignore
|
- first:
|
||||||
100014: hands:b_r_middle1
|
1: 100004
|
||||||
100016: hands:b_r_middle2
|
second: hands:b_r_hand_ignore
|
||||||
100018: hands:b_r_middle3
|
- first:
|
||||||
100020: hands:b_r_middle_ignore
|
1: 100006
|
||||||
100022: hands:b_r_pinky0
|
second: hands:b_r_index1
|
||||||
100024: hands:b_r_pinky1
|
- first:
|
||||||
100026: hands:b_r_pinky2
|
1: 100008
|
||||||
100028: hands:b_r_pinky3
|
second: hands:b_r_index2
|
||||||
100030: hands:b_r_pinky_ignore
|
- first:
|
||||||
100032: hands:b_r_ring1
|
1: 100010
|
||||||
100034: hands:b_r_ring2
|
second: hands:b_r_index3
|
||||||
100036: hands:b_r_ring3
|
- first:
|
||||||
100038: hands:b_r_ring_ignore
|
1: 100012
|
||||||
100040: hands:b_r_thumb1
|
second: hands:b_r_index_ignore
|
||||||
100042: hands:b_r_thumb2
|
- first:
|
||||||
100044: hands:b_r_thumb3
|
1: 100014
|
||||||
100046: hands:b_r_thumb_ignore
|
second: hands:b_r_middle1
|
||||||
100048: hands:r_hand_world
|
- first:
|
||||||
100050: //RootNode
|
1: 100016
|
||||||
400000: hands:b_r_grip
|
second: hands:b_r_middle2
|
||||||
400002: hands:b_r_hand
|
- first:
|
||||||
400004: hands:b_r_hand_ignore
|
1: 100018
|
||||||
400006: hands:b_r_index1
|
second: hands:b_r_middle3
|
||||||
400008: hands:b_r_index2
|
- first:
|
||||||
400010: hands:b_r_index3
|
1: 100020
|
||||||
400012: hands:b_r_index_ignore
|
second: hands:b_r_middle_ignore
|
||||||
400014: hands:b_r_middle1
|
- first:
|
||||||
400016: hands:b_r_middle2
|
1: 100022
|
||||||
400018: hands:b_r_middle3
|
second: hands:b_r_pinky0
|
||||||
400020: hands:b_r_middle_ignore
|
- first:
|
||||||
400022: hands:b_r_pinky0
|
1: 100024
|
||||||
400024: hands:b_r_pinky1
|
second: hands:b_r_pinky1
|
||||||
400026: hands:b_r_pinky2
|
- first:
|
||||||
400028: hands:b_r_pinky3
|
1: 100026
|
||||||
400030: hands:b_r_pinky_ignore
|
second: hands:b_r_pinky2
|
||||||
400032: hands:b_r_ring1
|
- first:
|
||||||
400034: hands:b_r_ring2
|
1: 100028
|
||||||
400036: hands:b_r_ring3
|
second: hands:b_r_pinky3
|
||||||
400038: hands:b_r_ring_ignore
|
- first:
|
||||||
400040: hands:b_r_thumb1
|
1: 100030
|
||||||
400042: hands:b_r_thumb2
|
second: hands:b_r_pinky_ignore
|
||||||
400044: hands:b_r_thumb3
|
- first:
|
||||||
400046: hands:b_r_thumb_ignore
|
1: 100032
|
||||||
400048: hands:r_hand_world
|
second: hands:b_r_ring1
|
||||||
400050: //RootNode
|
- first:
|
||||||
7400000: Take 001
|
1: 100034
|
||||||
9500000: //RootNode
|
second: hands:b_r_ring2
|
||||||
|
- 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:
|
||||||
importMaterials: 1
|
materialImportMode: 1
|
||||||
materialName: 0
|
materialName: 0
|
||||||
materialSearch: 1
|
materialSearch: 1
|
||||||
materialLocation: 1
|
materialLocation: 1
|
||||||
@@ -68,6 +176,7 @@ ModelImporter:
|
|||||||
bakeSimulation: 0
|
bakeSimulation: 0
|
||||||
resampleCurves: 1
|
resampleCurves: 1
|
||||||
optimizeGameObjects: 0
|
optimizeGameObjects: 0
|
||||||
|
removeConstantScaleCurves: 0
|
||||||
motionNodeName:
|
motionNodeName:
|
||||||
rigImportErrors:
|
rigImportErrors:
|
||||||
rigImportWarnings:
|
rigImportWarnings:
|
||||||
@@ -76,6 +185,7 @@ 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
|
||||||
@@ -90,32 +200,48 @@ 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: 0
|
generateSecondaryUV: 1
|
||||||
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.000001
|
secondaryUVAreaDistortion: 15
|
||||||
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: 2
|
serializedVersion: 3
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: 0.5
|
armTwist: 0.5
|
||||||
@@ -125,14 +251,19 @@ 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,87 +1,203 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 005ab0ae8aa7f74438a5fa50f7cd50e3
|
guid: 005ab0ae8aa7f74438a5fa50f7cd50e3
|
||||||
timeCreated: 1437585997
|
|
||||||
licenseType: Store
|
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 18
|
serializedVersion: 22200
|
||||||
fileIDToRecycleName:
|
internalIDToNameTable:
|
||||||
100000: hands:b_r_grip
|
- first:
|
||||||
100002: hands:b_r_hand
|
1: 100000
|
||||||
100004: hands:b_r_hand_ignore
|
second: hands:b_r_grip
|
||||||
100006: hands:b_r_index1
|
- first:
|
||||||
100008: hands:b_r_index2
|
1: 100002
|
||||||
100010: hands:b_r_index3
|
second: hands:b_r_hand
|
||||||
100012: hands:b_r_index_ignore
|
- first:
|
||||||
100014: hands:b_r_middle1
|
1: 100004
|
||||||
100016: hands:b_r_middle2
|
second: hands:b_r_hand_ignore
|
||||||
100018: hands:b_r_middle3
|
- first:
|
||||||
100020: hands:b_r_middle_ignore
|
1: 100006
|
||||||
100022: hands:b_r_pinky0
|
second: hands:b_r_index1
|
||||||
100024: hands:b_r_pinky1
|
- first:
|
||||||
100026: hands:b_r_pinky2
|
1: 100008
|
||||||
100028: hands:b_r_pinky3
|
second: hands:b_r_index2
|
||||||
100030: hands:b_r_pinky_ignore
|
- first:
|
||||||
100032: hands:b_r_ring1
|
1: 100010
|
||||||
100034: hands:b_r_ring2
|
second: hands:b_r_index3
|
||||||
100036: hands:b_r_ring3
|
- first:
|
||||||
100038: hands:b_r_ring_ignore
|
1: 100012
|
||||||
100040: hands:b_r_thumb1
|
second: hands:b_r_index_ignore
|
||||||
100042: hands:b_r_thumb2
|
- first:
|
||||||
100044: hands:b_r_thumb3
|
1: 100014
|
||||||
100046: hands:b_r_thumb_ignore
|
second: hands:b_r_middle1
|
||||||
100048: hands:r_hand_world
|
- first:
|
||||||
100050: //RootNode
|
1: 100016
|
||||||
400000: hands:b_r_grip
|
second: hands:b_r_middle2
|
||||||
400002: hands:b_r_hand
|
- first:
|
||||||
400004: hands:b_r_hand_ignore
|
1: 100018
|
||||||
400006: hands:b_r_index1
|
second: hands:b_r_middle3
|
||||||
400008: hands:b_r_index2
|
- first:
|
||||||
400010: hands:b_r_index3
|
1: 100020
|
||||||
400012: hands:b_r_index_ignore
|
second: hands:b_r_middle_ignore
|
||||||
400014: hands:b_r_middle1
|
- first:
|
||||||
400016: hands:b_r_middle2
|
1: 100022
|
||||||
400018: hands:b_r_middle3
|
second: hands:b_r_pinky0
|
||||||
400020: hands:b_r_middle_ignore
|
- first:
|
||||||
400022: hands:b_r_pinky0
|
1: 100024
|
||||||
400024: hands:b_r_pinky1
|
second: hands:b_r_pinky1
|
||||||
400026: hands:b_r_pinky2
|
- first:
|
||||||
400028: hands:b_r_pinky3
|
1: 100026
|
||||||
400030: hands:b_r_pinky_ignore
|
second: hands:b_r_pinky2
|
||||||
400032: hands:b_r_ring1
|
- first:
|
||||||
400034: hands:b_r_ring2
|
1: 100028
|
||||||
400036: hands:b_r_ring3
|
second: hands:b_r_pinky3
|
||||||
400038: hands:b_r_ring_ignore
|
- first:
|
||||||
400040: hands:b_r_thumb1
|
1: 100030
|
||||||
400042: hands:b_r_thumb2
|
second: hands:b_r_pinky_ignore
|
||||||
400044: hands:b_r_thumb3
|
- first:
|
||||||
400046: hands:b_r_thumb_ignore
|
1: 100032
|
||||||
400048: hands:r_hand_world
|
second: hands:b_r_ring1
|
||||||
400050: //RootNode
|
- first:
|
||||||
7400000: r_hand_fist
|
1: 100034
|
||||||
9500000: //RootNode
|
second: hands:b_r_ring2
|
||||||
|
- 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:
|
||||||
importMaterials: 1
|
materialImportMode: 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: .5
|
animationRotationError: 0.5
|
||||||
animationPositionError: .5
|
animationPositionError: 0.5
|
||||||
animationScaleError: .5
|
animationScaleError: 0.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
|
||||||
@@ -89,6 +205,7 @@ 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
|
||||||
@@ -157,47 +274,78 @@ 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: 0
|
generateSecondaryUV: 1
|
||||||
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.000001
|
secondaryUVAreaDistortion: 15
|
||||||
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: 1
|
tangentImportMode: 4
|
||||||
|
normalCalculationMode: 0
|
||||||
|
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
|
||||||
|
blendShapeNormalImportMode: 1
|
||||||
|
normalSmoothingSource: 0
|
||||||
|
referencedClips: []
|
||||||
importAnimation: 1
|
importAnimation: 1
|
||||||
copyAvatar: 1
|
|
||||||
humanDescription:
|
humanDescription:
|
||||||
|
serializedVersion: 3
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: .5
|
armTwist: 0.5
|
||||||
foreArmTwist: .5
|
foreArmTwist: 0.5
|
||||||
upperLegTwist: .5
|
upperLegTwist: 0.5
|
||||||
legTwist: .5
|
legTwist: 0.5
|
||||||
armStretch: .0500000007
|
armStretch: 0.05
|
||||||
legStretch: .0500000007
|
legStretch: 0.05
|
||||||
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,88 +1,203 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 165871bb4fa915847973b6955c7a670d
|
guid: 165871bb4fa915847973b6955c7a670d
|
||||||
timeCreated: 1484075312
|
|
||||||
licenseType: Store
|
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 19
|
serializedVersion: 22200
|
||||||
fileIDToRecycleName:
|
internalIDToNameTable:
|
||||||
100000: hands:b_r_grip
|
- first:
|
||||||
100002: hands:b_r_hand
|
1: 100000
|
||||||
100004: hands:b_r_hand_ignore
|
second: hands:b_r_grip
|
||||||
100006: hands:b_r_index1
|
- first:
|
||||||
100008: hands:b_r_index2
|
1: 100002
|
||||||
100010: hands:b_r_index3
|
second: hands:b_r_hand
|
||||||
100012: hands:b_r_index_ignore
|
- first:
|
||||||
100014: hands:b_r_middle1
|
1: 100004
|
||||||
100016: hands:b_r_middle2
|
second: hands:b_r_hand_ignore
|
||||||
100018: hands:b_r_middle3
|
- first:
|
||||||
100020: hands:b_r_middle_ignore
|
1: 100006
|
||||||
100022: hands:b_r_pinky0
|
second: hands:b_r_index1
|
||||||
100024: hands:b_r_pinky1
|
- first:
|
||||||
100026: hands:b_r_pinky2
|
1: 100008
|
||||||
100028: hands:b_r_pinky3
|
second: hands:b_r_index2
|
||||||
100030: hands:b_r_pinky_ignore
|
- first:
|
||||||
100032: hands:b_r_ring1
|
1: 100010
|
||||||
100034: hands:b_r_ring2
|
second: hands:b_r_index3
|
||||||
100036: hands:b_r_ring3
|
- first:
|
||||||
100038: hands:b_r_ring_ignore
|
1: 100012
|
||||||
100040: hands:b_r_thumb1
|
second: hands:b_r_index_ignore
|
||||||
100042: hands:b_r_thumb2
|
- first:
|
||||||
100044: hands:b_r_thumb3
|
1: 100014
|
||||||
100046: hands:b_r_thumb_ignore
|
second: hands:b_r_middle1
|
||||||
100048: hands:r_hand_world
|
- first:
|
||||||
100050: //RootNode
|
1: 100016
|
||||||
400000: hands:b_r_grip
|
second: hands:b_r_middle2
|
||||||
400002: hands:b_r_hand
|
- first:
|
||||||
400004: hands:b_r_hand_ignore
|
1: 100018
|
||||||
400006: hands:b_r_index1
|
second: hands:b_r_middle3
|
||||||
400008: hands:b_r_index2
|
- first:
|
||||||
400010: hands:b_r_index3
|
1: 100020
|
||||||
400012: hands:b_r_index_ignore
|
second: hands:b_r_middle_ignore
|
||||||
400014: hands:b_r_middle1
|
- first:
|
||||||
400016: hands:b_r_middle2
|
1: 100022
|
||||||
400018: hands:b_r_middle3
|
second: hands:b_r_pinky0
|
||||||
400020: hands:b_r_middle_ignore
|
- first:
|
||||||
400022: hands:b_r_pinky0
|
1: 100024
|
||||||
400024: hands:b_r_pinky1
|
second: hands:b_r_pinky1
|
||||||
400026: hands:b_r_pinky2
|
- first:
|
||||||
400028: hands:b_r_pinky3
|
1: 100026
|
||||||
400030: hands:b_r_pinky_ignore
|
second: hands:b_r_pinky2
|
||||||
400032: hands:b_r_ring1
|
- first:
|
||||||
400034: hands:b_r_ring2
|
1: 100028
|
||||||
400036: hands:b_r_ring3
|
second: hands:b_r_pinky3
|
||||||
400038: hands:b_r_ring_ignore
|
- first:
|
||||||
400040: hands:b_r_thumb1
|
1: 100030
|
||||||
400042: hands:b_r_thumb2
|
second: hands:b_r_pinky_ignore
|
||||||
400044: hands:b_r_thumb3
|
- first:
|
||||||
400046: hands:b_r_thumb_ignore
|
1: 100032
|
||||||
400048: hands:r_hand_world
|
second: hands:b_r_ring1
|
||||||
400050: //RootNode
|
- first:
|
||||||
7400000: r_hand_pinch_anim
|
1: 100034
|
||||||
9500000: //RootNode
|
second: hands:b_r_ring2
|
||||||
|
- 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:
|
||||||
importMaterials: 1
|
materialImportMode: 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
|
||||||
@@ -166,26 +281,48 @@ 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: 0
|
generateSecondaryUV: 1
|
||||||
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.000001
|
secondaryUVAreaDistortion: 15
|
||||||
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: 2
|
serializedVersion: 3
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: 0.5
|
armTwist: 0.5
|
||||||
@@ -195,14 +332,19 @@ 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,163 +0,0 @@
|
|||||||
%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: []
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: e6fdd4b9480500e4ea28cad030e5ddc2
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,18 +1,5 @@
|
|||||||
%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
|
||||||
@@ -21,28 +8,22 @@ 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: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Parent: {fileID: 0}
|
m_Parent: {fileID: 0}
|
||||||
m_ModifiedSerializedProperties: 0
|
m_ModifiedSerializedProperties: 0
|
||||||
m_ValidKeywords:
|
m_ValidKeywords:
|
||||||
- _RECEIVE_SHADOWS_OFF
|
- _EMISSION
|
||||||
- _SPECULARHIGHLIGHTS_OFF
|
|
||||||
m_InvalidKeywords: []
|
m_InvalidKeywords: []
|
||||||
m_LightmapFlags: 6
|
m_LightmapFlags: 1
|
||||||
m_EnableInstancingVariants: 0
|
m_EnableInstancingVariants: 0
|
||||||
m_DoubleSidedGI: 0
|
m_DoubleSidedGI: 0
|
||||||
m_CustomRenderQueue: 2000
|
m_CustomRenderQueue: -1
|
||||||
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}
|
||||||
@@ -87,44 +68,17 @@ 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
|
||||||
@@ -133,28 +87,19 @@ 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
|
||||||
- _SpecSource: 0
|
- _SpecularHighlights: 1
|
||||||
- _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:
|
||||||
- _BaseColor: {r: 0.6698113, g: 0.6698113, b: 0.6698113, a: 0.75}
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
- _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: 1, g: 1, b: 1, a: 1}
|
- _SpecColor: {r: 0.50735295, g: 0.50735295, b: 0.50735295, 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,71 +1,197 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: ca20b3907ff1c794cb89c1ad2cce8282
|
guid: ca20b3907ff1c794cb89c1ad2cce8282
|
||||||
ModelImporter:
|
ModelImporter:
|
||||||
serializedVersion: 22
|
serializedVersion: 22200
|
||||||
fileIDToRecycleName:
|
internalIDToNameTable:
|
||||||
100000: hands:b_l_grip
|
- first:
|
||||||
100002: hands:b_l_hand
|
1: 100000
|
||||||
100004: hands:b_l_hand_ignore
|
second: hands:b_l_grip
|
||||||
100006: hands:b_l_index1
|
- first:
|
||||||
100008: hands:b_l_index2
|
1: 100002
|
||||||
100010: hands:b_l_index3
|
second: hands:b_l_hand
|
||||||
100012: hands:b_l_index_ignore
|
- first:
|
||||||
100014: hands:b_l_middle1
|
1: 100004
|
||||||
100016: hands:b_l_middle2
|
second: hands:b_l_hand_ignore
|
||||||
100018: hands:b_l_middle3
|
- first:
|
||||||
100020: hands:b_l_middle_ignore
|
1: 100006
|
||||||
100022: hands:b_l_pinky0
|
second: hands:b_l_index1
|
||||||
100024: hands:b_l_pinky1
|
- first:
|
||||||
100026: hands:b_l_pinky2
|
1: 100008
|
||||||
100028: hands:b_l_pinky3
|
second: hands:b_l_index2
|
||||||
100030: hands:b_l_pinky_ignore
|
- first:
|
||||||
100032: hands:b_l_ring1
|
1: 100010
|
||||||
100034: hands:b_l_ring2
|
second: hands:b_l_index3
|
||||||
100036: hands:b_l_ring3
|
- first:
|
||||||
100038: hands:b_l_ring_ignore
|
1: 100012
|
||||||
100040: hands:b_l_thumb1
|
second: hands:b_l_index_ignore
|
||||||
100042: hands:b_l_thumb2
|
- first:
|
||||||
100044: hands:b_l_thumb3
|
1: 100014
|
||||||
100046: hands:b_l_thumb_ignore
|
second: hands:b_l_middle1
|
||||||
100048: hands:hands_geom
|
- first:
|
||||||
100050: hands:l_hand_world
|
1: 100016
|
||||||
100052: hands:Lhand
|
second: hands:b_l_middle2
|
||||||
100054: //RootNode
|
- first:
|
||||||
400000: hands:b_l_grip
|
1: 100018
|
||||||
400002: hands:b_l_hand
|
second: hands:b_l_middle3
|
||||||
400004: hands:b_l_hand_ignore
|
- first:
|
||||||
400006: hands:b_l_index1
|
1: 100020
|
||||||
400008: hands:b_l_index2
|
second: hands:b_l_middle_ignore
|
||||||
400010: hands:b_l_index3
|
- first:
|
||||||
400012: hands:b_l_index_ignore
|
1: 100022
|
||||||
400014: hands:b_l_middle1
|
second: hands:b_l_pinky0
|
||||||
400016: hands:b_l_middle2
|
- first:
|
||||||
400018: hands:b_l_middle3
|
1: 100024
|
||||||
400020: hands:b_l_middle_ignore
|
second: hands:b_l_pinky1
|
||||||
400022: hands:b_l_pinky0
|
- first:
|
||||||
400024: hands:b_l_pinky1
|
1: 100026
|
||||||
400026: hands:b_l_pinky2
|
second: hands:b_l_pinky2
|
||||||
400028: hands:b_l_pinky3
|
- first:
|
||||||
400030: hands:b_l_pinky_ignore
|
1: 100028
|
||||||
400032: hands:b_l_ring1
|
second: hands:b_l_pinky3
|
||||||
400034: hands:b_l_ring2
|
- first:
|
||||||
400036: hands:b_l_ring3
|
1: 100030
|
||||||
400038: hands:b_l_ring_ignore
|
second: hands:b_l_pinky_ignore
|
||||||
400040: hands:b_l_thumb1
|
- first:
|
||||||
400042: hands:b_l_thumb2
|
1: 100032
|
||||||
400044: hands:b_l_thumb3
|
second: hands:b_l_ring1
|
||||||
400046: hands:b_l_thumb_ignore
|
- first:
|
||||||
400048: hands:hands_geom
|
1: 100034
|
||||||
400050: hands:l_hand_world
|
second: hands:b_l_ring2
|
||||||
400052: hands:Lhand
|
- first:
|
||||||
400054: //RootNode
|
1: 100036
|
||||||
2100000: default3
|
second: hands:b_l_ring3
|
||||||
2100002: unnamed1
|
- first:
|
||||||
4300000: hands:Lhand
|
1: 100038
|
||||||
7400000: Take 001
|
second: hands:b_l_ring_ignore
|
||||||
7400002: l_hand_skeletal_lowres
|
- first:
|
||||||
9500000: //RootNode
|
1: 100040
|
||||||
13700000: hands:Lhand
|
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: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
|
||||||
@@ -73,7 +199,7 @@ ModelImporter:
|
|||||||
name: unnamed1
|
name: unnamed1
|
||||||
second: {fileID: 2100000, guid: 3637b758ff163493f8bb8b6d7e96d7ae, type: 2}
|
second: {fileID: 2100000, guid: 3637b758ff163493f8bb8b6d7e96d7ae, type: 2}
|
||||||
materials:
|
materials:
|
||||||
importMaterials: 1
|
materialImportMode: 1
|
||||||
materialName: 0
|
materialName: 0
|
||||||
materialSearch: 1
|
materialSearch: 1
|
||||||
materialLocation: 1
|
materialLocation: 1
|
||||||
@@ -82,6 +208,7 @@ ModelImporter:
|
|||||||
bakeSimulation: 0
|
bakeSimulation: 0
|
||||||
resampleCurves: 1
|
resampleCurves: 1
|
||||||
optimizeGameObjects: 0
|
optimizeGameObjects: 0
|
||||||
|
removeConstantScaleCurves: 0
|
||||||
motionNodeName:
|
motionNodeName:
|
||||||
rigImportErrors:
|
rigImportErrors:
|
||||||
rigImportWarnings:
|
rigImportWarnings:
|
||||||
@@ -90,6 +217,7 @@ 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
|
||||||
@@ -104,32 +232,48 @@ 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: 0
|
generateSecondaryUV: 1
|
||||||
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.000001
|
secondaryUVAreaDistortion: 15
|
||||||
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: 2
|
serializedVersion: 3
|
||||||
human: []
|
human: []
|
||||||
skeleton: []
|
skeleton: []
|
||||||
armTwist: 0.5
|
armTwist: 0.5
|
||||||
@@ -139,14 +283,19 @@ 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:
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user