2021년 4학년 1학기 기업연계프로젝트2
컴퓨터소프트웨어공학과 <원광투어팀>
팀장 : 송유진
팀원 : 김나영, 이경희, 한유진
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//======= Copyright (c) Valve Corporation, All rights reserved. ===============
using UnityEngine;using System.Collections;
namespace Valve.VR.InteractionSystem.Sample{ public class TargetHitEffect : MonoBehaviour { public Collider targetCollider;
public GameObject spawnObjectOnCollision;
public bool colorSpawnedObject = true;
public bool destroyOnTargetCollision = true;
private void OnCollisionEnter(Collision collision) { if (collision.collider == targetCollider) { ContactPoint contact = collision.contacts[0]; RaycastHit hit;
float backTrackLength = 1f; Ray ray = new Ray(contact.point - (-contact.normal * backTrackLength), -contact.normal); if (collision.collider.Raycast(ray, out hit, 2)) { if (colorSpawnedObject) { Renderer renderer = collision.gameObject.GetComponent<Renderer>(); Texture2D tex = (Texture2D)renderer.material.mainTexture; Color color = tex.GetPixelBilinear(hit.textureCoord.x, hit.textureCoord.y);
if (color.r > 0.7f && color.g > 0.7f && color.b < 0.7f) color = Color.yellow; else if (Mathf.Max(color.r, color.g, color.b) == color.r) color = Color.red; else if (Mathf.Max(color.r, color.g, color.b) == color.g) color = Color.green; else color = Color.yellow;
color *= 15f;
GameObject spawned = GameObject.Instantiate(spawnObjectOnCollision); spawned.transform.position = contact.point; spawned.transform.forward = ray.direction;
Renderer[] spawnedRenderers = spawned.GetComponentsInChildren<Renderer>(); for (int rendererIndex = 0; rendererIndex < spawnedRenderers.Length; rendererIndex++) { Renderer spawnedRenderer = spawnedRenderers[rendererIndex]; spawnedRenderer.material.color = color; if (spawnedRenderer.material.HasProperty("_EmissionColor")) { spawnedRenderer.material.SetColor("_EmissionColor", color); } } } } Debug.DrawRay(ray.origin, ray.direction, Color.cyan, 5, true);
if (destroyOnTargetCollision) Destroy(this.gameObject); } } }}
|