본문 바로가기
IT Tip/유니티 강좌

[유니티강좌] 클릭한 오브젝트 색깔 변경하기

by 연꽃연못 2020. 11. 22.
반응형

간단한 게임을 만들고 있는데 ... 그게 진행이 잘 안되서 머리가 잘 안돌아요.. 온통 그거 생각뿐인데 맘처럼 잘 안되네요.

아무리 생각해도 게임 돌리는 생각은 커녕 통닭 생각이 자꾸 나는걸 보니 .. 슬슬 통닭부터 채워넣어야 돌아갈까 싶어요.. 하는일에 비해 정말 많은 음식을 요하네요. ㅋㅋ 여튼 오늘은 저번시간에 이어서 클릭한 오브젝트의 색깔을 변경하는것을 해보겠습니다~ ㅋㅋ

저번에 한거에 비하면 정말 간단해요. 저번 스크립트 그대로 변경해줄거에요. 

 

클릭한 오브젝트 지정 색상으로 변경하기

 

 

화면에 보면 빨간 오브젝트를 클릭하면 빨간색으로 짜잔~하고 바뀌는 거에요. 물론 다른 오브젝트를 클릭해도 변경되욤.

 

일단 저번시간에 만든 유니티파일을 불러와서 사용할거니 아래 링크를 참조해 주세요. 

클릭으로 제어할 거라서 그냥 클릭으로만 하기에는 좀 서운하니 꼭 이전 강좌를 하신 후에 하길 추천드려요. 

 

2020/11/21 - [유니티 강좌] 오브젝트 취득하기(선택하기)

 

[유니티 강좌] 오브젝트 취득하기(선택하기)

마우스로 클릭해서 오브젝트 정보를 취득하는 방법이에요. 마우스 클릭만 줄 경우에는 화면에 뭐든 마우스가 클릭되기만 하면 실행하니 맞춤이 될수가 없어요. ^^ 클릭한 그 오브젝트의 정보를

the-pond.tistory.com

 

다시 돌아와서 ... 스크립트만 살짝 수정해 주면 되요. 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GetObject : MonoBehaviour
{
    public Camera getCamera;
    private RaycastHit hit;

    void Start()
    {

    }

    void Update()
    {
        if(Input.GetMouseButtonDown(0))
        {
            Ray ray = getCamera.ScreenPointToRay(Input.mousePosition);

            if(Physics.Raycast(ray, out hit))
            {
                hit.collider.gameObject.GetComponent<Renderer>().material.color = Color.red;
            }
        }
    }
}

 

제일 밑에 부분의 소스중 ...

 

<변경전>

 

       string objectName = hit.collider.gameObject.name;
       Debug.Log(objectName);

 

<변경후>

 

hit.collider.gameObject.GetComponent<Renderer>().material.color = Color.red;

 

이렇게 변경하시는 거에요. 저번에는 오브젝트를 선택하고 콘솔에 띄워주라는 거였는데 이번에는 필요없으니 지우고 색상을 빨간색으로 변경하는 스크립트만 추가로 써주시면 되요. 

 

색상지정은 Color.red 이렇게 단순하게 지정하는 것도 있고 인스턴스를 생성해서 new Color(218, 0, 15); 이렇게 하는 방법도 있어요. 필요에 따라서 하시면 되요. 아마 직접 사용할때는 단순한 빨간 파란 이런식이 아닌 정밀한(?) 색지정 방식을 사용할때가 많을거 같아요. 

 

여기에 좀더 살을 붙이자면 색상을 랜덤으로 지정할 수 있어요. 

 

클릭한 오브젝트 랜덤 색상으로 변경하기

 

 

위 이미지를 보시면 각 오브젝트별로 색상이 다르게 나타나는게 확인이 되실거에요. 

스크립트도 간단해요 ^^

 

hit.collider.gameObject.GetComponent<Renderer>().material.color = new Color(Random.value, Random.value, Random.value, 1.0f);

 

new Color(218, 0, 15); 

new Color(Random.valueRandom.valueRandom.value1.0f);

 

실행시키면 랜덤수치를 줘서 클릭할때마다 다른 색상으로 변하는것을 확인하실수 있을 거에요. 

 

 

 

반응형

댓글