Note of Caution and How to Customize
Adjust data reset time
The inquiry list data is programmed to reset every 5 minutes by default.
This means that the inquiry list is not updated in real time. To check the renewed inquiry list, access the inquiry list tab after 5 minutes.
If you wish to change the interval due to user inconvenience or high call frequency, manually adjust the reset interval(unit: seconds).
BackendPlus.Question.SetQuestionListReloadDelaySeconds(600); // 600 seconds
Deactivate paging function for inquiry list
Inquiry list loading is in a paging form.
If the scroll is at the end section but there is more data to be loaded, the list loads 10 more inquiry data.
If this leads to an excessive call volume, use the method below to deactivate the paging function.
Only up to the 10 latest inquiries will be shown to the user.
// Deactivate paging function
BackendPlus.Question.SetFirstKeyActive(false);
Change UI color
Go to Assets > BackendPlus > UI > Question > Resources > BackendUI > Question
, and modify 'QuestionUI' to change the color of the UI as you see fit.
Remove inquiry type
To remove the unwanted inquiry type, edit the script in Assets > BackendPlus > UI > Question > Script > Register > QuestionTypeSelectUI.cs
.
In QuestionhTypeSelectUI.cs
, find 'Initialize(LitJson.JsonData textJson)' and add the following if statement to exclude the object type of your choice and prevent it from being created:
Before editing
public void Initialize(LitJson.JsonData textJson) {
ReSize();
outerButton.onClick.RemoveAllListeners();
outerButton.onClick.AddListener(() => { gameObject.SetActive(false); });
float totalHeight = 0;
foreach(QuestionType questionType in Enum.GetValues(typeof(QuestionType))) {
var button = Instantiate(questionTypeButton, questionTypeUIParent, true);
button.transform.localScale = new Vector3(1, 1, 1);
string questionTypeByText = textJson["typeSelect"][questionType.ToString()].ToString();
button.GetComponentInChildren<TMP_Text>().text = questionTypeByText;
button.GetComponent<Button>().onClick.AddListener(() => {
_registerQuestionUI.ChangeQuestionType(questionType, questionTypeByText);
gameObject.SetActive(false);
});
totalHeight += button.GetComponent<RectTransform>().sizeDelta.y;
}
if(totalHeight < scrollViewRectTransform.rect.height) {
float marginWidth = scrollViewRectTransform.offsetMin.x;
float marginHeight = (gameObject.GetComponent<RectTransform>().rect.height - totalHeight) / 2;
scrollViewRectTransform.offsetMin = new Vector2(marginWidth,marginHeight);
scrollViewRectTransform.offsetMax = new Vector2(-marginWidth,-marginHeight);
}
}
After editing
public void Initialize(LitJson.JsonData textJson) {
ReSize();
outerButton.onClick.RemoveAllListeners();
outerButton.onClick.AddListener(() => { gameObject.SetActive(false); });
float totalHeight = 0;
foreach(QuestionType questionType in Enum.GetValues(typeof(QuestionType))) {
// ======================= Add if statement ======================
if(questionType == QuestionType.Account ||
questionType == QuestionType.Bug ||
questionType == QuestionType.Event) {
continue;
}
// ======================= Added ======================
var button = Instantiate(questionTypeButton, questionTypeUIParent, true);
button.transform.localScale = new Vector3(1, 1, 1);
string questionTypeByText = textJson["typeSelect"][questionType.ToString()].ToString();
button.GetComponentInChildren<TMP_Text>().text = questionTypeByText;
button.GetComponent<Button>().onClick.AddListener(() => {
_registerQuestionUI.ChangeQuestionType(questionType, questionTypeByText);
gameObject.SetActive(false);
});
totalHeight += button.GetComponent<RectTransform>().sizeDelta.y;
}
if(totalHeight < scrollViewRectTransform.rect.height) {
float marginWidth = scrollViewRectTransform.offsetMin.x;
float marginHeight = (gameObject.GetComponent<RectTransform>().rect.height - totalHeight) / 2;
scrollViewRectTransform.offsetMin = new Vector2(marginWidth,marginHeight);
scrollViewRectTransform.offsetMax = new Vector2(-marginWidth,-marginHeight);
}
}
Multilingual support
All texts for QuestionUI are located in the Assets > BackendPlus > UI > Question > Resources > BackendUI > Question
folder.
You can change the language by using the Korean.json or English.json file that is in the folder by default.
public void OpenQuestionUI() {
BackendPlus.Question.SetLanguageJsonName("English");
BackendPlus.Question.OpenUI();
}
To add and use a different language, copy the Korean.json file and change the values while maintaining the keys.
Please note that the Pretendard-Regular font used by the 1:1 inquiry UI does not support Chinese characters. To type Chinese characters, please use a different font that supports them.
1. Copy Korean.json and change it into Japanese.json
2. Change value
3. Configure SetLanguageJsonName
public void OpenQuestionUI() {
BackendPlus.Question.SetLanguageJsonName("Japanese");
BackendPlus.Question.OpenUI();
}