Unity 초보자가 서랍 개폐 액션을 만드는 그 1
소개
iTween이라는 편리한 자산이 있습니다.
지금의 나에서는 잘 다룰 수 있을 것 같지 않기 때문에,
사경한 스크립트를 포함한 작성 절차의 과제와, 가능하면 구조의 이해를 깊게하고 싶기 때문에
공부 메모로 남을 것 같습니다.
사용한 자산
1. 서랍
h tps : // 어서 ts 잡아라. 글쎄, ty. 코 m / Pac 가게 s / 3d / p 여 ps / 후 r에 얽힌 / 치 st - 오 fd 라우 rs - 58835
2.FPS 컨트롤러
h tps : // 어서 ts 취해. 글쎄, ty. 코 m / Pac 게이 s / 에센 치아 ls / Ase t-Packs / s 단지 rd-ase ts-fu r-u ty-2017-3-32351v
iTween이란?
책이나 이쪽의 기사를 읽어 쫓아 알았습니다.
스크립트로 객체를 움직이는 애니메이션을 만들고 싶을 때
사용하는 매우 인기있는 자산, 그것은 iTween입니다.
htps : // 이 m / 웬 b_by_ 쵸오 _ c / ms / c 68726 158cb2166 5
만든 것
동작이 너무 무거웠습니다.
나노 예쁘게 찍는 난이도가 높았습니다. 실제 서랍의 움직임은 매우 부드럽습니다.
이번 녹화는 이쪽의 패키지를 빌렸습니다.
htps : // 기주 b. 이 m/f-s 빠세/F 우니 타이 파카
※녹화 패키지 도입의 참고 순서
htps //w w. f-sp. 코m/엔트리/2016/09/06/032801
스크립트 추가
먼저 가져온 서랍 자산의 파트에 "Drawer1"이 있으므로 여기에 새 스크립트를 추가하고
E키 누르기로 개폐하는 처리를 작성해 갑니다.
InteractiveObject.csusing System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InteractiveObject : MonoBehaviour
{
// Vector3型 引き出しが開いた時(openPositon)と閉じたとき(closePosition)の座標位置をインスペクタ表示、数値入力で設定
[SerializeField] private Vector3 openPositon, closedPosition;
// Float型 引き出しの開閉スピードをインスペクタ表示、数値入力で設定
[SerializeField] private float animationTime;
/* ブーリアン型 開いているか閉じているかを真偽の値で調べている、「isOpen」
(これがないとEキーで開いたとき、引き出しが閉まらなくなる)
ブール値はデフォルトの状態でfalseにする*/
[SerializeField] private bool isOpen = false;
// God_P.234 ハッシュテーブル:キーと値の組み合わせの情報で、
// キーにより値を出し入れすることができる連想配列と呼ばれる配列の一種のこと
// (これがないと引き出しを開けたとき空間に飛び出たままになった)
private Hashtable iTweenArgs;
void Start(){
/* P.234 ハッシュテーブル作成_渡す引数(arguments)は2個ペア
Property NameとTypeをカンマ区切りで追加する*/
iTweenArgs = iTween.Hash();
// GameObjectがアニメーション化する空間内のポイント。
iTweenArgs.Add("position", openPositon);
// アニメーションが完了するまでの秒数
iTweenArgs.Add("time", animationTime);
// 「islocal」ワールド空間でアニメ化するか、親(引き出し)を基準にしてアニメ化するか。
// (デフォルト値はfalseでtrueにすることで親オブジェクトを基準としている)
iTweenArgs.Add("islocal", true);
}
void Update(){
// Eキーが押下されたら
if (Input.GetKeyDown(KeyCode.E)){
// (isOpenの値が開いているか閉じているかの状態を保持している)
if (isOpen){
// 引き出しが開いていたら閉じる
iTweenArgs["position"] = closedPosition;
}else{
// 引き出しが閉じていたら開く
iTweenArgs["position"] = openPositon;
}
// (真偽を交互に置き換えする、ここにこれがないとEボタン連打したときに引き出しの開け閉めがうまく動作しなかった)
isOpen = !isOpen;
// インスペクタで設定した座標位置にアニメーション移動(引き出し開閉)
iTween.MoveTo(gameObject, iTweenArgs);
}
}
}
서랍이 열린 상태의 좌표 위치를 얻기 위해
장면 화면에서 이런 식으로 움직입니다.
인스펙터 내에 서랍의 Position 정보가 나오므로
작성한 스크립트의 서랍 개폐시의 좌표는 마찬가지로 인스펙터내에 아래 그림과 같이 설정합니다.
캡처를 잊어 버렸지 만 서랍의 개폐 속도는
Animation Time의 수치로 조정 가능합니다.
좋아하는 개폐 스피드로 조정합시다, 1.5가 딱 좋은 스피드가 되는 것 같습니다.
그리고 게임 화면을 시작하고 E 키를 누릅니다.
이것은 아직 불충분
지금의 상태라면 서랍 손잡이를 만지지 않고 서랍을 열고 닫을 수 있습니다.
이것은 이것으로 초능력자 같고 멋지기 때문일지도 모릅니다만,
다음은 Raycast라는 레이저 모양의 객체를 사용하여
손잡이에 닿으면 서랍을 개폐할 수 있도록 하는 녀석을 진행해 나가고 싶습니다.
이번에 참고했습니다.
・Unity에서 신이 되는 책. 히로 테츠오
htps //w w. 아마존. 이. jp / dp / 4274069222 / re f = cm_sw_r_tw_dp_u_x_L7c 도 b6V ↑ T
・iTween 공식 사이트 「DOCUMENTATION」
h tp // w w.ぇlp ぁ세멘 t. 코m/이토페엔/도쿠멘들 온. php
· Unity 5 Tutorial Tuesdays: Doors, Drawers and Treasure Chests Part 1
htps //w w. 요츠베. 이 m/와 tch? v=아 5W㎃M 3아 Pk&t=780s
Reference
이 문제에 관하여(Unity 초보자가 서랍 개폐 액션을 만드는 그 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/okapy0922/items/7f2de09d0f2d8f4c1c60
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1. 서랍
h tps : // 어서 ts 잡아라. 글쎄, ty. 코 m / Pac 가게 s / 3d / p 여 ps / 후 r에 얽힌 / 치 st - 오 fd 라우 rs - 58835
2.FPS 컨트롤러
h tps : // 어서 ts 취해. 글쎄, ty. 코 m / Pac 게이 s / 에센 치아 ls / Ase t-Packs / s 단지 rd-ase ts-fu r-u ty-2017-3-32351v
iTween이란?
책이나 이쪽의 기사를 읽어 쫓아 알았습니다.
스크립트로 객체를 움직이는 애니메이션을 만들고 싶을 때
사용하는 매우 인기있는 자산, 그것은 iTween입니다.
htps : // 이 m / 웬 b_by_ 쵸오 _ c / ms / c 68726 158cb2166 5
만든 것
동작이 너무 무거웠습니다.
나노 예쁘게 찍는 난이도가 높았습니다. 실제 서랍의 움직임은 매우 부드럽습니다.
이번 녹화는 이쪽의 패키지를 빌렸습니다.
htps : // 기주 b. 이 m/f-s 빠세/F 우니 타이 파카
※녹화 패키지 도입의 참고 순서
htps //w w. f-sp. 코m/엔트리/2016/09/06/032801
스크립트 추가
먼저 가져온 서랍 자산의 파트에 "Drawer1"이 있으므로 여기에 새 스크립트를 추가하고
E키 누르기로 개폐하는 처리를 작성해 갑니다.
InteractiveObject.csusing System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InteractiveObject : MonoBehaviour
{
// Vector3型 引き出しが開いた時(openPositon)と閉じたとき(closePosition)の座標位置をインスペクタ表示、数値入力で設定
[SerializeField] private Vector3 openPositon, closedPosition;
// Float型 引き出しの開閉スピードをインスペクタ表示、数値入力で設定
[SerializeField] private float animationTime;
/* ブーリアン型 開いているか閉じているかを真偽の値で調べている、「isOpen」
(これがないとEキーで開いたとき、引き出しが閉まらなくなる)
ブール値はデフォルトの状態でfalseにする*/
[SerializeField] private bool isOpen = false;
// God_P.234 ハッシュテーブル:キーと値の組み合わせの情報で、
// キーにより値を出し入れすることができる連想配列と呼ばれる配列の一種のこと
// (これがないと引き出しを開けたとき空間に飛び出たままになった)
private Hashtable iTweenArgs;
void Start(){
/* P.234 ハッシュテーブル作成_渡す引数(arguments)は2個ペア
Property NameとTypeをカンマ区切りで追加する*/
iTweenArgs = iTween.Hash();
// GameObjectがアニメーション化する空間内のポイント。
iTweenArgs.Add("position", openPositon);
// アニメーションが完了するまでの秒数
iTweenArgs.Add("time", animationTime);
// 「islocal」ワールド空間でアニメ化するか、親(引き出し)を基準にしてアニメ化するか。
// (デフォルト値はfalseでtrueにすることで親オブジェクトを基準としている)
iTweenArgs.Add("islocal", true);
}
void Update(){
// Eキーが押下されたら
if (Input.GetKeyDown(KeyCode.E)){
// (isOpenの値が開いているか閉じているかの状態を保持している)
if (isOpen){
// 引き出しが開いていたら閉じる
iTweenArgs["position"] = closedPosition;
}else{
// 引き出しが閉じていたら開く
iTweenArgs["position"] = openPositon;
}
// (真偽を交互に置き換えする、ここにこれがないとEボタン連打したときに引き出しの開け閉めがうまく動作しなかった)
isOpen = !isOpen;
// インスペクタで設定した座標位置にアニメーション移動(引き出し開閉)
iTween.MoveTo(gameObject, iTweenArgs);
}
}
}
서랍이 열린 상태의 좌표 위치를 얻기 위해
장면 화면에서 이런 식으로 움직입니다.
인스펙터 내에 서랍의 Position 정보가 나오므로
작성한 스크립트의 서랍 개폐시의 좌표는 마찬가지로 인스펙터내에 아래 그림과 같이 설정합니다.
캡처를 잊어 버렸지 만 서랍의 개폐 속도는
Animation Time의 수치로 조정 가능합니다.
좋아하는 개폐 스피드로 조정합시다, 1.5가 딱 좋은 스피드가 되는 것 같습니다.
그리고 게임 화면을 시작하고 E 키를 누릅니다.
이것은 아직 불충분
지금의 상태라면 서랍 손잡이를 만지지 않고 서랍을 열고 닫을 수 있습니다.
이것은 이것으로 초능력자 같고 멋지기 때문일지도 모릅니다만,
다음은 Raycast라는 레이저 모양의 객체를 사용하여
손잡이에 닿으면 서랍을 개폐할 수 있도록 하는 녀석을 진행해 나가고 싶습니다.
이번에 참고했습니다.
・Unity에서 신이 되는 책. 히로 테츠오
htps //w w. 아마존. 이. jp / dp / 4274069222 / re f = cm_sw_r_tw_dp_u_x_L7c 도 b6V ↑ T
・iTween 공식 사이트 「DOCUMENTATION」
h tp // w w.ぇlp ぁ세멘 t. 코m/이토페엔/도쿠멘들 온. php
· Unity 5 Tutorial Tuesdays: Doors, Drawers and Treasure Chests Part 1
htps //w w. 요츠베. 이 m/와 tch? v=아 5W㎃M 3아 Pk&t=780s
Reference
이 문제에 관하여(Unity 초보자가 서랍 개폐 액션을 만드는 그 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/okapy0922/items/7f2de09d0f2d8f4c1c60
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
동작이 너무 무거웠습니다.
나노 예쁘게 찍는 난이도가 높았습니다. 실제 서랍의 움직임은 매우 부드럽습니다.
이번 녹화는 이쪽의 패키지를 빌렸습니다.
htps : // 기주 b. 이 m/f-s 빠세/F 우니 타이 파카
※녹화 패키지 도입의 참고 순서
htps //w w. f-sp. 코m/엔트리/2016/09/06/032801
스크립트 추가
먼저 가져온 서랍 자산의 파트에 "Drawer1"이 있으므로 여기에 새 스크립트를 추가하고
E키 누르기로 개폐하는 처리를 작성해 갑니다.
InteractiveObject.csusing System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InteractiveObject : MonoBehaviour
{
// Vector3型 引き出しが開いた時(openPositon)と閉じたとき(closePosition)の座標位置をインスペクタ表示、数値入力で設定
[SerializeField] private Vector3 openPositon, closedPosition;
// Float型 引き出しの開閉スピードをインスペクタ表示、数値入力で設定
[SerializeField] private float animationTime;
/* ブーリアン型 開いているか閉じているかを真偽の値で調べている、「isOpen」
(これがないとEキーで開いたとき、引き出しが閉まらなくなる)
ブール値はデフォルトの状態でfalseにする*/
[SerializeField] private bool isOpen = false;
// God_P.234 ハッシュテーブル:キーと値の組み合わせの情報で、
// キーにより値を出し入れすることができる連想配列と呼ばれる配列の一種のこと
// (これがないと引き出しを開けたとき空間に飛び出たままになった)
private Hashtable iTweenArgs;
void Start(){
/* P.234 ハッシュテーブル作成_渡す引数(arguments)は2個ペア
Property NameとTypeをカンマ区切りで追加する*/
iTweenArgs = iTween.Hash();
// GameObjectがアニメーション化する空間内のポイント。
iTweenArgs.Add("position", openPositon);
// アニメーションが完了するまでの秒数
iTweenArgs.Add("time", animationTime);
// 「islocal」ワールド空間でアニメ化するか、親(引き出し)を基準にしてアニメ化するか。
// (デフォルト値はfalseでtrueにすることで親オブジェクトを基準としている)
iTweenArgs.Add("islocal", true);
}
void Update(){
// Eキーが押下されたら
if (Input.GetKeyDown(KeyCode.E)){
// (isOpenの値が開いているか閉じているかの状態を保持している)
if (isOpen){
// 引き出しが開いていたら閉じる
iTweenArgs["position"] = closedPosition;
}else{
// 引き出しが閉じていたら開く
iTweenArgs["position"] = openPositon;
}
// (真偽を交互に置き換えする、ここにこれがないとEボタン連打したときに引き出しの開け閉めがうまく動作しなかった)
isOpen = !isOpen;
// インスペクタで設定した座標位置にアニメーション移動(引き出し開閉)
iTween.MoveTo(gameObject, iTweenArgs);
}
}
}
서랍이 열린 상태의 좌표 위치를 얻기 위해
장면 화면에서 이런 식으로 움직입니다.
인스펙터 내에 서랍의 Position 정보가 나오므로
작성한 스크립트의 서랍 개폐시의 좌표는 마찬가지로 인스펙터내에 아래 그림과 같이 설정합니다.
캡처를 잊어 버렸지 만 서랍의 개폐 속도는
Animation Time의 수치로 조정 가능합니다.
좋아하는 개폐 스피드로 조정합시다, 1.5가 딱 좋은 스피드가 되는 것 같습니다.
그리고 게임 화면을 시작하고 E 키를 누릅니다.
이것은 아직 불충분
지금의 상태라면 서랍 손잡이를 만지지 않고 서랍을 열고 닫을 수 있습니다.
이것은 이것으로 초능력자 같고 멋지기 때문일지도 모릅니다만,
다음은 Raycast라는 레이저 모양의 객체를 사용하여
손잡이에 닿으면 서랍을 개폐할 수 있도록 하는 녀석을 진행해 나가고 싶습니다.
이번에 참고했습니다.
・Unity에서 신이 되는 책. 히로 테츠오
htps //w w. 아마존. 이. jp / dp / 4274069222 / re f = cm_sw_r_tw_dp_u_x_L7c 도 b6V ↑ T
・iTween 공식 사이트 「DOCUMENTATION」
h tp // w w.ぇlp ぁ세멘 t. 코m/이토페엔/도쿠멘들 온. php
· Unity 5 Tutorial Tuesdays: Doors, Drawers and Treasure Chests Part 1
htps //w w. 요츠베. 이 m/와 tch? v=아 5W㎃M 3아 Pk&t=780s
Reference
이 문제에 관하여(Unity 초보자가 서랍 개폐 액션을 만드는 그 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/okapy0922/items/7f2de09d0f2d8f4c1c60
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InteractiveObject : MonoBehaviour
{
// Vector3型 引き出しが開いた時(openPositon)と閉じたとき(closePosition)の座標位置をインスペクタ表示、数値入力で設定
[SerializeField] private Vector3 openPositon, closedPosition;
// Float型 引き出しの開閉スピードをインスペクタ表示、数値入力で設定
[SerializeField] private float animationTime;
/* ブーリアン型 開いているか閉じているかを真偽の値で調べている、「isOpen」
(これがないとEキーで開いたとき、引き出しが閉まらなくなる)
ブール値はデフォルトの状態でfalseにする*/
[SerializeField] private bool isOpen = false;
// God_P.234 ハッシュテーブル:キーと値の組み合わせの情報で、
// キーにより値を出し入れすることができる連想配列と呼ばれる配列の一種のこと
// (これがないと引き出しを開けたとき空間に飛び出たままになった)
private Hashtable iTweenArgs;
void Start(){
/* P.234 ハッシュテーブル作成_渡す引数(arguments)は2個ペア
Property NameとTypeをカンマ区切りで追加する*/
iTweenArgs = iTween.Hash();
// GameObjectがアニメーション化する空間内のポイント。
iTweenArgs.Add("position", openPositon);
// アニメーションが完了するまでの秒数
iTweenArgs.Add("time", animationTime);
// 「islocal」ワールド空間でアニメ化するか、親(引き出し)を基準にしてアニメ化するか。
// (デフォルト値はfalseでtrueにすることで親オブジェクトを基準としている)
iTweenArgs.Add("islocal", true);
}
void Update(){
// Eキーが押下されたら
if (Input.GetKeyDown(KeyCode.E)){
// (isOpenの値が開いているか閉じているかの状態を保持している)
if (isOpen){
// 引き出しが開いていたら閉じる
iTweenArgs["position"] = closedPosition;
}else{
// 引き出しが閉じていたら開く
iTweenArgs["position"] = openPositon;
}
// (真偽を交互に置き換えする、ここにこれがないとEボタン連打したときに引き出しの開け閉めがうまく動作しなかった)
isOpen = !isOpen;
// インスペクタで設定した座標位置にアニメーション移動(引き出し開閉)
iTween.MoveTo(gameObject, iTweenArgs);
}
}
}
지금의 상태라면 서랍 손잡이를 만지지 않고 서랍을 열고 닫을 수 있습니다.
이것은 이것으로 초능력자 같고 멋지기 때문일지도 모릅니다만,
다음은 Raycast라는 레이저 모양의 객체를 사용하여
손잡이에 닿으면 서랍을 개폐할 수 있도록 하는 녀석을 진행해 나가고 싶습니다.
이번에 참고했습니다.
・Unity에서 신이 되는 책. 히로 테츠오
htps //w w. 아마존. 이. jp / dp / 4274069222 / re f = cm_sw_r_tw_dp_u_x_L7c 도 b6V ↑ T
・iTween 공식 사이트 「DOCUMENTATION」
h tp // w w.ぇlp ぁ세멘 t. 코m/이토페엔/도쿠멘들 온. php
· Unity 5 Tutorial Tuesdays: Doors, Drawers and Treasure Chests Part 1
htps //w w. 요츠베. 이 m/와 tch? v=아 5W㎃M 3아 Pk&t=780s
Reference
이 문제에 관하여(Unity 초보자가 서랍 개폐 액션을 만드는 그 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/okapy0922/items/7f2de09d0f2d8f4c1c60
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Unity 초보자가 서랍 개폐 액션을 만드는 그 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/okapy0922/items/7f2de09d0f2d8f4c1c60텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)